@nocios/crudify-ui 4.4.58 → 4.4.64

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.
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import crudify__default from '@nocios/crudify-browser';
2
2
  export * from '@nocios/crudify-browser';
3
3
  export { default as crudify } from '@nocios/crudify-browser';
4
- import { d as CrudifyLoginConfig } from './CrudiaMarkdownField-BB1lfJl2.js';
5
- export { B as BoxScreenType, a as CrudiaAutoGenerate, i as CrudiaAutoGenerateProps, b as CrudiaFileField, j as CrudiaFileFieldProps, c as CrudiaMarkdownField, k as CrudiaMarkdownFieldProps, C as CrudifyLogin, e as CrudifyLoginProps, f as CrudifyLoginTranslations, L as LoginComponent, l as POLICY_ACTIONS, m as PREFERRED_POLICY_ORDER, P as Policies, h as PolicyAction, S as SessionStatus, g as UserLoginData, U as UserProfileDisplay } from './CrudiaMarkdownField-BB1lfJl2.js';
4
+ import { d as CrudifyLoginConfig } from './CrudiaMarkdownField-Bs940oF4.js';
5
+ export { B as BoxScreenType, a as CrudiaAutoGenerate, i as CrudiaAutoGenerateProps, b as CrudiaFileField, j as CrudiaFileFieldProps, c as CrudiaMarkdownField, k as CrudiaMarkdownFieldProps, C as CrudifyLogin, e as CrudifyLoginProps, f as CrudifyLoginTranslations, L as LoginComponent, l as POLICY_ACTIONS, m as PREFERRED_POLICY_ORDER, P as Policies, h as PolicyAction, S as SessionStatus, g as UserLoginData, U as UserProfileDisplay } from './CrudiaMarkdownField-Bs940oF4.js';
6
6
  import React, { ReactNode } from 'react';
7
7
  export { A as ApiError, C as CrudifyApiResponse, a as CrudifyTransactionResponse, F as ForgotPasswordRequest, J as JwtPayload, b as LoginRequest, L as LoginResponse, R as ResetPasswordRequest, T as TransactionResponseData, U as UserProfile, V as ValidateCodeRequest, c as ValidationError } from './api-Djqihi4n.js';
8
8
  import { U as UseSessionOptions, T as TokenData, L as LoginResult } from './index-BVT7flO5.js';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk7ICLHPYKjs = require('./chunk-7ICLHPYK.js');var _chunkEMNHA2HKjs = require('./chunk-EMNHA2HK.js');var _chunkATKMGMGSjs = require('./chunk-ATKMGMGS.js');var _chunkNNY4A73Vjs = require('./chunk-NNY4A73V.js');var _chunkYIIUEOXCjs = require('./chunk-YIIUEOXC.js');var _chunkFC7HOMNQjs = require('./chunk-FC7HOMNQ.js');var _crudifybrowser = require('@nocios/crudify-browser'); var _crudifybrowser2 = _interopRequireDefault(_crudifybrowser); _createStarExport(_crudifybrowser);var _react = require('react');var _material = require('@mui/material');var _jsxruntime = require('react/jsx-runtime');var Ge=(e={})=>{try{let r=_chunkFC7HOMNQjs.a.call(void 0, "theme");if(r){let o=JSON.parse(decodeURIComponent(r));return{...e,...o}}}catch(r){console.warn("Error parsing theme from cookie:",r)}return e};function Ke({children:e,defaultTheme:r={},disableCssBaseline:o=!1}){let t=_react.useMemo.call(void 0, ()=>{let s=Ge(r);return _material.createTheme.call(void 0, s)},[r]);return _jsxruntime.jsxs.call(void 0, _material.ThemeProvider,{theme:t,children:[!o&&_jsxruntime.jsx.call(void 0, _material.CssBaseline,{}),e]})}var _reactrouterdom = require('react-router-dom');var Be={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},He=()=>_jsxruntime.jsx.call(void 0, "style",{children:`
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createStarExport(obj) { Object.keys(obj) .filter((key) => key !== "default" && key !== "__esModule") .forEach((key) => { if (exports.hasOwnProperty(key)) { return; } Object.defineProperty(exports, key, {enumerable: true, configurable: true, get: () => obj[key]}); }); } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkYA2ON7ZRjs = require('./chunk-YA2ON7ZR.js');var _chunkEMNHA2HKjs = require('./chunk-EMNHA2HK.js');var _chunkATKMGMGSjs = require('./chunk-ATKMGMGS.js');var _chunkNNY4A73Vjs = require('./chunk-NNY4A73V.js');var _chunkYIIUEOXCjs = require('./chunk-YIIUEOXC.js');var _chunkFC7HOMNQjs = require('./chunk-FC7HOMNQ.js');var _crudifybrowser = require('@nocios/crudify-browser'); var _crudifybrowser2 = _interopRequireDefault(_crudifybrowser); _createStarExport(_crudifybrowser);var _react = require('react');var _material = require('@mui/material');var _jsxruntime = require('react/jsx-runtime');var Ge=(e={})=>{try{let r=_chunkFC7HOMNQjs.a.call(void 0, "theme");if(r){let o=JSON.parse(decodeURIComponent(r));return{...e,...o}}}catch(r){console.warn("Error parsing theme from cookie:",r)}return e};function Ke({children:e,defaultTheme:r={},disableCssBaseline:o=!1}){let t=_react.useMemo.call(void 0, ()=>{let s=Ge(r);return _material.createTheme.call(void 0, s)},[r]);return _jsxruntime.jsxs.call(void 0, _material.ThemeProvider,{theme:t,children:[!o&&_jsxruntime.jsx.call(void 0, _material.CssBaseline,{}),e]})}var _reactrouterdom = require('react-router-dom');var Be={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},He=()=>_jsxruntime.jsx.call(void 0, "style",{children:`
2
2
  @keyframes spin {
3
3
  0% { transform: rotate(0deg); }
4
4
  100% { transform: rotate(360deg); }
5
5
  }
6
- `});function S({stage:e="loading",message:r}){let t=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, He,{}),_jsxruntime.jsxs.call(void 0, "div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",width:"100vw",backgroundColor:"#f0f2f5",fontFamily:'"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',color:"#333",textAlign:"center",boxSizing:"border-box",padding:"20px",background:"#fff"},children:[_jsxruntime.jsx.call(void 0, "div",{style:Be}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:t})]})]})}var We=/^[a-zA-Z0-9\-_./\?=&%#]+$/,Je=[/^https?:\/\//i,/^ftp:\/\//i,/^\/\//,/javascript:/i,/data:/i,/vbscript:/i,/about:/i,/\.\.\//,/\.\.\\/,/%2e%2e%2f/i,/%2e%2e%5c/i,/%2f%2f/i,/%5c%5c/i,/[\x00-\x1f\x7f-\x9f]/,/\\/],P= exports.validateInternalRedirect =(e,r="/")=>{if(!e||typeof e!="string")return r;let o=e.trim();if(!o)return r;if(!o.startsWith("/"))return console.warn("\u{1F6A8} Open redirect blocked (relative path):",e),r;if(!We.test(o))return console.warn("\u{1F6A8} Open redirect blocked (invalid characters):",e),r;let t=o.toLowerCase();for(let a of Je)if(a.test(t))return console.warn("\u{1F6A8} Open redirect blocked (dangerous pattern):",e),r;let s=o.split("?")[0].split("/").filter(Boolean);if(s.length===0)return o;for(let a of s)if(a===".."||a.includes(":")||a.length>100)return console.warn("\u{1F6A8} Open redirect blocked (suspicious path part):",a),r;return o},v= exports.extractSafeRedirectFromUrl =(e,r="/")=>{try{let t=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!t)return r;let s=decodeURIComponent(t);return P(s,r)}catch(o){return console.warn("\u{1F6A8} Error parsing redirect parameter:",o),r}};function U({children:e,loadingComponent:r,loginPath:o="/login"}){let{isAuthenticated:t,isLoading:s,isInitialized:a,tokens:p,error:g}=_chunkATKMGMGSjs.j.call(void 0, ),d=_reactrouterdom.useLocation.call(void 0, );if(!a||s)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:r||_jsxruntime.jsx.call(void 0, S,{stage:"validating-session"})});let l=t&&_optionalChain([p, 'optionalAccess', _2 => _2.accessToken])&&p.accessToken.length>0;if(g||!t||!l){p&&(!p.accessToken||p.accessToken.length===0)&&localStorage.removeItem("crudify_tokens");let y=d.pathname+d.search,A=P(y),x=encodeURIComponent(A);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${o}?redirect=${x}`,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function w({children:e,redirectTo:r="/"}){let{isAuthenticated:o}=_chunkATKMGMGSjs.j.call(void 0, ),t=_reactrouterdom.useLocation.call(void 0, );if(o){let s=new URLSearchParams(t.search),a=v(s,r);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:a,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var N=_react.createContext.call(void 0, void 0),or= exports.CrudifyInitializer =({config:e,children:r,fallback:o=null,onInitialized:t,onError:s})=>{let[a,p]=_react.useState.call(void 0, !1),[g,d]=_react.useState.call(void 0, !1),[l,y]=_react.useState.call(void 0, null),A=_react.useRef.call(void 0, !1),x=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{A.current||(_chunkATKMGMGSjs.o.registerHighPriorityInitializer(),A.current=!0),x.current||(x.current=!0,(async()=>{d(!0),y(null);try{let c=_chunkFC7HOMNQjs.b.call(void 0, {publicApiKey:_optionalChain([e, 'optionalAccess', _3 => _3.publicApiKey]),env:_optionalChain([e, 'optionalAccess', _4 => _4.env]),enableDebug:_optionalChain([e, 'optionalAccess', _5 => _5.enableLogging])});if(!c.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");await _chunkATKMGMGSjs.o.initialize({priority:"HIGH",publicApiKey:c.publicApiKey,env:c.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _6 => _6.enableLogging]),requestedBy:"CrudifyInitializer"}),p(!0),d(!1),t&&t()}catch(c){let M=c instanceof Error?c:new Error(String(c));y(M),d(!1),s&&s(M)}})())},[_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),_optionalChain([e, 'optionalAccess', _8 => _8.env]),_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging]),t,s]);let G={isInitialized:a,isInitializing:g,error:l};return g&&o?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:o}):(l&&console.error("[CrudifyInitializer] Initialization failed:",l),_jsxruntime.jsx.call(void 0, N.Provider,{value:G,children:r}))},tr= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, N);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadmin = require('@nocios/crudify-admin'); var _crudifyadmin2 = _interopRequireDefault(_crudifyadmin);var D=!1,m=null;async function nr(){let r=_chunkATKMGMGSjs.e.getInstance().getTokenInfo(),o=_optionalChain([r, 'optionalAccess', _10 => _10.apiEndpointAdmin]),t=_optionalChain([r, 'optionalAccess', _11 => _11.apiKeyEndpointAdmin]);return o&&t?{apiUrl:o,apiKey:t}:_chunkATKMGMGSjs.a.waitForCredentials()}async function sr(){if(!D)return m||(m=(async()=>{try{let e=_chunkATKMGMGSjs.e.getInstance(),{apiUrl:r,apiKey:o}=await nr();_crudifyadmin2.default.init({url:r,apiKey:o,getAdditionalHeaders:()=>{let t=e.getTokenInfo();return _optionalChain([t, 'optionalAccess', _12 => _12.crudifyTokens, 'optionalAccess', _13 => _13.accessToken])?{Authorization:`Bearer ${t.crudifyTokens.accessToken}`}:{}}}),D=!0}catch(e){throw m=null,console.error("[crudifyAdminWrapper] Initialization failed:",e),e}})(),m)}async function n(e){try{await sr();let r=await e();return!r.success&&_optionalChain([r, 'access', _14 => _14.errors, 'optionalAccess', _15 => _15.includes, 'call', _16 => _16("401")])?await _chunkATKMGMGSjs.e.getInstance().refreshTokens()?await e():(console.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),r):r}catch(r){return console.error("[crudifyAdmin] Operation error:",r),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var ar={listModules:()=>n(()=>_crudifyadmin2.default.listModules()),getModule:e=>n(()=>_crudifyadmin2.default.getModule(e)),createModule:e=>n(()=>_crudifyadmin2.default.createModule(e)),editModule:(e,r)=>n(()=>_crudifyadmin2.default.editModule(e,r)),deleteModule:e=>n(()=>_crudifyadmin2.default.deleteModule(e)),activateModule:e=>n(()=>_crudifyadmin2.default.activateModule(e)),deactivateModule:e=>n(()=>_crudifyadmin2.default.deactivateModule(e)),getModuleVersions:e=>n(()=>_crudifyadmin2.default.getModuleVersions(e)),listActions:e=>n(()=>_crudifyadmin2.default.listActions(e)),getAction:e=>n(()=>_crudifyadmin2.default.getAction(e)),createAction:e=>n(()=>_crudifyadmin2.default.createAction(e)),editAction:(e,r)=>n(()=>_crudifyadmin2.default.editAction(e,r)),deleteAction:e=>n(()=>_crudifyadmin2.default.deleteAction(e)),activateAction:e=>n(()=>_crudifyadmin2.default.activateAction(e)),deactivateAction:e=>n(()=>_crudifyadmin2.default.deactivateAction(e)),getActionVersions:e=>n(()=>_crudifyadmin2.default.getActionVersions(e)),getActionsByProfile:e=>n(()=>_crudifyadmin2.default.getActionsByProfile(e)),updateActionsProfiles:e=>n(()=>_crudifyadmin2.default.updateActionsProfiles(e))};exports.AuthRoute = w; exports.CRITICAL_TRANSLATIONS = _chunk7ICLHPYKjs.a; exports.CrudiaAutoGenerate = _chunk7ICLHPYKjs.o; exports.CrudiaFileField = _chunk7ICLHPYKjs.p; exports.CrudiaMarkdownField = _chunk7ICLHPYKjs.q; exports.CrudifyInitializationManager = _chunkATKMGMGSjs.n; exports.CrudifyInitializer = or; exports.CrudifyLogin = _chunk7ICLHPYKjs.h; exports.CrudifyProvider = _chunkATKMGMGSjs.b; exports.CrudifyThemeProvider = Ke; exports.ERROR_CODES = _chunkYIIUEOXCjs.a; exports.ERROR_SEVERITY_MAP = _chunkYIIUEOXCjs.b; exports.GlobalNotificationProvider = _chunkATKMGMGSjs.g; exports.LoginComponent = _chunk7ICLHPYKjs.m; exports.POLICY_ACTIONS = _chunk7ICLHPYKjs.j; exports.PREFERRED_POLICY_ORDER = _chunk7ICLHPYKjs.k; exports.Policies = _chunk7ICLHPYKjs.l; exports.ProtectedRoute = U; exports.SessionDebugInfo = _chunkATKMGMGSjs.k; exports.SessionLoadingScreen = S; exports.SessionManager = _chunkATKMGMGSjs.e; exports.SessionProvider = _chunkATKMGMGSjs.i; exports.SessionStatus = _chunk7ICLHPYKjs.n; exports.TokenStorage = _chunkATKMGMGSjs.d; exports.TranslationService = _chunk7ICLHPYKjs.d; exports.TranslationsProvider = _chunk7ICLHPYKjs.f; exports.UserProfileDisplay = _chunk7ICLHPYKjs.i; exports.createErrorTranslator = _chunkFC7HOMNQjs.g; exports.crudify = _crudifybrowser2.default; exports.crudifyAdmin = ar; exports.crudifyInitManager = _chunkATKMGMGSjs.o; exports.decodeJwtSafely = _chunkFC7HOMNQjs.j; exports.extractSafeRedirectFromUrl = v; exports.getCookie = _chunkFC7HOMNQjs.a; exports.getCriticalLanguages = _chunk7ICLHPYKjs.b; exports.getCriticalTranslations = _chunk7ICLHPYKjs.c; exports.getCurrentUserEmail = _chunkFC7HOMNQjs.k; exports.getErrorMessage = _chunkYIIUEOXCjs.e; exports.handleCrudifyError = _chunkYIIUEOXCjs.g; exports.isTokenExpired = _chunkFC7HOMNQjs.l; exports.parseApiError = _chunkYIIUEOXCjs.c; exports.parseJavaScriptError = _chunkYIIUEOXCjs.f; exports.parseTransactionError = _chunkYIIUEOXCjs.d; exports.secureLocalStorage = _chunkNNY4A73Vjs.b; exports.secureSessionStorage = _chunkNNY4A73Vjs.a; exports.translateError = _chunkFC7HOMNQjs.f; exports.translateErrorCode = _chunkFC7HOMNQjs.d; exports.translateErrorCodes = _chunkFC7HOMNQjs.e; exports.translationService = _chunk7ICLHPYKjs.e; exports.useAuth = _chunkEMNHA2HKjs.b; exports.useAutoGenerate = _chunkATKMGMGSjs.m; exports.useCrudify = _chunkATKMGMGSjs.c; exports.useCrudifyInitializer = tr; exports.useCrudifyWithNotifications = _chunkEMNHA2HKjs.d; exports.useData = _chunkEMNHA2HKjs.c; exports.useFileUpload = _chunkATKMGMGSjs.p; exports.useGlobalNotification = _chunkATKMGMGSjs.h; exports.useSession = _chunkATKMGMGSjs.f; exports.useSessionContext = _chunkATKMGMGSjs.j; exports.useTranslations = _chunk7ICLHPYKjs.g; exports.useUserData = _chunkEMNHA2HKjs.a; exports.useUserProfile = _chunkATKMGMGSjs.l; exports.validateInternalRedirect = P;
6
+ `});function S({stage:e="loading",message:r}){let t=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, He,{}),_jsxruntime.jsxs.call(void 0, "div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100vh",width:"100vw",backgroundColor:"#f0f2f5",fontFamily:'"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',color:"#333",textAlign:"center",boxSizing:"border-box",padding:"20px",background:"#fff"},children:[_jsxruntime.jsx.call(void 0, "div",{style:Be}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:t})]})]})}var We=/^[a-zA-Z0-9\-_./\?=&%#]+$/,Je=[/^https?:\/\//i,/^ftp:\/\//i,/^\/\//,/javascript:/i,/data:/i,/vbscript:/i,/about:/i,/\.\.\//,/\.\.\\/,/%2e%2e%2f/i,/%2e%2e%5c/i,/%2f%2f/i,/%5c%5c/i,/[\x00-\x1f\x7f-\x9f]/,/\\/],P= exports.validateInternalRedirect =(e,r="/")=>{if(!e||typeof e!="string")return r;let o=e.trim();if(!o)return r;if(!o.startsWith("/"))return console.warn("\u{1F6A8} Open redirect blocked (relative path):",e),r;if(!We.test(o))return console.warn("\u{1F6A8} Open redirect blocked (invalid characters):",e),r;let t=o.toLowerCase();for(let a of Je)if(a.test(t))return console.warn("\u{1F6A8} Open redirect blocked (dangerous pattern):",e),r;let s=o.split("?")[0].split("/").filter(Boolean);if(s.length===0)return o;for(let a of s)if(a===".."||a.includes(":")||a.length>100)return console.warn("\u{1F6A8} Open redirect blocked (suspicious path part):",a),r;return o},v= exports.extractSafeRedirectFromUrl =(e,r="/")=>{try{let t=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!t)return r;let s=decodeURIComponent(t);return P(s,r)}catch(o){return console.warn("\u{1F6A8} Error parsing redirect parameter:",o),r}};function U({children:e,loadingComponent:r,loginPath:o="/login"}){let{isAuthenticated:t,isLoading:s,isInitialized:a,tokens:p,error:g}=_chunkATKMGMGSjs.j.call(void 0, ),d=_reactrouterdom.useLocation.call(void 0, );if(!a||s)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:r||_jsxruntime.jsx.call(void 0, S,{stage:"validating-session"})});let l=t&&_optionalChain([p, 'optionalAccess', _2 => _2.accessToken])&&p.accessToken.length>0;if(g||!t||!l){p&&(!p.accessToken||p.accessToken.length===0)&&localStorage.removeItem("crudify_tokens");let y=d.pathname+d.search,A=P(y),x=encodeURIComponent(A);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${o}?redirect=${x}`,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function w({children:e,redirectTo:r="/"}){let{isAuthenticated:o}=_chunkATKMGMGSjs.j.call(void 0, ),t=_reactrouterdom.useLocation.call(void 0, );if(o){let s=new URLSearchParams(t.search),a=v(s,r);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:a,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var N=_react.createContext.call(void 0, void 0),or= exports.CrudifyInitializer =({config:e,children:r,fallback:o=null,onInitialized:t,onError:s})=>{let[a,p]=_react.useState.call(void 0, !1),[g,d]=_react.useState.call(void 0, !1),[l,y]=_react.useState.call(void 0, null),A=_react.useRef.call(void 0, !1),x=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{A.current||(_chunkATKMGMGSjs.o.registerHighPriorityInitializer(),A.current=!0),x.current||(x.current=!0,(async()=>{d(!0),y(null);try{let c=_chunkFC7HOMNQjs.b.call(void 0, {publicApiKey:_optionalChain([e, 'optionalAccess', _3 => _3.publicApiKey]),env:_optionalChain([e, 'optionalAccess', _4 => _4.env]),enableDebug:_optionalChain([e, 'optionalAccess', _5 => _5.enableLogging])});if(!c.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");await _chunkATKMGMGSjs.o.initialize({priority:"HIGH",publicApiKey:c.publicApiKey,env:c.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _6 => _6.enableLogging]),requestedBy:"CrudifyInitializer"}),p(!0),d(!1),t&&t()}catch(c){let M=c instanceof Error?c:new Error(String(c));y(M),d(!1),s&&s(M)}})())},[_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),_optionalChain([e, 'optionalAccess', _8 => _8.env]),_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging]),t,s]);let G={isInitialized:a,isInitializing:g,error:l};return g&&o?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:o}):(l&&console.error("[CrudifyInitializer] Initialization failed:",l),_jsxruntime.jsx.call(void 0, N.Provider,{value:G,children:r}))},tr= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, N);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadmin = require('@nocios/crudify-admin'); var _crudifyadmin2 = _interopRequireDefault(_crudifyadmin);var D=!1,m=null;async function nr(){let r=_chunkATKMGMGSjs.e.getInstance().getTokenInfo(),o=_optionalChain([r, 'optionalAccess', _10 => _10.apiEndpointAdmin]),t=_optionalChain([r, 'optionalAccess', _11 => _11.apiKeyEndpointAdmin]);return o&&t?{apiUrl:o,apiKey:t}:_chunkATKMGMGSjs.a.waitForCredentials()}async function sr(){if(!D)return m||(m=(async()=>{try{let e=_chunkATKMGMGSjs.e.getInstance(),{apiUrl:r,apiKey:o}=await nr();_crudifyadmin2.default.init({url:r,apiKey:o,getAdditionalHeaders:()=>{let t=e.getTokenInfo();return _optionalChain([t, 'optionalAccess', _12 => _12.crudifyTokens, 'optionalAccess', _13 => _13.accessToken])?{Authorization:`Bearer ${t.crudifyTokens.accessToken}`}:{}}}),D=!0}catch(e){throw m=null,console.error("[crudifyAdminWrapper] Initialization failed:",e),e}})(),m)}async function n(e){try{await sr();let r=await e();return!r.success&&_optionalChain([r, 'access', _14 => _14.errors, 'optionalAccess', _15 => _15.includes, 'call', _16 => _16("401")])?await _chunkATKMGMGSjs.e.getInstance().refreshTokens()?await e():(console.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),r):r}catch(r){return console.error("[crudifyAdmin] Operation error:",r),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var ar={listModules:()=>n(()=>_crudifyadmin2.default.listModules()),getModule:e=>n(()=>_crudifyadmin2.default.getModule(e)),createModule:e=>n(()=>_crudifyadmin2.default.createModule(e)),editModule:(e,r)=>n(()=>_crudifyadmin2.default.editModule(e,r)),deleteModule:e=>n(()=>_crudifyadmin2.default.deleteModule(e)),activateModule:e=>n(()=>_crudifyadmin2.default.activateModule(e)),deactivateModule:e=>n(()=>_crudifyadmin2.default.deactivateModule(e)),getModuleVersions:e=>n(()=>_crudifyadmin2.default.getModuleVersions(e)),listActions:e=>n(()=>_crudifyadmin2.default.listActions(e)),getAction:e=>n(()=>_crudifyadmin2.default.getAction(e)),createAction:e=>n(()=>_crudifyadmin2.default.createAction(e)),editAction:(e,r)=>n(()=>_crudifyadmin2.default.editAction(e,r)),deleteAction:e=>n(()=>_crudifyadmin2.default.deleteAction(e)),activateAction:e=>n(()=>_crudifyadmin2.default.activateAction(e)),deactivateAction:e=>n(()=>_crudifyadmin2.default.deactivateAction(e)),getActionVersions:e=>n(()=>_crudifyadmin2.default.getActionVersions(e)),getActionsByProfile:e=>n(()=>_crudifyadmin2.default.getActionsByProfile(e)),updateActionsProfiles:e=>n(()=>_crudifyadmin2.default.updateActionsProfiles(e))};exports.AuthRoute = w; exports.CRITICAL_TRANSLATIONS = _chunkYA2ON7ZRjs.a; exports.CrudiaAutoGenerate = _chunkYA2ON7ZRjs.o; exports.CrudiaFileField = _chunkYA2ON7ZRjs.p; exports.CrudiaMarkdownField = _chunkYA2ON7ZRjs.q; exports.CrudifyInitializationManager = _chunkATKMGMGSjs.n; exports.CrudifyInitializer = or; exports.CrudifyLogin = _chunkYA2ON7ZRjs.h; exports.CrudifyProvider = _chunkATKMGMGSjs.b; exports.CrudifyThemeProvider = Ke; exports.ERROR_CODES = _chunkYIIUEOXCjs.a; exports.ERROR_SEVERITY_MAP = _chunkYIIUEOXCjs.b; exports.GlobalNotificationProvider = _chunkATKMGMGSjs.g; exports.LoginComponent = _chunkYA2ON7ZRjs.m; exports.POLICY_ACTIONS = _chunkYA2ON7ZRjs.j; exports.PREFERRED_POLICY_ORDER = _chunkYA2ON7ZRjs.k; exports.Policies = _chunkYA2ON7ZRjs.l; exports.ProtectedRoute = U; exports.SessionDebugInfo = _chunkATKMGMGSjs.k; exports.SessionLoadingScreen = S; exports.SessionManager = _chunkATKMGMGSjs.e; exports.SessionProvider = _chunkATKMGMGSjs.i; exports.SessionStatus = _chunkYA2ON7ZRjs.n; exports.TokenStorage = _chunkATKMGMGSjs.d; exports.TranslationService = _chunkYA2ON7ZRjs.d; exports.TranslationsProvider = _chunkYA2ON7ZRjs.f; exports.UserProfileDisplay = _chunkYA2ON7ZRjs.i; exports.createErrorTranslator = _chunkFC7HOMNQjs.g; exports.crudify = _crudifybrowser2.default; exports.crudifyAdmin = ar; exports.crudifyInitManager = _chunkATKMGMGSjs.o; exports.decodeJwtSafely = _chunkFC7HOMNQjs.j; exports.extractSafeRedirectFromUrl = v; exports.getCookie = _chunkFC7HOMNQjs.a; exports.getCriticalLanguages = _chunkYA2ON7ZRjs.b; exports.getCriticalTranslations = _chunkYA2ON7ZRjs.c; exports.getCurrentUserEmail = _chunkFC7HOMNQjs.k; exports.getErrorMessage = _chunkYIIUEOXCjs.e; exports.handleCrudifyError = _chunkYIIUEOXCjs.g; exports.isTokenExpired = _chunkFC7HOMNQjs.l; exports.parseApiError = _chunkYIIUEOXCjs.c; exports.parseJavaScriptError = _chunkYIIUEOXCjs.f; exports.parseTransactionError = _chunkYIIUEOXCjs.d; exports.secureLocalStorage = _chunkNNY4A73Vjs.b; exports.secureSessionStorage = _chunkNNY4A73Vjs.a; exports.translateError = _chunkFC7HOMNQjs.f; exports.translateErrorCode = _chunkFC7HOMNQjs.d; exports.translateErrorCodes = _chunkFC7HOMNQjs.e; exports.translationService = _chunkYA2ON7ZRjs.e; exports.useAuth = _chunkEMNHA2HKjs.b; exports.useAutoGenerate = _chunkATKMGMGSjs.m; exports.useCrudify = _chunkATKMGMGSjs.c; exports.useCrudifyInitializer = tr; exports.useCrudifyWithNotifications = _chunkEMNHA2HKjs.d; exports.useData = _chunkEMNHA2HKjs.c; exports.useFileUpload = _chunkATKMGMGSjs.p; exports.useGlobalNotification = _chunkATKMGMGSjs.h; exports.useSession = _chunkATKMGMGSjs.f; exports.useSessionContext = _chunkATKMGMGSjs.j; exports.useTranslations = _chunkYA2ON7ZRjs.g; exports.useUserData = _chunkEMNHA2HKjs.a; exports.useUserProfile = _chunkATKMGMGSjs.l; exports.validateInternalRedirect = P;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import{a as K,b as V,c as _,d as B,e as H,f as q,g as W,h as ge,i as Ae,j as xe,k as Re,l as Ce,m as Pe,n as Ie,o as Se,p as Me,q as ze}from"./chunk-W46IJS4Y.mjs";import{a as Ee,b as be,c as Le,d as we}from"./chunk-6RZTP6DV.mjs";import{a as E,b as J,c as $,d as Y,e as u,f as ee,g as ie,h as ne,i as se,j as f,k as ae,l as ye,m as he,n as ve,o as R,p as Te}from"./chunk-5PKTOZAY.mjs";import{a as Ue,b as ke}from"./chunk-T2CPA46I.mjs";import{a as pe,b as ce,c as de,d as le,e as ue,f as fe,g as me}from"./chunk-BJ6PIVZR.mjs";import{a as h,b as z,d as Z,e as Q,f as X,g as j,j as re,k as oe,l as te}from"./chunk-6GPSBDW6.mjs";import{default as Wr}from"@nocios/crudify-browser";export*from"@nocios/crudify-browser";import{useMemo as Fe}from"react";import{ThemeProvider as Oe,createTheme as Ne,CssBaseline as De}from"@mui/material";import{jsx as Ve,jsxs as _e}from"react/jsx-runtime";var Ge=(e={})=>{try{let r=h("theme");if(r){let o=JSON.parse(decodeURIComponent(r));return{...e,...o}}}catch(r){console.warn("Error parsing theme from cookie:",r)}return e};function Ke({children:e,defaultTheme:r={},disableCssBaseline:o=!1}){let t=Fe(()=>{let s=Ge(r);return Ne(s)},[r]);return _e(Oe,{theme:t,children:[!o&&Ve(De,{}),e]})}import{Navigate as $e,useLocation as Ye}from"react-router-dom";import{Fragment as qe,jsx as C,jsxs as b}from"react/jsx-runtime";var Be={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},He=()=>C("style",{children:`
1
+ import{a as K,b as V,c as _,d as B,e as H,f as q,g as W,h as ge,i as Ae,j as xe,k as Re,l as Ce,m as Pe,n as Ie,o as Se,p as Me,q as ze}from"./chunk-A65BF4BB.mjs";import{a as Ee,b as be,c as Le,d as we}from"./chunk-6RZTP6DV.mjs";import{a as E,b as J,c as $,d as Y,e as u,f as ee,g as ie,h as ne,i as se,j as f,k as ae,l as ye,m as he,n as ve,o as R,p as Te}from"./chunk-5PKTOZAY.mjs";import{a as Ue,b as ke}from"./chunk-T2CPA46I.mjs";import{a as pe,b as ce,c as de,d as le,e as ue,f as fe,g as me}from"./chunk-BJ6PIVZR.mjs";import{a as h,b as z,d as Z,e as Q,f as X,g as j,j as re,k as oe,l as te}from"./chunk-6GPSBDW6.mjs";import{default as Wr}from"@nocios/crudify-browser";export*from"@nocios/crudify-browser";import{useMemo as Fe}from"react";import{ThemeProvider as Oe,createTheme as Ne,CssBaseline as De}from"@mui/material";import{jsx as Ve,jsxs as _e}from"react/jsx-runtime";var Ge=(e={})=>{try{let r=h("theme");if(r){let o=JSON.parse(decodeURIComponent(r));return{...e,...o}}}catch(r){console.warn("Error parsing theme from cookie:",r)}return e};function Ke({children:e,defaultTheme:r={},disableCssBaseline:o=!1}){let t=Fe(()=>{let s=Ge(r);return Ne(s)},[r]);return _e(Oe,{theme:t,children:[!o&&Ve(De,{}),e]})}import{Navigate as $e,useLocation as Ye}from"react-router-dom";import{Fragment as qe,jsx as C,jsxs as b}from"react/jsx-runtime";var Be={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},He=()=>C("style",{children:`
2
2
  @keyframes spin {
3
3
  0% { transform: rotate(0deg); }
4
4
  100% { transform: rotate(360deg); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocios/crudify-ui",
3
- "version": "4.4.58",
3
+ "version": "4.4.64",
4
4
  "description": "Biblioteca de componentes UI para Crudify",
5
5
  "author": "Nocios",
6
6
  "license": "MIT",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@mdxeditor/editor": "^3.52.0",
43
43
  "@nocios/crudify-admin": "^2.2.0",
44
- "@nocios/crudify-browser": "^4.1.12",
44
+ "@nocios/crudify-browser": "^4.1.16",
45
45
  "crypto-js": "^4.2.0",
46
46
  "dompurify": "^3.2.7",
47
47
  "uuid": "^13.0.0"