onairos 4.0.20 → 4.0.21

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 (46) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +397 -397
  3. package/dist/10.js +1 -1
  4. package/dist/123.js +1 -1
  5. package/dist/129.js +1 -1
  6. package/dist/18.js +1 -1
  7. package/dist/185.js +1 -1
  8. package/dist/22.js +1 -1
  9. package/dist/225.js +1 -1
  10. package/dist/241.js +1 -1
  11. package/dist/31.js +1 -1
  12. package/dist/336.js +1 -1
  13. package/dist/342.js +1 -1
  14. package/dist/360.js +1 -1
  15. package/dist/421.js +1 -1
  16. package/dist/433.js +1 -1
  17. package/dist/502.js +1 -1
  18. package/dist/540.js +1 -1
  19. package/dist/575.js +1 -1
  20. package/dist/592.js +1 -1
  21. package/dist/659.js +1 -1
  22. package/dist/664.js +2 -0
  23. package/dist/664.js.map +1 -0
  24. package/dist/672.js +1 -1
  25. package/dist/845.js +1 -1
  26. package/dist/911.js +1 -1
  27. package/dist/947.js +1 -1
  28. package/dist/961.js +1 -1
  29. package/dist/991.js +1 -1
  30. package/dist/999.js +1 -1
  31. package/dist/data_request_iframe.html +11 -11
  32. package/dist/data_request_popup.html +320 -320
  33. package/dist/iframe.bundle.js +1 -1
  34. package/dist/oauth-callback.html +206 -206
  35. package/dist/onairos-laravel.js +1 -1
  36. package/dist/onairos-laravel.js.map +1 -1
  37. package/dist/onairos.bundle.js +1 -1
  38. package/dist/onairos.esm.js +1 -1
  39. package/dist/onairos.esm.js.map +1 -1
  40. package/dist/src_onairosButton_jsx.js +1 -1
  41. package/dist/static/8c5b220bf6f482881a90.png +1 -1
  42. package/dist/vendors-node_modules_lottie-react_build_index_umd_js-node_modules_lucide-react_dist_esm_icons-20f774.js +1 -1
  43. package/dist/vendors-node_modules_react-dom_index_js.js +1 -1
  44. package/dist/vendors-node_modules_react_index_js.js +1 -1
  45. package/llm.txt +334 -0
  46. package/package.json +167 -166
@@ -1,2 +1,2 @@
1
- "use strict";(this.webpackChunkOnairosLaravel=this.webpackChunkOnairosLaravel||[]).push([["vendors-node_modules_react_index_js"],{"./node_modules/react/cjs/react.development.js":(e,t,r)=>{e=r.nmd(e),function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var r=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),y=Symbol.for("react.offscreen"),m=Symbol.iterator;function h(e){if(null===e||"object"!=typeof e)return null;var t=m&&e[m]||e["@@iterator"];return"function"==typeof t?t:null}var v={current:null},g={transition:null},b={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},_={current:null},w={},k=null;function O(e){k=e}w.setExtraStackFrame=function(e){k=e},w.getCurrentStack=null,w.getStackAddendum=function(){var e="";k&&(e+=k);var t=w.getCurrentStack;return t&&(e+=t()||""),e};var C={ReactCurrentDispatcher:v,ReactCurrentBatchConfig:g,ReactCurrentOwner:_};function S(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];j("warn",e,r)}function R(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];j("error",e,r)}function j(e,t,r){var n=C.ReactDebugCurrentFrame.getStackAddendum();""!==n&&(t+="%s",r=r.concat([n]));var o=r.map(function(e){return String(e)});o.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,o)}C.ReactDebugCurrentFrame=w,C.ReactCurrentActQueue=b;var E={};function P(e,t){var r=e.constructor,n=r&&(r.displayName||r.name)||"ReactClass",o=n+"."+t;E[o]||(R("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,n),E[o]=!0)}var T={isMounted:function(e){return!1},enqueueForceUpdate:function(e,t,r){P(e,"forceUpdate")},enqueueReplaceState:function(e,t,r,n){P(e,"replaceState")},enqueueSetState:function(e,t,r,n){P(e,"setState")}},x=Object.assign,$={};function L(e,t,r){this.props=e,this.context=t,this.refs=$,this.updater=r||T}Object.freeze($),L.prototype.isReactComponent={},L.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},L.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};var D={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},I=function(e,t){Object.defineProperty(L.prototype,e,{get:function(){S("%s(...) is deprecated in plain JavaScript React classes. %s",t[0],t[1])}})};for(var N in D)D.hasOwnProperty(N)&&I(N,D[N]);function F(){}function A(e,t,r){this.props=e,this.context=t,this.refs=$,this.updater=r||T}F.prototype=L.prototype;var M=A.prototype=new F;M.constructor=A,x(M,L.prototype),M.isPureReactComponent=!0;var V=Array.isArray;function z(e){return V(e)}function U(e){return""+e}function B(e){if(function(e){try{return U(e),!1}catch(e){return!0}}(e))return R("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),U(e)}function Y(e){return e.displayName||"Context"}function q(e){if(null==e)return null;if("number"==typeof e.tag&&R("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case o:return"Fragment";case n:return"Portal";case i:return"Profiler";case a:return"StrictMode";case l:return"Suspense";case f:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case s:return Y(e)+".Consumer";case u:return Y(e._context)+".Provider";case c:return function(e,t,r){var n=e.displayName;if(n)return n;var o=t.displayName||t.name||"";return""!==o?r+"("+o+")":r}(e,e.render,"ForwardRef");case p:var t=e.displayName||null;return null!==t?t:q(e.type)||"Memo";case d:var r=e,y=r._payload,m=r._init;try{return q(m(y))}catch(e){return null}}return null}var H,W,G,K=Object.prototype.hasOwnProperty,J={key:!0,ref:!0,__self:!0,__source:!0};function X(e){if(K.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}function Q(e){if(K.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}G={};var Z=function(e,t,n,o,a,i,u){var s={$$typeof:r,type:e,key:t,ref:n,props:u,_owner:i,_store:{}};return Object.defineProperty(s._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,"_self",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,"_source",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function ee(e,t,r){var n,o={},a=null,i=null,u=null,s=null;if(null!=t)for(n in X(t)&&(i=t.ref,function(e){if("string"==typeof e.ref&&_.current&&e.__self&&_.current.stateNode!==e.__self){var t=q(_.current.type);G[t]||(R('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',t,e.ref),G[t]=!0)}}(t)),Q(t)&&(B(t.key),a=""+t.key),u=void 0===t.__self?null:t.__self,s=void 0===t.__source?null:t.__source,t)K.call(t,n)&&!J.hasOwnProperty(n)&&(o[n]=t[n]);var c=arguments.length-2;if(1===c)o.children=r;else if(c>1){for(var l=Array(c),f=0;f<c;f++)l[f]=arguments[f+2];Object.freeze&&Object.freeze(l),o.children=l}if(e&&e.defaultProps){var p=e.defaultProps;for(n in p)void 0===o[n]&&(o[n]=p[n])}if(a||i){var d="function"==typeof e?e.displayName||e.name||"Unknown":e;a&&function(e,t){var r=function(){H||(H=!0,R("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};r.isReactWarning=!0,Object.defineProperty(e,"key",{get:r,configurable:!0})}(o,d),i&&function(e,t){var r=function(){W||(W=!0,R("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};r.isReactWarning=!0,Object.defineProperty(e,"ref",{get:r,configurable:!0})}(o,d)}return Z(e,a,i,u,s,_.current,o)}function te(e,t,r){if(null==e)throw new Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n,o,a=x({},e.props),i=e.key,u=e.ref,s=e._self,c=e._source,l=e._owner;if(null!=t)for(n in X(t)&&(u=t.ref,l=_.current),Q(t)&&(B(t.key),i=""+t.key),e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)K.call(t,n)&&!J.hasOwnProperty(n)&&(void 0===t[n]&&void 0!==o?a[n]=o[n]:a[n]=t[n]);var f=arguments.length-2;if(1===f)a.children=r;else if(f>1){for(var p=Array(f),d=0;d<f;d++)p[d]=arguments[d+2];a.children=p}return Z(e.type,i,u,s,c,l,a)}function re(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}var ne=!1,oe=/\/+/g;function ae(e){return e.replace(oe,"$&/")}function ie(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(B(e.key),r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36);var r,n}function ue(e,t,o,a,i){var u=typeof e;"undefined"!==u&&"boolean"!==u||(e=null);var s,c,l,f=!1;if(null===e)f=!0;else switch(u){case"string":case"number":f=!0;break;case"object":switch(e.$$typeof){case r:case n:f=!0}}if(f){var p=e,d=i(p),y=""===a?"."+ie(p,0):a;if(z(d)){var m="";null!=y&&(m=ae(y)+"/"),ue(d,t,m,"",function(e){return e})}else null!=d&&(re(d)&&(!d.key||p&&p.key===d.key||B(d.key),s=d,c=o+(!d.key||p&&p.key===d.key?"":ae(""+d.key)+"/")+y,d=Z(s.type,c,s.ref,s._self,s._source,s._owner,s.props)),t.push(d));return 1}var v=0,g=""===a?".":a+":";if(z(e))for(var b=0;b<e.length;b++)v+=ue(l=e[b],t,o,g+ie(l,b),i);else{var _=h(e);if("function"==typeof _){var w=e;_===w.entries&&(ne||S("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),ne=!0);for(var k,O=_.call(w),C=0;!(k=O.next()).done;)v+=ue(l=k.value,t,o,g+ie(l,C++),i)}else if("object"===u){var R=String(e);throw new Error("Objects are not valid as a React child (found: "+("[object Object]"===R?"object with keys {"+Object.keys(e).join(", ")+"}":R)+"). If you meant to render a collection of children, use an array instead.")}}return v}function se(e,t,r){if(null==e)return e;var n=[],o=0;return ue(e,n,"","",function(e){return t.call(r,e,o++)}),n}var ce;function le(e){if(-1===e._status){var t=(0,e._result)();if(t.then(function(t){if(0===e._status||-1===e._status){var r=e;r._status=1,r._result=t}},function(t){if(0===e._status||-1===e._status){var r=e;r._status=2,r._result=t}}),-1===e._status){var r=e;r._status=0,r._result=t}}if(1===e._status){var n=e._result;return void 0===n&&R("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?",n),"default"in n||R("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))",n),n.default}throw e._result}function fe(e){return"string"==typeof e||"function"==typeof e||(e===o||e===i||e===a||e===l||e===f||e===y||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===p||e.$$typeof===u||e.$$typeof===s||e.$$typeof===c||e.$$typeof===ce||void 0!==e.getModuleId))}function pe(){var e=v.current;return null===e&&R("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem."),e}ce=Symbol.for("react.module.reference");var de,ye,me,he,ve,ge,be,_e=0;function we(){}we.__reactDisabledLog=!0;var ke,Oe=C.ReactCurrentDispatcher;function Ce(e,t,r){if(void 0===ke)try{throw Error()}catch(e){var n=e.stack.trim().match(/\n( *(at )?)/);ke=n&&n[1]||""}return"\n"+ke+e}var Se,Re=!1,je="function"==typeof WeakMap?WeakMap:Map;function Ee(e,t){if(!e||Re)return"";var r,n=Se.get(e);if(void 0!==n)return n;Re=!0;var o,a=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=Oe.current,Oe.current=null,function(){if(0===_e){de=console.log,ye=console.info,me=console.warn,he=console.error,ve=console.group,ge=console.groupCollapsed,be=console.groupEnd;var e={configurable:!0,enumerable:!0,value:we,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}_e++}();try{if(t){var i=function(){throw Error()};if(Object.defineProperty(i.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(i,[])}catch(e){r=e}Reflect.construct(e,[],i)}else{try{i.call()}catch(e){r=e}e.call(i.prototype)}}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&"string"==typeof t.stack){for(var u=t.stack.split("\n"),s=r.stack.split("\n"),c=u.length-1,l=s.length-1;c>=1&&l>=0&&u[c]!==s[l];)l--;for(;c>=1&&l>=0;c--,l--)if(u[c]!==s[l]){if(1!==c||1!==l)do{if(c--,--l<0||u[c]!==s[l]){var f="\n"+u[c].replace(" at new "," at ");return e.displayName&&f.includes("<anonymous>")&&(f=f.replace("<anonymous>",e.displayName)),"function"==typeof e&&Se.set(e,f),f}}while(c>=1&&l>=0);break}}}finally{Re=!1,Oe.current=o,function(){if(0===--_e){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:x({},e,{value:de}),info:x({},e,{value:ye}),warn:x({},e,{value:me}),error:x({},e,{value:he}),group:x({},e,{value:ve}),groupCollapsed:x({},e,{value:ge}),groupEnd:x({},e,{value:be})})}_e<0&&R("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=a}var p=e?e.displayName||e.name:"",d=p?Ce(p):"";return"function"==typeof e&&Se.set(e,d),d}function Pe(e,t,r){if(null==e)return"";if("function"==typeof e)return Ee(e,function(e){var t=e.prototype;return!(!t||!t.isReactComponent)}(e));if("string"==typeof e)return Ce(e);switch(e){case l:return Ce("Suspense");case f:return Ce("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case c:return Ee(e.render,!1);case p:return Pe(e.type,t,r);case d:var n=e,o=n._payload,a=n._init;try{return Pe(a(o),t,r)}catch(e){}}return""}Se=new je;var Te,xe={},$e=C.ReactDebugCurrentFrame;function Le(e){if(e){var t=e._owner,r=Pe(e.type,e._source,t?t.type:null);$e.setExtraStackFrame(r)}else $e.setExtraStackFrame(null)}function De(e){if(e){var t=e._owner;O(Pe(e.type,e._source,t?t.type:null))}else O(null)}function Ie(){if(_.current){var e=q(_.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}Te=!1;var Ne={};function Fe(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var r=function(e){var t=Ie();if(!t){var r="string"==typeof e?e:e.displayName||e.name;r&&(t="\n\nCheck the top-level render call using <"+r+">.")}return t}(t);if(!Ne[r]){Ne[r]=!0;var n="";e&&e._owner&&e._owner!==_.current&&(n=" It was passed a child from "+q(e._owner.type)+"."),De(e),R('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',r,n),De(null)}}}function Ae(e,t){if("object"==typeof e)if(z(e))for(var r=0;r<e.length;r++){var n=e[r];re(n)&&Fe(n,t)}else if(re(e))e._store&&(e._store.validated=!0);else if(e){var o=h(e);if("function"==typeof o&&o!==e.entries)for(var a,i=o.call(e);!(a=i.next()).done;)re(a.value)&&Fe(a.value,t)}}function Me(e){var t,r=e.type;if(null!=r&&"string"!=typeof r){if("function"==typeof r)t=r.propTypes;else{if("object"!=typeof r||r.$$typeof!==c&&r.$$typeof!==p)return;t=r.propTypes}if(t){var n=q(r);!function(e,t,r,n,o){var a=Function.call.bind(K);for(var i in e)if(a(e,i)){var u=void 0;try{if("function"!=typeof e[i]){var s=Error((n||"React class")+": "+r+" type `"+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[i]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw s.name="Invariant Violation",s}u=e[i](t,i,n,r,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){u=e}!u||u instanceof Error||(Le(o),R("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",r,i,typeof u),Le(null)),u instanceof Error&&!(u.message in xe)&&(xe[u.message]=!0,Le(o),R("Failed %s type: %s",r,u.message),Le(null))}}(t,e.props,"prop",n,e)}else if(void 0!==r.PropTypes&&!Te){Te=!0,R("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",q(r)||"Unknown")}"function"!=typeof r.getDefaultProps||r.getDefaultProps.isReactClassApproved||R("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Ve(e,t,n){var a,i,u=fe(e);if(!u){var s="";(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(s+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var c,l=null!=(a=t)&&void 0!==(i=a.__source)?"\n\nCheck your code at "+i.fileName.replace(/^.*[\\\/]/,"")+":"+i.lineNumber+".":"";s+=l||Ie(),null===e?c="null":z(e)?c="array":void 0!==e&&e.$$typeof===r?(c="<"+(q(e.type)||"Unknown")+" />",s=" Did you accidentally export a JSX literal instead of a component?"):c=typeof e,R("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",c,s)}var f=ee.apply(this,arguments);if(null==f)return f;if(u)for(var p=2;p<arguments.length;p++)Ae(arguments[p],e);return e===o?function(e){for(var t=Object.keys(e.props),r=0;r<t.length;r++){var n=t[r];if("children"!==n&&"key"!==n){De(e),R("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n),De(null);break}}null!==e.ref&&(De(e),R("Invalid attribute `ref` supplied to `React.Fragment`."),De(null))}(f):Me(f),f}var ze=!1;var Ue=!1,Be=null;var Ye=0,qe=!1;function He(e){var t=Ye;Ye++,null===b.current&&(b.current=[]);var r,n=b.isBatchingLegacy;try{if(b.isBatchingLegacy=!0,r=e(),!n&&b.didScheduleLegacyUpdate){var o=b.current;null!==o&&(b.didScheduleLegacyUpdate=!1,Je(o))}}catch(e){throw We(t),e}finally{b.isBatchingLegacy=n}if(null!==r&&"object"==typeof r&&"function"==typeof r.then){var a=r,i=!1,u={then:function(e,r){i=!0,a.then(function(n){We(t),0===Ye?Ge(n,e,r):e(n)},function(e){We(t),r(e)})}};return qe||"undefined"==typeof Promise||Promise.resolve().then(function(){}).then(function(){i||(qe=!0,R("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),u}var s=r;if(We(t),0===Ye){var c=b.current;return null!==c&&(Je(c),b.current=null),{then:function(e,t){null===b.current?(b.current=[],Ge(s,e,t)):e(s)}}}return{then:function(e,t){e(s)}}}function We(e){e!==Ye-1&&R("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),Ye=e}function Ge(t,r,n){var o=b.current;if(null!==o)try{Je(o),function(t){if(null===Be)try{var r=("require"+Math.random()).slice(0,7),n=e&&e[r];Be=n.call(e,"timers").setImmediate}catch(e){Be=function(e){!1===Ue&&(Ue=!0,"undefined"==typeof MessageChannel&&R("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(void 0)}}Be(t)}(function(){0===o.length?(b.current=null,r(t)):Ge(t,r,n)})}catch(e){n(e)}else r(t)}var Ke=!1;function Je(e){if(!Ke){Ke=!0;var t=0;try{for(;t<e.length;t++){var r=e[t];do{r=r(!0)}while(null!==r)}e.length=0}catch(r){throw e=e.slice(t+1),r}finally{Ke=!1}}}var Xe=Ve,Qe=function(e,t,r){for(var n=te.apply(this,arguments),o=2;o<arguments.length;o++)Ae(arguments[o],n.type);return Me(n),n},Ze=function(e){var t=Ve.bind(null,e);return t.type=e,ze||(ze=!0,S("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(t,"type",{enumerable:!1,get:function(){return S("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:e}),e}}),t},et={map:se,forEach:function(e,t,r){se(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return se(e,function(){t++}),t},toArray:function(e){return se(e,function(e){return e})||[]},only:function(e){if(!re(e))throw new Error("React.Children.only expected to receive a single React element child.");return e}};t.Children=et,t.Component=L,t.Fragment=o,t.Profiler=i,t.PureComponent=A,t.StrictMode=a,t.Suspense=l,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=C,t.act=He,t.cloneElement=Qe,t.createContext=function(e){var t={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};t.Provider={$$typeof:u,_context:t};var r=!1,n=!1,o=!1,a={$$typeof:s,_context:t};return Object.defineProperties(a,{Provider:{get:function(){return n||(n=!0,R("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),t.Provider},set:function(e){t.Provider=e}},_currentValue:{get:function(){return t._currentValue},set:function(e){t._currentValue=e}},_currentValue2:{get:function(){return t._currentValue2},set:function(e){t._currentValue2=e}},_threadCount:{get:function(){return t._threadCount},set:function(e){t._threadCount=e}},Consumer:{get:function(){return r||(r=!0,R("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),t.Consumer}},displayName:{get:function(){return t.displayName},set:function(e){o||(S("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",e),o=!0)}}}),t.Consumer=a,t._currentRenderer=null,t._currentRenderer2=null,t},t.createElement=Xe,t.createFactory=Ze,t.createRef=function(){var e={current:null};return Object.seal(e),e},t.forwardRef=function(e){null!=e&&e.$$typeof===p?R("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof e?R("forwardRef requires a render function but was given %s.",null===e?"null":typeof e):0!==e.length&&2!==e.length&&R("forwardRef render functions accept exactly two parameters: props and ref. %s",1===e.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=e&&(null==e.defaultProps&&null==e.propTypes||R("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"));var t,r={$$typeof:c,render:e};return Object.defineProperty(r,"displayName",{enumerable:!1,configurable:!0,get:function(){return t},set:function(r){t=r,e.name||e.displayName||(e.displayName=r)}}),r},t.isValidElement=re,t.lazy=function(e){var t,r,n={$$typeof:d,_payload:{_status:-1,_result:e},_init:le};return Object.defineProperties(n,{defaultProps:{configurable:!0,get:function(){return t},set:function(e){R("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),t=e,Object.defineProperty(n,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return r},set:function(e){R("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),r=e,Object.defineProperty(n,"propTypes",{enumerable:!0})}}}),n},t.memo=function(e,t){fe(e)||R("memo: The first argument must be a component. Instead received: %s",null===e?"null":typeof e);var r,n={$$typeof:p,type:e,compare:void 0===t?null:t};return Object.defineProperty(n,"displayName",{enumerable:!1,configurable:!0,get:function(){return r},set:function(t){r=t,e.name||e.displayName||(e.displayName=t)}}),n},t.startTransition=function(e,t){var r=g.transition;g.transition={};var n=g.transition;g.transition._updatedFibers=new Set;try{e()}finally{if(g.transition=r,null===r&&n._updatedFibers)n._updatedFibers.size>10&&S("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),n._updatedFibers.clear()}},t.unstable_act=He,t.useCallback=function(e,t){return pe().useCallback(e,t)},t.useContext=function(e){var t=pe();if(void 0!==e._context){var r=e._context;r.Consumer===e?R("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):r.Provider===e&&R("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return t.useContext(e)},t.useDebugValue=function(e,t){return pe().useDebugValue(e,t)},t.useDeferredValue=function(e){return pe().useDeferredValue(e)},t.useEffect=function(e,t){return pe().useEffect(e,t)},t.useId=function(){return pe().useId()},t.useImperativeHandle=function(e,t,r){return pe().useImperativeHandle(e,t,r)},t.useInsertionEffect=function(e,t){return pe().useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return pe().useLayoutEffect(e,t)},t.useMemo=function(e,t){return pe().useMemo(e,t)},t.useReducer=function(e,t,r){return pe().useReducer(e,t,r)},t.useRef=function(e){return pe().useRef(e)},t.useState=function(e){return pe().useState(e)},t.useSyncExternalStore=function(e,t,r){return pe().useSyncExternalStore(e,t,r)},t.useTransition=function(){return pe().useTransition()},t.version="18.3.1","undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()},"./node_modules/react/index.js":(e,t,r)=>{e.exports=r("./node_modules/react/cjs/react.development.js")}}]);
1
+ "use strict";(this.webpackChunkOnairosLaravel=this.webpackChunkOnairosLaravel||[]).push([["vendors-node_modules_react_index_js"],{"./node_modules/react/cjs/react.development.js":(e,t,r)=>{e=r.nmd(e),function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var r=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),u=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),y=Symbol.for("react.offscreen"),m=Symbol.iterator;function h(e){if(null===e||"object"!=typeof e)return null;var t=m&&e[m]||e["@@iterator"];return"function"==typeof t?t:null}var v={current:null},g={transition:null},b={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},_={current:null},w={},k=null;function O(e){k=e}w.setExtraStackFrame=function(e){k=e},w.getCurrentStack=null,w.getStackAddendum=function(){var e="";k&&(e+=k);var t=w.getCurrentStack;return t&&(e+=t()||""),e};var C={ReactCurrentDispatcher:v,ReactCurrentBatchConfig:g,ReactCurrentOwner:_};function S(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];j("warn",e,r)}function R(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];j("error",e,r)}function j(e,t,r){var n=C.ReactDebugCurrentFrame.getStackAddendum();""!==n&&(t+="%s",r=r.concat([n]));var o=r.map(function(e){return String(e)});o.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,o)}C.ReactDebugCurrentFrame=w,C.ReactCurrentActQueue=b;var E={};function P(e,t){var r=e.constructor,n=r&&(r.displayName||r.name)||"ReactClass",o=n+"."+t;E[o]||(R("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,n),E[o]=!0)}var T={isMounted:function(e){return!1},enqueueForceUpdate:function(e,t,r){P(e,"forceUpdate")},enqueueReplaceState:function(e,t,r,n){P(e,"replaceState")},enqueueSetState:function(e,t,r,n){P(e,"setState")}},x=Object.assign,$={};function L(e,t,r){this.props=e,this.context=t,this.refs=$,this.updater=r||T}Object.freeze($),L.prototype.isReactComponent={},L.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},L.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};var D={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},I=function(e,t){Object.defineProperty(L.prototype,e,{get:function(){S("%s(...) is deprecated in plain JavaScript React classes. %s",t[0],t[1])}})};for(var N in D)D.hasOwnProperty(N)&&I(N,D[N]);function F(){}function A(e,t,r){this.props=e,this.context=t,this.refs=$,this.updater=r||T}F.prototype=L.prototype;var M=A.prototype=new F;M.constructor=A,x(M,L.prototype),M.isPureReactComponent=!0;var V=Array.isArray;function z(e){return V(e)}function U(e){return""+e}function B(e){if(function(e){try{return U(e),!1}catch(e){return!0}}(e))return R("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),U(e)}function Y(e){return e.displayName||"Context"}function q(e){if(null==e)return null;if("number"==typeof e.tag&&R("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case o:return"Fragment";case n:return"Portal";case i:return"Profiler";case a:return"StrictMode";case l:return"Suspense";case f:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case s:return Y(e)+".Consumer";case u:return Y(e._context)+".Provider";case c:return function(e,t,r){var n=e.displayName;if(n)return n;var o=t.displayName||t.name||"";return""!==o?r+"("+o+")":r}(e,e.render,"ForwardRef");case p:var t=e.displayName||null;return null!==t?t:q(e.type)||"Memo";case d:var r=e,y=r._payload,m=r._init;try{return q(m(y))}catch(e){return null}}return null}var H,W,G,K=Object.prototype.hasOwnProperty,J={key:!0,ref:!0,__self:!0,__source:!0};function X(e){if(K.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}function Q(e){if(K.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}G={};var Z=function(e,t,n,o,a,i,u){var s={$$typeof:r,type:e,key:t,ref:n,props:u,_owner:i,_store:{}};return Object.defineProperty(s._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,"_self",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(s,"_source",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function ee(e,t,r){var n,o={},a=null,i=null,u=null,s=null;if(null!=t)for(n in X(t)&&(i=t.ref,function(e){if("string"==typeof e.ref&&_.current&&e.__self&&_.current.stateNode!==e.__self){var t=q(_.current.type);G[t]||(R('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',t,e.ref),G[t]=!0)}}(t)),Q(t)&&(B(t.key),a=""+t.key),u=void 0===t.__self?null:t.__self,s=void 0===t.__source?null:t.__source,t)K.call(t,n)&&!J.hasOwnProperty(n)&&(o[n]=t[n]);var c=arguments.length-2;if(1===c)o.children=r;else if(c>1){for(var l=Array(c),f=0;f<c;f++)l[f]=arguments[f+2];Object.freeze&&Object.freeze(l),o.children=l}if(e&&e.defaultProps){var p=e.defaultProps;for(n in p)void 0===o[n]&&(o[n]=p[n])}if(a||i){var d="function"==typeof e?e.displayName||e.name||"Unknown":e;a&&function(e,t){var r=function(){H||(H=!0,R("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};r.isReactWarning=!0,Object.defineProperty(e,"key",{get:r,configurable:!0})}(o,d),i&&function(e,t){var r=function(){W||(W=!0,R("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};r.isReactWarning=!0,Object.defineProperty(e,"ref",{get:r,configurable:!0})}(o,d)}return Z(e,a,i,u,s,_.current,o)}function te(e,t,r){if(null==e)throw new Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n,o,a=x({},e.props),i=e.key,u=e.ref,s=e._self,c=e._source,l=e._owner;if(null!=t)for(n in X(t)&&(u=t.ref,l=_.current),Q(t)&&(B(t.key),i=""+t.key),e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)K.call(t,n)&&!J.hasOwnProperty(n)&&(void 0===t[n]&&void 0!==o?a[n]=o[n]:a[n]=t[n]);var f=arguments.length-2;if(1===f)a.children=r;else if(f>1){for(var p=Array(f),d=0;d<f;d++)p[d]=arguments[d+2];a.children=p}return Z(e.type,i,u,s,c,l,a)}function re(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}var ne=!1,oe=/\/+/g;function ae(e){return e.replace(oe,"$&/")}function ie(e,t){return"object"==typeof e&&null!==e&&null!=e.key?(B(e.key),r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36);var r,n}function ue(e,t,o,a,i){var u=typeof e;"undefined"!==u&&"boolean"!==u||(e=null);var s,c,l,f=!1;if(null===e)f=!0;else switch(u){case"string":case"number":f=!0;break;case"object":switch(e.$$typeof){case r:case n:f=!0}}if(f){var p=e,d=i(p),y=""===a?"."+ie(p,0):a;if(z(d)){var m="";null!=y&&(m=ae(y)+"/"),ue(d,t,m,"",function(e){return e})}else null!=d&&(re(d)&&(!d.key||p&&p.key===d.key||B(d.key),s=d,c=o+(!d.key||p&&p.key===d.key?"":ae(""+d.key)+"/")+y,d=Z(s.type,c,s.ref,s._self,s._source,s._owner,s.props)),t.push(d));return 1}var v=0,g=""===a?".":a+":";if(z(e))for(var b=0;b<e.length;b++)v+=ue(l=e[b],t,o,g+ie(l,b),i);else{var _=h(e);if("function"==typeof _){var w=e;_===w.entries&&(ne||S("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),ne=!0);for(var k,O=_.call(w),C=0;!(k=O.next()).done;)v+=ue(l=k.value,t,o,g+ie(l,C++),i)}else if("object"===u){var R=String(e);throw new Error("Objects are not valid as a React child (found: "+("[object Object]"===R?"object with keys {"+Object.keys(e).join(", ")+"}":R)+"). If you meant to render a collection of children, use an array instead.")}}return v}function se(e,t,r){if(null==e)return e;var n=[],o=0;return ue(e,n,"","",function(e){return t.call(r,e,o++)}),n}var ce;function le(e){if(-1===e._status){var t=(0,e._result)();if(t.then(function(t){if(0===e._status||-1===e._status){var r=e;r._status=1,r._result=t}},function(t){if(0===e._status||-1===e._status){var r=e;r._status=2,r._result=t}}),-1===e._status){var r=e;r._status=0,r._result=t}}if(1===e._status){var n=e._result;return void 0===n&&R("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?",n),"default"in n||R("lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))",n),n.default}throw e._result}function fe(e){return"string"==typeof e||"function"==typeof e||(e===o||e===i||e===a||e===l||e===f||e===y||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===p||e.$$typeof===u||e.$$typeof===s||e.$$typeof===c||e.$$typeof===ce||void 0!==e.getModuleId))}function pe(){var e=v.current;return null===e&&R("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem."),e}ce=Symbol.for("react.module.reference");var de,ye,me,he,ve,ge,be,_e=0;function we(){}we.__reactDisabledLog=!0;var ke,Oe=C.ReactCurrentDispatcher;function Ce(e,t,r){if(void 0===ke)try{throw Error()}catch(e){var n=e.stack.trim().match(/\n( *(at )?)/);ke=n&&n[1]||""}return"\n"+ke+e}var Se,Re=!1,je="function"==typeof WeakMap?WeakMap:Map;function Ee(e,t){if(!e||Re)return"";var r,n=Se.get(e);if(void 0!==n)return n;Re=!0;var o,a=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=Oe.current,Oe.current=null,function(){if(0===_e){de=console.log,ye=console.info,me=console.warn,he=console.error,ve=console.group,ge=console.groupCollapsed,be=console.groupEnd;var e={configurable:!0,enumerable:!0,value:we,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}_e++}();try{if(t){var i=function(){throw Error()};if(Object.defineProperty(i.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(i,[])}catch(e){r=e}Reflect.construct(e,[],i)}else{try{i.call()}catch(e){r=e}e.call(i.prototype)}}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&"string"==typeof t.stack){for(var u=t.stack.split("\n"),s=r.stack.split("\n"),c=u.length-1,l=s.length-1;c>=1&&l>=0&&u[c]!==s[l];)l--;for(;c>=1&&l>=0;c--,l--)if(u[c]!==s[l]){if(1!==c||1!==l)do{if(c--,--l<0||u[c]!==s[l]){var f="\n"+u[c].replace(" at new "," at ");return e.displayName&&f.includes("<anonymous>")&&(f=f.replace("<anonymous>",e.displayName)),"function"==typeof e&&Se.set(e,f),f}}while(c>=1&&l>=0);break}}}finally{Re=!1,Oe.current=o,function(){if(0===--_e){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:x({},e,{value:de}),info:x({},e,{value:ye}),warn:x({},e,{value:me}),error:x({},e,{value:he}),group:x({},e,{value:ve}),groupCollapsed:x({},e,{value:ge}),groupEnd:x({},e,{value:be})})}_e<0&&R("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=a}var p=e?e.displayName||e.name:"",d=p?Ce(p):"";return"function"==typeof e&&Se.set(e,d),d}function Pe(e,t,r){if(null==e)return"";if("function"==typeof e)return Ee(e,function(e){var t=e.prototype;return!(!t||!t.isReactComponent)}(e));if("string"==typeof e)return Ce(e);switch(e){case l:return Ce("Suspense");case f:return Ce("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case c:return Ee(e.render,!1);case p:return Pe(e.type,t,r);case d:var n=e,o=n._payload,a=n._init;try{return Pe(a(o),t,r)}catch(e){}}return""}Se=new je;var Te,xe={},$e=C.ReactDebugCurrentFrame;function Le(e){if(e){var t=e._owner,r=Pe(e.type,e._source,t?t.type:null);$e.setExtraStackFrame(r)}else $e.setExtraStackFrame(null)}function De(e){if(e){var t=e._owner;O(Pe(e.type,e._source,t?t.type:null))}else O(null)}function Ie(){if(_.current){var e=q(_.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}Te=!1;var Ne={};function Fe(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var r=function(e){var t=Ie();if(!t){var r="string"==typeof e?e:e.displayName||e.name;r&&(t="\n\nCheck the top-level render call using <"+r+">.")}return t}(t);if(!Ne[r]){Ne[r]=!0;var n="";e&&e._owner&&e._owner!==_.current&&(n=" It was passed a child from "+q(e._owner.type)+"."),De(e),R('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',r,n),De(null)}}}function Ae(e,t){if("object"==typeof e)if(z(e))for(var r=0;r<e.length;r++){var n=e[r];re(n)&&Fe(n,t)}else if(re(e))e._store&&(e._store.validated=!0);else if(e){var o=h(e);if("function"==typeof o&&o!==e.entries)for(var a,i=o.call(e);!(a=i.next()).done;)re(a.value)&&Fe(a.value,t)}}function Me(e){var t,r=e.type;if(null!=r&&"string"!=typeof r){if("function"==typeof r)t=r.propTypes;else{if("object"!=typeof r||r.$$typeof!==c&&r.$$typeof!==p)return;t=r.propTypes}if(t){var n=q(r);!function(e,t,r,n,o){var a=Function.call.bind(K);for(var i in e)if(a(e,i)){var u=void 0;try{if("function"!=typeof e[i]){var s=Error((n||"React class")+": "+r+" type `"+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[i]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw s.name="Invariant Violation",s}u=e[i](t,i,n,r,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(e){u=e}!u||u instanceof Error||(Le(o),R("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",r,i,typeof u),Le(null)),u instanceof Error&&!(u.message in xe)&&(xe[u.message]=!0,Le(o),R("Failed %s type: %s",r,u.message),Le(null))}}(t,e.props,"prop",n,e)}else if(void 0!==r.PropTypes&&!Te){Te=!0,R("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",q(r)||"Unknown")}"function"!=typeof r.getDefaultProps||r.getDefaultProps.isReactClassApproved||R("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Ve(e,t,n){var a,i,u=fe(e);if(!u){var s="";(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(s+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var c,l=null!=(a=t)&&void 0!==(i=a.__source)?"\n\nCheck your code at "+i.fileName.replace(/^.*[\\\/]/,"")+":"+i.lineNumber+".":"";s+=l||Ie(),null===e?c="null":z(e)?c="array":void 0!==e&&e.$$typeof===r?(c="<"+(q(e.type)||"Unknown")+" />",s=" Did you accidentally export a JSX literal instead of a component?"):c=typeof e,R("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",c,s)}var f=ee.apply(this,arguments);if(null==f)return f;if(u)for(var p=2;p<arguments.length;p++)Ae(arguments[p],e);return e===o?function(e){for(var t=Object.keys(e.props),r=0;r<t.length;r++){var n=t[r];if("children"!==n&&"key"!==n){De(e),R("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",n),De(null);break}}null!==e.ref&&(De(e),R("Invalid attribute `ref` supplied to `React.Fragment`."),De(null))}(f):Me(f),f}var ze=!1;var Ue=!1,Be=null;var Ye=0,qe=!1;function He(e){var t=Ye;Ye++,null===b.current&&(b.current=[]);var r,n=b.isBatchingLegacy;try{if(b.isBatchingLegacy=!0,r=e(),!n&&b.didScheduleLegacyUpdate){var o=b.current;null!==o&&(b.didScheduleLegacyUpdate=!1,Je(o))}}catch(e){throw We(t),e}finally{b.isBatchingLegacy=n}if(null!==r&&"object"==typeof r&&"function"==typeof r.then){var a=r,i=!1,u={then:function(e,r){i=!0,a.then(function(n){We(t),0===Ye?Ge(n,e,r):e(n)},function(e){We(t),r(e)})}};return qe||"undefined"==typeof Promise||Promise.resolve().then(function(){}).then(function(){i||(qe=!0,R("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),u}var s=r;if(We(t),0===Ye){var c=b.current;return null!==c&&(Je(c),b.current=null),{then:function(e,t){null===b.current?(b.current=[],Ge(s,e,t)):e(s)}}}return{then:function(e,t){e(s)}}}function We(e){e!==Ye-1&&R("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),Ye=e}function Ge(t,r,n){var o=b.current;if(null!==o)try{Je(o),function(t){if(null===Be)try{var r=("require"+Math.random()).slice(0,7),n=e&&e[r];Be=n.call(e,"timers").setImmediate}catch(e){Be=function(e){!1===Ue&&(Ue=!0,"undefined"==typeof MessageChannel&&R("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(void 0)}}Be(t)}(function(){0===o.length?(b.current=null,r(t)):Ge(t,r,n)})}catch(e){n(e)}else r(t)}var Ke=!1;function Je(e){if(!Ke){Ke=!0;var t=0;try{for(;t<e.length;t++){var r=e[t];do{r=r(!0)}while(null!==r)}e.length=0}catch(r){throw e=e.slice(t+1),r}finally{Ke=!1}}}var Xe=Ve,Qe=function(e,t,r){for(var n=te.apply(this,arguments),o=2;o<arguments.length;o++)Ae(arguments[o],n.type);return Me(n),n},Ze=function(e){var t=Ve.bind(null,e);return t.type=e,ze||(ze=!0,S("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(t,"type",{enumerable:!1,get:function(){return S("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:e}),e}}),t},et={map:se,forEach:function(e,t,r){se(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return se(e,function(){t++}),t},toArray:function(e){return se(e,function(e){return e})||[]},only:function(e){if(!re(e))throw new Error("React.Children.only expected to receive a single React element child.");return e}};t.Children=et,t.Component=L,t.Fragment=o,t.Profiler=i,t.PureComponent=A,t.StrictMode=a,t.Suspense=l,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=C,t.act=He,t.cloneElement=Qe,t.createContext=function(e){var t={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};t.Provider={$$typeof:u,_context:t};var r=!1,n=!1,o=!1,a={$$typeof:s,_context:t};return Object.defineProperties(a,{Provider:{get:function(){return n||(n=!0,R("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),t.Provider},set:function(e){t.Provider=e}},_currentValue:{get:function(){return t._currentValue},set:function(e){t._currentValue=e}},_currentValue2:{get:function(){return t._currentValue2},set:function(e){t._currentValue2=e}},_threadCount:{get:function(){return t._threadCount},set:function(e){t._threadCount=e}},Consumer:{get:function(){return r||(r=!0,R("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),t.Consumer}},displayName:{get:function(){return t.displayName},set:function(e){o||(S("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",e),o=!0)}}}),t.Consumer=a,t._currentRenderer=null,t._currentRenderer2=null,t},t.createElement=Xe,t.createFactory=Ze,t.createRef=function(){var e={current:null};return Object.seal(e),e},t.forwardRef=function(e){null!=e&&e.$$typeof===p?R("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof e?R("forwardRef requires a render function but was given %s.",null===e?"null":typeof e):0!==e.length&&2!==e.length&&R("forwardRef render functions accept exactly two parameters: props and ref. %s",1===e.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=e&&(null==e.defaultProps&&null==e.propTypes||R("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"));var t,r={$$typeof:c,render:e};return Object.defineProperty(r,"displayName",{enumerable:!1,configurable:!0,get:function(){return t},set:function(r){t=r,e.name||e.displayName||(e.displayName=r)}}),r},t.isValidElement=re,t.lazy=function(e){var t,r,n={$$typeof:d,_payload:{_status:-1,_result:e},_init:le};return Object.defineProperties(n,{defaultProps:{configurable:!0,get:function(){return t},set:function(e){R("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),t=e,Object.defineProperty(n,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return r},set:function(e){R("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),r=e,Object.defineProperty(n,"propTypes",{enumerable:!0})}}}),n},t.memo=function(e,t){fe(e)||R("memo: The first argument must be a component. Instead received: %s",null===e?"null":typeof e);var r,n={$$typeof:p,type:e,compare:void 0===t?null:t};return Object.defineProperty(n,"displayName",{enumerable:!1,configurable:!0,get:function(){return r},set:function(t){r=t,e.name||e.displayName||(e.displayName=t)}}),n},t.startTransition=function(e,t){var r=g.transition;g.transition={};var n=g.transition;g.transition._updatedFibers=new Set;try{e()}finally{if(g.transition=r,null===r&&n._updatedFibers)n._updatedFibers.size>10&&S("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),n._updatedFibers.clear()}},t.unstable_act=He,t.useCallback=function(e,t){return pe().useCallback(e,t)},t.useContext=function(e){var t=pe();if(void 0!==e._context){var r=e._context;r.Consumer===e?R("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):r.Provider===e&&R("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return t.useContext(e)},t.useDebugValue=function(e,t){return pe().useDebugValue(e,t)},t.useDeferredValue=function(e){return pe().useDeferredValue(e)},t.useEffect=function(e,t){return pe().useEffect(e,t)},t.useId=function(){return pe().useId()},t.useImperativeHandle=function(e,t,r){return pe().useImperativeHandle(e,t,r)},t.useInsertionEffect=function(e,t){return pe().useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return pe().useLayoutEffect(e,t)},t.useMemo=function(e,t){return pe().useMemo(e,t)},t.useReducer=function(e,t,r){return pe().useReducer(e,t,r)},t.useRef=function(e){return pe().useRef(e)},t.useState=function(e){return pe().useState(e)},t.useSyncExternalStore=function(e,t,r){return pe().useSyncExternalStore(e,t,r)},t.useTransition=function(){return pe().useTransition()},t.version="18.3.1","undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()},"./node_modules/react/index.js":(e,t,r)=>{e.exports=r("./node_modules/react/cjs/react.development.js")}}]);
2
2
  //# sourceMappingURL=vendors-node_modules_react_index_js.js.map
package/llm.txt ADDED
@@ -0,0 +1,334 @@
1
+ Using this llm instruction file (@llm.txt) and the Onairos package this is located in (@onairos)
2
+ install and setup Onairos so that we have the onairos button setup in the onbaording and the intialization
3
+ and everything else is setup, including tthe callback function for us to export the data from onairos easily
4
+
5
+ The following is depth description Onairos package
6
+
7
+ # Onairos NPM Package - LLM Context
8
+
9
+ ## Package Overview
10
+ - **Version**: 3.1.23
11
+ - **Type**: React Web Library for Data Requests & OAuth Authentication
12
+ - **Main Use**: Personal AI training data collection via social media OAuth
13
+ - **Base API**: `https://api2.onairos.uk` (production), `staging-api.onairos.uk` (staging), `dev-api.onairos.uk` (development)
14
+ - **Authentication**: Two-tier system (Developer API Keys + JWT User Tokens)
15
+
16
+ ## Key Features ✅
17
+ 1. **Data Request System**: Users can share "basic info", "personality", or "preferences" data
18
+ 2. **OAuth Connectors**: 9 platforms (YouTube, LinkedIn, Reddit, Pinterest, Instagram, GitHub, Facebook, Gmail, Notion)
19
+ 3. **Mobile Browser Support**: Auto-detects mobile and switches popup → redirect OAuth flow
20
+ 4. **API Integration**: Supports both test/live modes with automatic endpoint switching
21
+ 5. **PIN-based Encryption**: All models encrypted with user PIN + server key
22
+ 6. **Responsive Design**: Tailwind CSS with mobile-first approach
23
+ 7. **API Key Initialization**: Developer API key setup for authentication and environment configuration
24
+
25
+ ## Mobile Browser Compatibility ✅
26
+ **WORKS PERFECTLY**: React components, API calls, touch interactions, responsive design, state management
27
+
28
+ **AUTO-OPTIMIZED**: OAuth flow automatically detects mobile devices:
29
+ - **Desktop**: Popup OAuth windows (`window.open`)
30
+ - **Mobile**: Redirect OAuth flow (`window.location.href`)
31
+
32
+ ## OAuth Implementation ✅
33
+ **Endpoints**: All OAuth connectors use `api2.onairos.uk/{platform}/authorize`
34
+ - YouTube: `api2.onairos.uk/youtube/authorize`
35
+ - LinkedIn: `api2.onairos.uk/linkedin/authorize`
36
+ - Reddit: `api2.onairos.uk/reddit/authorize`
37
+ - Pinterest: `api2.onairos.uk/pinterest/authorize`
38
+ - Instagram: `api2.onairos.uk/instagram/authorize`
39
+ - GitHub: `api2.onairos.uk/github/authorize`
40
+ - Facebook: `api2.onairos.uk/facebook/authorize`
41
+ - Gmail: `api2.onairos.uk/gmail/authorize`
42
+ - Notion: `api2.onairos.uk/notion/authorize`
43
+
44
+ **Flow**: POST request → Get OAuth URL → Open popup/redirect → Handle callback → Update connection state
45
+
46
+ ## API Endpoints & Environment Configuration
47
+
48
+ ### Environment URLs
49
+ ```typescript
50
+ const API_ENDPOINTS = {
51
+ production: 'https://api2.onairos.uk',
52
+ staging: 'https://staging-api.onairos.uk',
53
+ development: 'https://dev-api.onairos.uk',
54
+ };
55
+ ```
56
+
57
+ ### Developer API Key Endpoints (Tier 1)
58
+ - **API Key Validation**: `POST /auth/validate-key`
59
+ - **Email Verification**: `POST /email/verification`
60
+ - **App Registration**: `POST /app/register`
61
+ - **OAuth Setup**: `POST /oauth/{platform}/setup`
62
+
63
+ ### JWT User Token Endpoints (Tier 2)
64
+ - **User Profile**: `GET /user/profile`
65
+ - **PIN Operations**: `POST /user/pin`
66
+ - **Data Requests**: `POST /user/data-request`
67
+ - **Training Routes**: `POST /mobile-training/clean` (regular) or `/enoch` (advanced)
68
+
69
+ ### Authentication Headers
70
+
71
+ **Developer API Key Headers:**
72
+ ```typescript
73
+ {
74
+ 'Content-Type': 'application/json',
75
+ 'Authorization': `Bearer ${apiKey}`,
76
+ 'User-Agent': 'OnairosSDK/1.0.0',
77
+ 'X-SDK-Version': '3.0.72',
78
+ 'X-SDK-Environment': 'production',
79
+ 'X-API-Key-Type': 'developer',
80
+ 'X-Timestamp': new Date().toISOString(),
81
+ }
82
+ ```
83
+
84
+ **JWT User Token Headers:**
85
+ ```typescript
86
+ {
87
+ 'Content-Type': 'application/json',
88
+ 'Authorization': `Bearer ${jwtToken}`,
89
+ 'User-Agent': 'OnairosSDK/1.0.0',
90
+ 'X-SDK-Version': '3.0.72',
91
+ 'X-SDK-Environment': 'production',
92
+ }
93
+ ```
94
+
95
+ ## Data Flow
96
+ 1. **API Key Initialization** → 2. **Email Authentication** → 3. **OAuth Connections** → 4. **PIN Setup** → 5. **Data Request**
97
+
98
+ **Backend Format**:
99
+ ```json
100
+ {
101
+ "Info": {
102
+ "web3Type": "Normal",
103
+ "confirmations": ["Medium", "Large", "Traits"],
104
+ "Domain": "example.com",
105
+ "EncryptedUserPin": "encrypted_pin",
106
+ "UserSub": "user_hash"
107
+ }
108
+ }
109
+ ```
110
+
111
+ ## API Key Setup ✅
112
+ **CRITICAL**: Must initialize API key before using any Onairos components
113
+
114
+ ### Two-Tier Authentication System 🔐
115
+ 1. **Developer API Keys**: For app-level operations (email verification, app registration)
116
+ 2. **JWT User Tokens**: For user-level operations (PIN storage, user profile)
117
+
118
+ ### Complete Initialization
119
+ ```typescript
120
+ import { initializeApiKey } from 'onairos';
121
+
122
+ // Initialize with developer key
123
+ await initializeApiKey({
124
+ apiKey: 'ona_your_api_key_here', // Get from Onairos Dashboard
125
+ environment: 'production', // 'production' | 'staging' | 'development'
126
+ enableLogging: true,
127
+ timeout: 30000, // Optional: Request timeout (default: 30000ms)
128
+ retryAttempts: 3 // Optional: Retry attempts (default: 3)
129
+ });
130
+ ```
131
+
132
+ ### Supported API Key Formats
133
+ - **Developer Keys**: `dev_`, `pk_`, `ona_` prefixes + 32+ characters
134
+ - **Admin Key**: Available for testing (contact support for access)
135
+ - **Validation**: Backend validation with 5-minute cache
136
+
137
+ ### Configuration Interface
138
+ ```typescript
139
+ interface OnairosConfig {
140
+ apiKey: string; // Required: Your API key
141
+ environment?: 'production' | 'staging' | 'development'; // Default: 'production'
142
+ enableLogging?: boolean; // Default: true
143
+ timeout?: number; // Default: 30000ms
144
+ retryAttempts?: number; // Default: 3
145
+ }
146
+ ```
147
+
148
+ ## Key Components & Functions
149
+
150
+ ### Exposed SDK Functions
151
+ - **initializeApiKey**: Primary SDK initialization with developer API key validation (REQUIRED)
152
+
153
+ ### UI Components
154
+ - **OnairosButton**: Main entry point with props (testMode, autoFetch, requestData)
155
+ - **UniversalOnboarding**: OAuth connector management with mobile detection
156
+ - **DataRequest**: Data type selection with visual checkmarks
157
+ - **EmailAuth**: Email verification flow
158
+ - **PinSetup**: PIN creation for encryption
159
+
160
+ ### Internal Functions (Not Exposed)
161
+ The SDK internally handles:
162
+ - JWT token management (store/load/clear)
163
+ - Developer vs user request authentication
164
+ - API key validation and caching
165
+ - OAuth flow management
166
+ - Error handling and retry logic
167
+
168
+ ## Mobile-Specific Features ✅
169
+ - **MobileDataRequestPage**: Mobile-optimized data request UI
170
+ - **Touch Events**: Proper touch handling with `touchAction` CSS
171
+ - **Viewport Management**: Dynamic viewport height for mobile browsers
172
+ - **Mobile OAuth Return**: Handles OAuth callback cleanup in mobile redirect flow
173
+
174
+ ## Known Discrepancies
175
+ ❌ **NONE** - All OAuth flows now properly handle both desktop and mobile
176
+ ❌ **NONE** - All API endpoints use correct `api2.onairos.uk` domain
177
+ ❌ **NONE** - Mobile browser compatibility is complete
178
+
179
+ ## Recent Updates (v2.1.5 → v3.1.8)
180
+ ✅ **Two-Tier Authentication System**: Developer API keys + JWT user tokens
181
+ ✅ **Comprehensive SDK Initialization**: `initializeApiKey()` with full validation
182
+ ✅ **JWT Token Management**: Automatic storage, loading, and cleanup
183
+ ✅ **Multi-Environment Support**: Production, staging, development endpoints
184
+ ✅ **Advanced Error Handling**: Retry logic, exponential backoff, auto-recovery
185
+ ✅ **API Key Validation**: Backend validation with 5-minute caching
186
+ ✅ **Request Authentication**: Separate headers for developer vs user requests
187
+ ✅ **Mobile device detection for OAuth flows**
188
+ ✅ **Mobile OAuth redirect handling**
189
+ ✅ **Enhanced OAuth URL parsing for all 9 platforms**
190
+ ✅ **Mobile browser compatibility documentation**
191
+ ✅ **Fixed OAuth popup blocking on mobile devices**
192
+ ✅ **Fixed TypeScript declaration file resolution issue in package.json exports**
193
+ ✅ **React Native AsyncStorage integration for JWT persistence**
194
+ ✅ **Comprehensive logging system with configurable levels**
195
+ ✅ **Admin key support for testing and development**
196
+ ✅ **HTTP client abstraction with automatic authentication headers**
197
+
198
+ ## Complete Usage Flow 🚀
199
+
200
+ ### Step 1: Initialize SDK (Required)
201
+ ```typescript
202
+ import { initializeApiKey } from 'onairos';
203
+
204
+ // Initialize SDK with developer API key
205
+ try {
206
+ await initializeApiKey({
207
+ apiKey: 'ona_your_api_key_here', // Get from Onairos Dashboard
208
+ environment: 'production',
209
+ enableLogging: true,
210
+ timeout: 30000,
211
+ retryAttempts: 3
212
+ });
213
+
214
+ console.log('SDK initialized successfully!');
215
+ } catch (error) {
216
+ console.error('SDK initialization failed:', error.message);
217
+ }
218
+ ```
219
+
220
+ ### Step 2: Use Onairos Components
221
+ ```typescript
222
+ import { OnairosButton } from 'onairos';
223
+
224
+ // Components automatically handle all authentication internally
225
+ <OnairosButton
226
+ requestData={{
227
+ basic: { type: "basic", reward: "10 tokens" },
228
+ personality: { type: "personality", reward: "25 tokens" },
229
+ preferences: { type: "preferences", reward: "15 tokens" }
230
+ }}
231
+ webpageName="MyApp"
232
+ testMode={false}
233
+ autoFetch={true}
234
+ onComplete={(result) => console.log(result)}
235
+ />
236
+ ```
237
+
238
+ ## Error Handling & Retry Logic 🛡️
239
+
240
+ ### API Key Validation Errors
241
+ ```typescript
242
+ // Invalid format
243
+ throw new Error('Invalid API key format. Developer keys must be at least 32 characters and start with "dev_", "pk_", or "ona_"');
244
+
245
+ // Backend validation failure
246
+ throw new Error(`API key validation failed: ${validation.error}`);
247
+
248
+ // Rate limiting
249
+ throw new Error('API rate limit exceeded. Please try again later.');
250
+ ```
251
+
252
+ ### HTTP Request Errors
253
+ - **401 Unauthorized**: Invalid/expired API key or JWT token
254
+ - **403 Forbidden**: Insufficient permissions
255
+ - **429 Too Many Requests**: Rate limit exceeded
256
+ - **500 Server Error**: Backend service unavailable
257
+
258
+ ### Automatic Retry Logic
259
+ - **Retry Attempts**: Configurable (default: 3)
260
+ - **Timeout**: Configurable (default: 30000ms)
261
+ - **Exponential Backoff**: For 429 and 5xx errors
262
+ - **JWT Auto-Clear**: Clears expired JWT tokens on 401
263
+
264
+ ## Critical Success Factors
265
+ 1. **Two-Tier Authentication**: Developer API keys → JWT tokens → User operations
266
+ 2. **SDK Initialization**: Must call `initializeApiKey()` before using any components
267
+ 3. **Environment Configuration**: Proper staging/production endpoint management
268
+ 4. **Cross-Platform**: Same React code works in desktop browsers, mobile browsers, and React Native
269
+ 5. **OAuth Reliability**: Auto-detects environment and uses appropriate OAuth flow
270
+ 6. **JWT Token Management**: Automatic storage, loading, and cleanup of user sessions
271
+ 7. **Mobile UX**: Touch-friendly UI with proper viewport handling
272
+ 8. **Error Handling**: Comprehensive error states, retry logic, and user guidance
273
+
274
+ ## TypeScript Support ✅
275
+ **Full TypeScript Support**: Complete type definitions provided in `onairos.d.ts`
276
+
277
+ **Usage with TypeScript**:
278
+ ```typescript
279
+ import { OnairosButton } from 'onairos';
280
+ import type { OnairosProps } from 'onairos';
281
+
282
+ // Component usage with full type safety
283
+ const MyComponent: React.FC = () => {
284
+ return (
285
+ <OnairosButton
286
+ requestData={{
287
+ basic: { type: "basic", reward: "10 tokens" },
288
+ personality: { type: "personality", reward: "25 tokens" },
289
+ preferences: { type: "preferences", reward: "15 tokens" }
290
+ }}
291
+ webpageName="MyApp"
292
+ testMode={false}
293
+ autoFetch={true}
294
+ onComplete={(result) => console.log(result)}
295
+ />
296
+ );
297
+ };
298
+ ```
299
+
300
+ **Common TypeScript Issues & Solutions**:
301
+ - **"Could not find declaration file"**: Fixed in v2.1.5 by adding `types` field to package.json exports
302
+ - **Import errors**: Always import from `'onairos'` (not specific paths)
303
+ - **Type inference**: All components have full TypeScript support with IntelliSense
304
+
305
+ ## SDK Consistency Across Platforms 🔄
306
+
307
+ ### For Other SDK Implementations
308
+ To ensure consistency across all Onairos SDKs, implement:
309
+
310
+ 1. **Same API Key Formats**: `dev_`, `pk_`, `ona_` prefixes + 32+ character length
311
+ 2. **Same Validation Endpoint**: `POST /auth/validate-key`
312
+ 3. **Same Headers Structure**: Authorization, X-API-Key-Type, X-SDK-Version, etc.
313
+ 4. **Same Two-Tier Auth**: Developer keys → JWT tokens → User operations
314
+ 5. **Same Error Handling**: 401, 403, 429 status codes with retry logic
315
+ 6. **Same Caching**: 5-minute validation cache for API keys
316
+ 7. **Same Admin Key**: `'OnairosIsAUnicorn2025'` for testing
317
+
318
+ ### Environment Consistency
319
+ ```typescript
320
+ // All SDKs should use the same endpoint structure
321
+ const endpoints = {
322
+ production: 'https://api2.onairos.uk',
323
+ staging: 'https://staging-api.onairos.uk',
324
+ development: 'https://dev-api.onairos.uk'
325
+ };
326
+ ```
327
+
328
+ ## Build & Development
329
+ - **Build**: `npm run build` (creates dist/ folder)
330
+ - **Test Files**: Multiple test HTML files for different scenarios
331
+ - **Entry Points**: `src/index.js` (main), `src/onairos.native.jsx` (React Native)
332
+ - **Responsive**: Tailwind CSS with `sm:`, `md:`, `lg:` breakpoints throughout
333
+ - **TypeScript**: Full type definitions with proper package.json exports configuration
334
+ - **Authentication**: Two-tier system ensures secure and scalable API access