@nocios/crudify-ui 4.4.18 → 4.4.20
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.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -11,8 +11,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
11
11
|
import { ThemeOptions } from '@mui/material';
|
|
12
12
|
export { A as AutoGenerateConfig, G as GlobalNotificationProvider, a as GlobalNotificationProviderProps, N as Notification, b as NotificationSeverity, d as UseAutoGenerateOptions, U as UseAutoGenerateReturn, c as useAutoGenerate, u as useGlobalNotification } from './GlobalNotificationProvider-Zq18OkpI.mjs';
|
|
13
13
|
export { E as ERROR_CODES, j as ERROR_SEVERITY_MAP, n as ErrorCode, o as ErrorSeverity, q as ErrorTranslationConfig, P as ParsedError, m as createErrorTranslator, d as decodeJwtSafely, a as getCookie, g as getCurrentUserEmail, f as getErrorMessage, h as handleCrudifyError, i as isTokenExpired, p as parseApiError, e as parseJavaScriptError, c as parseTransactionError, b as secureLocalStorage, s as secureSessionStorage, l as translateError, t as translateErrorCode, k as translateErrorCodes } from './errorTranslation-DEn4aqs6.mjs';
|
|
14
|
-
import { ApiResponse, IModule, ModuleCreateInput, ModuleEditInput, ActionListFilters, IAction, ActionCreateInput, ActionEditInput } from '@nocios/crudify-admin';
|
|
15
|
-
export { ActionCreateInput, ActionEditInput, ActionListFilters, ApiResponse, IAction, IModule, ModuleCreateInput, ModuleEditInput } from '@nocios/crudify-admin';
|
|
14
|
+
import { ApiResponse, IModule, ModuleCreateInput, ModuleEditInput, ActionListFilters, IAction, ActionCreateInput, ActionEditInput, UpdateActionsProfilesInput, UpdateActionsProfilesResponse } from '@nocios/crudify-admin';
|
|
15
|
+
export { ActionCreateInput, ActionEditInput, ActionListFilters, ApiResponse, IAction, IModule, ModuleCreateInput, ModuleEditInput, UpdateActionsProfilesInput, UpdateActionsProfilesResponse } from '@nocios/crudify-admin';
|
|
16
16
|
|
|
17
17
|
interface CrudifyContextValue {
|
|
18
18
|
crudify: typeof crudify__default | null;
|
|
@@ -941,6 +941,8 @@ declare const crudifyAdmin: {
|
|
|
941
941
|
activateAction: (actionKey: string) => Promise<ApiResponse<IAction>>;
|
|
942
942
|
deactivateAction: (actionKey: string) => Promise<ApiResponse<IAction>>;
|
|
943
943
|
getActionVersions: (actionKey: string) => Promise<ApiResponse<any[]>>;
|
|
944
|
+
getActionsByProfile: (profileId: string) => Promise<ApiResponse<IAction[]>>;
|
|
945
|
+
updateActionsProfiles: (data: UpdateActionsProfilesInput) => Promise<ApiResponse<UpdateActionsProfilesResponse>>;
|
|
944
946
|
};
|
|
945
947
|
|
|
946
948
|
export { AuthRoute, type AuthRouteProps, CRITICAL_TRANSLATIONS, type CriticalTranslationKey, CrudifyInitializationManager, CrudifyInitializer, type CrudifyInitializerConfig, type CrudifyInitializerProps, CrudifyLoginConfig, CrudifyProvider, CrudifyThemeProvider, type CrudifyThemeProviderProps, type FetchTranslationsOptions, type InitializationPriority, type InitializationRequest, type InitializationStatus, LoginResult, type NotificationOptions, ProtectedRoute, type ProtectedRouteProps, SessionDebugInfo, SessionLoadingScreen, type SessionLoadingScreenProps, SessionProvider, type SessionProviderProps, type SupportedLanguage, TokenData, type TranslationResponse, TranslationService, type TranslationsContextValue, TranslationsProvider, type TranslationsProviderProps, UseSessionOptions, crudifyAdmin, crudifyInitManager, extractSafeRedirectFromUrl, getCriticalLanguages, getCriticalTranslations, translationService, useCrudify, useCrudifyInitializer, useSessionContext, useTranslations, validateInternalRedirect };
|
package/dist/index.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
11
11
|
import { ThemeOptions } from '@mui/material';
|
|
12
12
|
export { A as AutoGenerateConfig, G as GlobalNotificationProvider, a as GlobalNotificationProviderProps, N as Notification, b as NotificationSeverity, d as UseAutoGenerateOptions, U as UseAutoGenerateReturn, c as useAutoGenerate, u as useGlobalNotification } from './GlobalNotificationProvider-Zq18OkpI.js';
|
|
13
13
|
export { E as ERROR_CODES, j as ERROR_SEVERITY_MAP, n as ErrorCode, o as ErrorSeverity, q as ErrorTranslationConfig, P as ParsedError, m as createErrorTranslator, d as decodeJwtSafely, a as getCookie, g as getCurrentUserEmail, f as getErrorMessage, h as handleCrudifyError, i as isTokenExpired, p as parseApiError, e as parseJavaScriptError, c as parseTransactionError, b as secureLocalStorage, s as secureSessionStorage, l as translateError, t as translateErrorCode, k as translateErrorCodes } from './errorTranslation-DdqZg8JD.js';
|
|
14
|
-
import { ApiResponse, IModule, ModuleCreateInput, ModuleEditInput, ActionListFilters, IAction, ActionCreateInput, ActionEditInput } from '@nocios/crudify-admin';
|
|
15
|
-
export { ActionCreateInput, ActionEditInput, ActionListFilters, ApiResponse, IAction, IModule, ModuleCreateInput, ModuleEditInput } from '@nocios/crudify-admin';
|
|
14
|
+
import { ApiResponse, IModule, ModuleCreateInput, ModuleEditInput, ActionListFilters, IAction, ActionCreateInput, ActionEditInput, UpdateActionsProfilesInput, UpdateActionsProfilesResponse } from '@nocios/crudify-admin';
|
|
15
|
+
export { ActionCreateInput, ActionEditInput, ActionListFilters, ApiResponse, IAction, IModule, ModuleCreateInput, ModuleEditInput, UpdateActionsProfilesInput, UpdateActionsProfilesResponse } from '@nocios/crudify-admin';
|
|
16
16
|
|
|
17
17
|
interface CrudifyContextValue {
|
|
18
18
|
crudify: typeof crudify__default | null;
|
|
@@ -941,6 +941,8 @@ declare const crudifyAdmin: {
|
|
|
941
941
|
activateAction: (actionKey: string) => Promise<ApiResponse<IAction>>;
|
|
942
942
|
deactivateAction: (actionKey: string) => Promise<ApiResponse<IAction>>;
|
|
943
943
|
getActionVersions: (actionKey: string) => Promise<ApiResponse<any[]>>;
|
|
944
|
+
getActionsByProfile: (profileId: string) => Promise<ApiResponse<IAction[]>>;
|
|
945
|
+
updateActionsProfiles: (data: UpdateActionsProfilesInput) => Promise<ApiResponse<UpdateActionsProfilesResponse>>;
|
|
944
946
|
};
|
|
945
947
|
|
|
946
948
|
export { AuthRoute, type AuthRouteProps, CRITICAL_TRANSLATIONS, type CriticalTranslationKey, CrudifyInitializationManager, CrudifyInitializer, type CrudifyInitializerConfig, type CrudifyInitializerProps, CrudifyLoginConfig, CrudifyProvider, CrudifyThemeProvider, type CrudifyThemeProviderProps, type FetchTranslationsOptions, type InitializationPriority, type InitializationRequest, type InitializationStatus, LoginResult, type NotificationOptions, ProtectedRoute, type ProtectedRouteProps, SessionDebugInfo, SessionLoadingScreen, type SessionLoadingScreenProps, SessionProvider, type SessionProviderProps, type SupportedLanguage, TokenData, type TranslationResponse, TranslationService, type TranslationsContextValue, TranslationsProvider, type TranslationsProviderProps, UseSessionOptions, crudifyAdmin, crudifyInitManager, extractSafeRedirectFromUrl, getCriticalLanguages, getCriticalTranslations, translationService, useCrudify, useCrudifyInitializer, useSessionContext, useTranslations, validateInternalRedirect };
|
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 _chunkVK32VY3Ujs = require('./chunk-VK32VY3U.js');var _chunkYYCTXLS3js = require('./chunk-YYCTXLS3.js');var _chunk25QI2MUGjs = require('./chunk-25QI2MUG.js');var _chunkNNY4A73Vjs = require('./chunk-NNY4A73V.js');var _chunkYIIUEOXCjs = require('./chunk-YIIUEOXC.js');var _chunkQ7BXOIWSjs = require('./chunk-Q7BXOIWS.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
|
|
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 _chunkVK32VY3Ujs = require('./chunk-VK32VY3U.js');var _chunkYYCTXLS3js = require('./chunk-YYCTXLS3.js');var _chunk25QI2MUGjs = require('./chunk-25QI2MUG.js');var _chunkNNY4A73Vjs = require('./chunk-NNY4A73V.js');var _chunkYIIUEOXCjs = require('./chunk-YIIUEOXC.js');var _chunkQ7BXOIWSjs = require('./chunk-Q7BXOIWS.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 He=(e={})=>{try{let i=_chunkQ7BXOIWSjs.a.call(void 0, "theme");if(i){let t=JSON.parse(decodeURIComponent(i));return{...e,...t}}}catch(i){console.warn("Error parsing theme from cookie:",i)}return e};function De({children:e,defaultTheme:i={},disableCssBaseline:t=!1}){let r=_react.useMemo.call(void 0, ()=>{let n=He(i);return _material.createTheme.call(void 0, n)},[i]);return _jsxruntime.jsxs.call(void 0, _material.ThemeProvider,{theme:r,children:[!t&&_jsxruntime.jsx.call(void 0, _material.CssBaseline,{}),e]})}var _reactrouterdom = require('react-router-dom');var Fe={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},$e=()=>_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 v({stage:e="loading",message:i}){let r=i||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, $e,{}),_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:Fe}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:r})]})]})}var Be=/^[a-zA-Z0-9\-_./\?=&%#]+$/,Ze=[/^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,i="/")=>{if(!e||typeof e!="string")return i;let t=e.trim();if(!t)return i;if(!t.startsWith("/"))return console.warn("\u{1F6A8} Open redirect blocked (relative path):",e),i;if(!Be.test(t))return console.warn("\u{1F6A8} Open redirect blocked (invalid characters):",e),i;let r=t.toLowerCase();for(let o of Ze)if(o.test(r))return console.warn("\u{1F6A8} Open redirect blocked (dangerous pattern):",e),i;let n=t.split("?")[0].split("/").filter(Boolean);if(n.length===0)return t;for(let o of n)if(o===".."||o.includes(":")||o.length>100)return console.warn("\u{1F6A8} Open redirect blocked (suspicious path part):",o),i;return t},T= exports.extractSafeRedirectFromUrl =(e,i="/")=>{try{let r=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!r)return i;let n=decodeURIComponent(r);return P(n,i)}catch(t){return console.warn("\u{1F6A8} Error parsing redirect parameter:",t),i}};function k({children:e,loadingComponent:i,loginPath:t="/login"}){let{isAuthenticated:r,isLoading:n,isInitialized:o,tokens:s,error:c}=_chunk25QI2MUGjs.j.call(void 0, ),p=_reactrouterdom.useLocation.call(void 0, );if(!o||n)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:i||_jsxruntime.jsx.call(void 0, v,{stage:"validating-session"})});let d=r&&_optionalChain([s, 'optionalAccess', _2 => _2.accessToken])&&s.accessToken.length>0;if(c||!r||!d){s&&(!s.accessToken||s.accessToken.length===0)&&localStorage.removeItem("crudify_tokens");let m=p.pathname+p.search,I=P(m),h=encodeURIComponent(I);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${t}?redirect=${h}`,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function H({children:e,redirectTo:i="/"}){let{isAuthenticated:t}=_chunk25QI2MUGjs.j.call(void 0, ),r=_reactrouterdom.useLocation.call(void 0, );if(t){let n=new URLSearchParams(r.search),o=T(n,i);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:o,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var C=class e{constructor(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null};this.initializationPromise=null;this.highPriorityInitializerPresent=!1;this.waitingForHighPriority=new Set;this.HIGH_PRIORITY_WAIT_TIMEOUT=100}static getInstance(){return e.instance||(e.instance=new e),e.instance}registerHighPriorityInitializer(){this.highPriorityInitializerPresent=!0}isHighPriorityInitializerPresent(){return this.highPriorityInitializerPresent}getState(){return{...this.state}}async initialize(i){let{priority:t,publicApiKey:r,env:n,enableLogging:o,requestedBy:s}=i;if(this.state.status==="INITIALIZED"){this.state.publicApiKey!==r&&console.warn(`[CrudifyInitialization] ${s} attempted to initialize with different key. Already initialized with key: ${_optionalChain([this, 'access', _3 => _3.state, 'access', _4 => _4.publicApiKey, 'optionalAccess', _5 => _5.slice, 'call', _6 => _6(0,10)])}... by ${this.state.initializedBy}`);return}if(this.initializationPromise)return o&&console.log(`[CrudifyInitialization] ${s} waiting for ongoing initialization...`),this.initializationPromise;if(t==="LOW"&&this.highPriorityInitializerPresent&&this.state.status==="UNINITIALIZED"){if(o&&console.log(`[CrudifyInitialization] ${s} (LOW priority) waiting for HIGH priority initializer...`),this.waitingForHighPriority.add(s),await this.waitForHighPriorityOrTimeout(o),this.waitingForHighPriority.delete(s),this.getState().status==="INITIALIZED"){o&&console.log(`[CrudifyInitialization] ${s} found initialization completed by HIGH priority`);return}o&&console.warn(`[CrudifyInitialization] ${s} timeout waiting for HIGH priority, initializing with LOW priority`)}t==="HIGH"&&this.state.status==="INITIALIZING"&&this.state.priority==="LOW"&&(console.warn(`[CrudifyInitialization] HIGH priority request from ${s} interrupting LOW priority initialization by ${this.state.initializedBy}`),this.state.status="UNINITIALIZED",this.initializationPromise=null),o&&console.log(`[CrudifyInitialization] ${s} starting initialization (${t} priority)...`),this.state.status="INITIALIZING",this.state.priority=t,this.state.initializedBy=s,this.initializationPromise=this.performInitialization(r,n,o);try{await this.initializationPromise,this.state.status="INITIALIZED",this.state.publicApiKey=r,this.state.env=n,this.state.error=null,o&&console.log(`[CrudifyInitialization] \u2705 Successfully initialized by ${s} (${t} priority)`)}catch(c){throw this.state.status="ERROR",this.state.error=c instanceof Error?c:new Error(String(c)),this.initializationPromise=null,console.error(`[CrudifyInitialization] \u274C Initialization failed for ${s}:`,c),c}}async waitForHighPriorityOrTimeout(i){return new Promise(t=>{let n=0,o=setInterval(()=>{if(n+=10,this.state.status==="INITIALIZED"&&this.state.priority==="HIGH"){clearInterval(o),t();return}if(this.state.status==="INITIALIZING"&&this.state.priority==="HIGH"){n=0;return}n>=this.HIGH_PRIORITY_WAIT_TIMEOUT&&(clearInterval(o),i&&console.log(`[CrudifyInitialization] Timeout waiting for HIGH priority (${this.HIGH_PRIORITY_WAIT_TIMEOUT}ms)`),t())},10)})}async performInitialization(i,t,r){let n=_crudifybrowser2.default.getTokenData();if(n&&n.endpoint){r&&console.log("[CrudifyInitialization] SDK already initialized externally");return}_crudifybrowser2.default.config(t);let o=r?"debug":"none",s=await _crudifybrowser2.default.init(i,o);if(s.success===!1)throw new Error(`Crudify initialization failed: ${JSON.stringify(s.errors||"Unknown error")}`)}reset(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null},this.initializationPromise=null,this.highPriorityInitializerPresent=!1,this.waitingForHighPriority.clear()}isInitialized(){return this.state.status==="INITIALIZED"}getDiagnostics(){return{...this.state,waitingCount:this.waitingForHighPriority.size,waitingComponents:Array.from(this.waitingForHighPriority),hasActivePromise:this.initializationPromise!==null}}},x= exports.crudifyInitManager =C.getInstance();var G=_react.createContext.call(void 0, void 0),ei= exports.CrudifyInitializer =({config:e,children:i,fallback:t=null,onInitialized:r,onError:n})=>{let[o,s]=_react.useState.call(void 0, !1),[c,p]=_react.useState.call(void 0, !1),[d,m]=_react.useState.call(void 0, null),I=_react.useRef.call(void 0, !1),h=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{I.current||(x.registerHighPriorityInitializer(),I.current=!0),h.current||(h.current=!0,(async()=>{p(!0),m(null);try{let u=_chunkQ7BXOIWSjs.b.call(void 0, {publicApiKey:_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),env:_optionalChain([e, 'optionalAccess', _8 => _8.env]),enableDebug:_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging])});if(!u.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");await x.initialize({priority:"HIGH",publicApiKey:u.publicApiKey,env:u.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _10 => _10.enableLogging]),requestedBy:"CrudifyInitializer"}),s(!0),p(!1),r&&r()}catch(u){let E=u instanceof Error?u:new Error(String(u));m(E),p(!1),n&&n(E)}})())},[_optionalChain([e, 'optionalAccess', _11 => _11.publicApiKey]),_optionalChain([e, 'optionalAccess', _12 => _12.env]),_optionalChain([e, 'optionalAccess', _13 => _13.enableLogging]),r,n]);let F={isInitialized:o,isInitializing:c,error:d};return c&&t?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:t}):(d&&console.error("[CrudifyInitializer] Initialization failed:",d),_jsxruntime.jsx.call(void 0, G.Provider,{value:F,children:i}))},ii= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, G);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadmin = require('@nocios/crudify-admin'); var _crudifyadmin2 = _interopRequireDefault(_crudifyadmin);var K=!1,g=null;async function ri(){let i=_chunk25QI2MUGjs.e.getInstance().getTokenInfo(),t=_optionalChain([i, 'optionalAccess', _14 => _14.apiEndpointAdmin]),r=_optionalChain([i, 'optionalAccess', _15 => _15.apiKeyEndpointAdmin]);return t&&r?{apiUrl:t,apiKey:r}:_chunk25QI2MUGjs.a.waitForCredentials()}async function oi(){if(!K)return g||(g=(async()=>{try{let e=_chunk25QI2MUGjs.e.getInstance(),{apiUrl:i,apiKey:t}=await ri();_crudifyadmin2.default.init({url:i,apiKey:t,getAdditionalHeaders:()=>{let r=e.getTokenInfo();return _optionalChain([r, 'optionalAccess', _16 => _16.crudifyTokens, 'optionalAccess', _17 => _17.accessToken])?{Authorization:`Bearer ${r.crudifyTokens.accessToken}`}:{}}}),K=!0}catch(e){throw g=null,console.error("[crudifyAdminWrapper] Initialization failed:",e),e}})(),g)}async function l(e){try{await oi();let i=await e();return!i.success&&_optionalChain([i, 'access', _18 => _18.errors, 'optionalAccess', _19 => _19.includes, 'call', _20 => _20("401")])?await _chunk25QI2MUGjs.e.getInstance().refreshTokens()?await e():(console.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),i):i}catch(i){return console.error("[crudifyAdmin] Operation error:",i),{success:!1,errors:i instanceof Error?i.message:"Unknown error"}}}var ni={listModules:()=>l(()=>_crudifyadmin2.default.listModules()),getModule:e=>l(()=>_crudifyadmin2.default.getModule(e)),createModule:e=>l(()=>_crudifyadmin2.default.createModule(e)),editModule:(e,i)=>l(()=>_crudifyadmin2.default.editModule(e,i)),deleteModule:e=>l(()=>_crudifyadmin2.default.deleteModule(e)),activateModule:e=>l(()=>_crudifyadmin2.default.activateModule(e)),deactivateModule:e=>l(()=>_crudifyadmin2.default.deactivateModule(e)),getModuleVersions:e=>l(()=>_crudifyadmin2.default.getModuleVersions(e)),listActions:e=>l(()=>_crudifyadmin2.default.listActions(e)),getAction:e=>l(()=>_crudifyadmin2.default.getAction(e)),createAction:e=>l(()=>_crudifyadmin2.default.createAction(e)),editAction:(e,i)=>l(()=>_crudifyadmin2.default.editAction(e,i)),deleteAction:e=>l(()=>_crudifyadmin2.default.deleteAction(e)),activateAction:e=>l(()=>_crudifyadmin2.default.activateAction(e)),deactivateAction:e=>l(()=>_crudifyadmin2.default.deactivateAction(e)),getActionVersions:e=>l(()=>_crudifyadmin2.default.getActionVersions(e))};exports.AuthRoute = H; exports.CRITICAL_TRANSLATIONS = _chunkVK32VY3Ujs.a; exports.CrudiaAutoGenerate = _chunkVK32VY3Ujs.o; exports.CrudifyInitializationManager = C; exports.CrudifyInitializer = ei; exports.CrudifyLogin = _chunkVK32VY3Ujs.h; exports.CrudifyProvider = _chunk25QI2MUGjs.b; exports.CrudifyThemeProvider = De; exports.ERROR_CODES = _chunkYIIUEOXCjs.a; exports.ERROR_SEVERITY_MAP = _chunkYIIUEOXCjs.b; exports.GlobalNotificationProvider = _chunk25QI2MUGjs.g; exports.LoginComponent = _chunkVK32VY3Ujs.m; exports.POLICY_ACTIONS = _chunkVK32VY3Ujs.j; exports.PREFERRED_POLICY_ORDER = _chunkVK32VY3Ujs.k; exports.Policies = _chunkVK32VY3Ujs.l; exports.ProtectedRoute = k; exports.SessionDebugInfo = _chunk25QI2MUGjs.k; exports.SessionLoadingScreen = v; exports.SessionManager = _chunk25QI2MUGjs.e; exports.SessionProvider = _chunk25QI2MUGjs.i; exports.SessionStatus = _chunkVK32VY3Ujs.n; exports.TokenStorage = _chunk25QI2MUGjs.d; exports.TranslationService = _chunkVK32VY3Ujs.d; exports.TranslationsProvider = _chunkVK32VY3Ujs.f; exports.UserProfileDisplay = _chunkVK32VY3Ujs.i; exports.createErrorTranslator = _chunkQ7BXOIWSjs.g; exports.crudify = _crudifybrowser2.default; exports.crudifyAdmin = ni; exports.crudifyInitManager = x; exports.decodeJwtSafely = _chunkQ7BXOIWSjs.j; exports.extractSafeRedirectFromUrl = T; exports.getCookie = _chunkQ7BXOIWSjs.a; exports.getCriticalLanguages = _chunkVK32VY3Ujs.b; exports.getCriticalTranslations = _chunkVK32VY3Ujs.c; exports.getCurrentUserEmail = _chunkQ7BXOIWSjs.k; exports.getErrorMessage = _chunkYIIUEOXCjs.e; exports.handleCrudifyError = _chunkYIIUEOXCjs.g; exports.isTokenExpired = _chunkQ7BXOIWSjs.l; exports.parseApiError = _chunkYIIUEOXCjs.c; exports.parseJavaScriptError = _chunkYIIUEOXCjs.f; exports.parseTransactionError = _chunkYIIUEOXCjs.d; exports.secureLocalStorage = _chunkNNY4A73Vjs.b; exports.secureSessionStorage = _chunkNNY4A73Vjs.a; exports.translateError = _chunkQ7BXOIWSjs.f; exports.translateErrorCode = _chunkQ7BXOIWSjs.d; exports.translateErrorCodes = _chunkQ7BXOIWSjs.e; exports.translationService = _chunkVK32VY3Ujs.e; exports.useAuth = _chunkYYCTXLS3js.b; exports.useAutoGenerate = _chunk25QI2MUGjs.m; exports.useCrudify = _chunk25QI2MUGjs.c; exports.useCrudifyInitializer = ii; exports.useCrudifyWithNotifications = _chunkYYCTXLS3js.d; exports.useData = _chunkYYCTXLS3js.c; exports.useGlobalNotification = _chunk25QI2MUGjs.h; exports.useSession = _chunk25QI2MUGjs.f; exports.useSessionContext = _chunk25QI2MUGjs.j; exports.useTranslations = _chunkVK32VY3Ujs.g; exports.useUserData = _chunkYYCTXLS3js.a; exports.useUserProfile = _chunk25QI2MUGjs.l; exports.validateInternalRedirect = P;
|
|
6
|
+
`});function v({stage:e="loading",message:i}){let r=i||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, $e,{}),_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:Fe}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:r})]})]})}var _e=/^[a-zA-Z0-9\-_./\?=&%#]+$/,Ze=[/^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,i="/")=>{if(!e||typeof e!="string")return i;let t=e.trim();if(!t)return i;if(!t.startsWith("/"))return console.warn("\u{1F6A8} Open redirect blocked (relative path):",e),i;if(!_e.test(t))return console.warn("\u{1F6A8} Open redirect blocked (invalid characters):",e),i;let r=t.toLowerCase();for(let o of Ze)if(o.test(r))return console.warn("\u{1F6A8} Open redirect blocked (dangerous pattern):",e),i;let n=t.split("?")[0].split("/").filter(Boolean);if(n.length===0)return t;for(let o of n)if(o===".."||o.includes(":")||o.length>100)return console.warn("\u{1F6A8} Open redirect blocked (suspicious path part):",o),i;return t},T= exports.extractSafeRedirectFromUrl =(e,i="/")=>{try{let r=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!r)return i;let n=decodeURIComponent(r);return P(n,i)}catch(t){return console.warn("\u{1F6A8} Error parsing redirect parameter:",t),i}};function k({children:e,loadingComponent:i,loginPath:t="/login"}){let{isAuthenticated:r,isLoading:n,isInitialized:o,tokens:s,error:c}=_chunk25QI2MUGjs.j.call(void 0, ),u=_reactrouterdom.useLocation.call(void 0, );if(!o||n)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:i||_jsxruntime.jsx.call(void 0, v,{stage:"validating-session"})});let d=r&&_optionalChain([s, 'optionalAccess', _2 => _2.accessToken])&&s.accessToken.length>0;if(c||!r||!d){s&&(!s.accessToken||s.accessToken.length===0)&&localStorage.removeItem("crudify_tokens");let m=u.pathname+u.search,I=P(m),h=encodeURIComponent(I);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${t}?redirect=${h}`,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function O({children:e,redirectTo:i="/"}){let{isAuthenticated:t}=_chunk25QI2MUGjs.j.call(void 0, ),r=_reactrouterdom.useLocation.call(void 0, );if(t){let n=new URLSearchParams(r.search),o=T(n,i);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:o,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var C=class e{constructor(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null};this.initializationPromise=null;this.highPriorityInitializerPresent=!1;this.waitingForHighPriority=new Set;this.HIGH_PRIORITY_WAIT_TIMEOUT=100}static getInstance(){return e.instance||(e.instance=new e),e.instance}registerHighPriorityInitializer(){this.highPriorityInitializerPresent=!0}isHighPriorityInitializerPresent(){return this.highPriorityInitializerPresent}getState(){return{...this.state}}async initialize(i){let{priority:t,publicApiKey:r,env:n,enableLogging:o,requestedBy:s}=i;if(this.state.status==="INITIALIZED"){this.state.publicApiKey!==r&&console.warn(`[CrudifyInitialization] ${s} attempted to initialize with different key. Already initialized with key: ${_optionalChain([this, 'access', _3 => _3.state, 'access', _4 => _4.publicApiKey, 'optionalAccess', _5 => _5.slice, 'call', _6 => _6(0,10)])}... by ${this.state.initializedBy}`);return}if(this.initializationPromise)return o&&console.log(`[CrudifyInitialization] ${s} waiting for ongoing initialization...`),this.initializationPromise;if(t==="LOW"&&this.highPriorityInitializerPresent&&this.state.status==="UNINITIALIZED"){if(o&&console.log(`[CrudifyInitialization] ${s} (LOW priority) waiting for HIGH priority initializer...`),this.waitingForHighPriority.add(s),await this.waitForHighPriorityOrTimeout(o),this.waitingForHighPriority.delete(s),this.getState().status==="INITIALIZED"){o&&console.log(`[CrudifyInitialization] ${s} found initialization completed by HIGH priority`);return}o&&console.warn(`[CrudifyInitialization] ${s} timeout waiting for HIGH priority, initializing with LOW priority`)}t==="HIGH"&&this.state.status==="INITIALIZING"&&this.state.priority==="LOW"&&(console.warn(`[CrudifyInitialization] HIGH priority request from ${s} interrupting LOW priority initialization by ${this.state.initializedBy}`),this.state.status="UNINITIALIZED",this.initializationPromise=null),o&&console.log(`[CrudifyInitialization] ${s} starting initialization (${t} priority)...`),this.state.status="INITIALIZING",this.state.priority=t,this.state.initializedBy=s,this.initializationPromise=this.performInitialization(r,n,o);try{await this.initializationPromise,this.state.status="INITIALIZED",this.state.publicApiKey=r,this.state.env=n,this.state.error=null,o&&console.log(`[CrudifyInitialization] \u2705 Successfully initialized by ${s} (${t} priority)`)}catch(c){throw this.state.status="ERROR",this.state.error=c instanceof Error?c:new Error(String(c)),this.initializationPromise=null,console.error(`[CrudifyInitialization] \u274C Initialization failed for ${s}:`,c),c}}async waitForHighPriorityOrTimeout(i){return new Promise(t=>{let n=0,o=setInterval(()=>{if(n+=10,this.state.status==="INITIALIZED"&&this.state.priority==="HIGH"){clearInterval(o),t();return}if(this.state.status==="INITIALIZING"&&this.state.priority==="HIGH"){n=0;return}n>=this.HIGH_PRIORITY_WAIT_TIMEOUT&&(clearInterval(o),i&&console.log(`[CrudifyInitialization] Timeout waiting for HIGH priority (${this.HIGH_PRIORITY_WAIT_TIMEOUT}ms)`),t())},10)})}async performInitialization(i,t,r){let n=_crudifybrowser2.default.getTokenData();if(n&&n.endpoint){r&&console.log("[CrudifyInitialization] SDK already initialized externally");return}_crudifybrowser2.default.config(t);let o=r?"debug":"none",s=await _crudifybrowser2.default.init(i,o);if(s.success===!1)throw new Error(`Crudify initialization failed: ${JSON.stringify(s.errors||"Unknown error")}`)}reset(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null},this.initializationPromise=null,this.highPriorityInitializerPresent=!1,this.waitingForHighPriority.clear()}isInitialized(){return this.state.status==="INITIALIZED"}getDiagnostics(){return{...this.state,waitingCount:this.waitingForHighPriority.size,waitingComponents:Array.from(this.waitingForHighPriority),hasActivePromise:this.initializationPromise!==null}}},x= exports.crudifyInitManager =C.getInstance();var G=_react.createContext.call(void 0, void 0),ei= exports.CrudifyInitializer =({config:e,children:i,fallback:t=null,onInitialized:r,onError:n})=>{let[o,s]=_react.useState.call(void 0, !1),[c,u]=_react.useState.call(void 0, !1),[d,m]=_react.useState.call(void 0, null),I=_react.useRef.call(void 0, !1),h=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{I.current||(x.registerHighPriorityInitializer(),I.current=!0),h.current||(h.current=!0,(async()=>{u(!0),m(null);try{let p=_chunkQ7BXOIWSjs.b.call(void 0, {publicApiKey:_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),env:_optionalChain([e, 'optionalAccess', _8 => _8.env]),enableDebug:_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging])});if(!p.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");await x.initialize({priority:"HIGH",publicApiKey:p.publicApiKey,env:p.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _10 => _10.enableLogging]),requestedBy:"CrudifyInitializer"}),s(!0),u(!1),r&&r()}catch(p){let E=p instanceof Error?p:new Error(String(p));m(E),u(!1),n&&n(E)}})())},[_optionalChain([e, 'optionalAccess', _11 => _11.publicApiKey]),_optionalChain([e, 'optionalAccess', _12 => _12.env]),_optionalChain([e, 'optionalAccess', _13 => _13.enableLogging]),r,n]);let F={isInitialized:o,isInitializing:c,error:d};return c&&t?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:t}):(d&&console.error("[CrudifyInitializer] Initialization failed:",d),_jsxruntime.jsx.call(void 0, G.Provider,{value:F,children:i}))},ii= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, G);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadmin = require('@nocios/crudify-admin'); var _crudifyadmin2 = _interopRequireDefault(_crudifyadmin);var K=!1,g=null;async function ri(){let i=_chunk25QI2MUGjs.e.getInstance().getTokenInfo(),t=_optionalChain([i, 'optionalAccess', _14 => _14.apiEndpointAdmin]),r=_optionalChain([i, 'optionalAccess', _15 => _15.apiKeyEndpointAdmin]);return t&&r?{apiUrl:t,apiKey:r}:_chunk25QI2MUGjs.a.waitForCredentials()}async function oi(){if(!K)return g||(g=(async()=>{try{let e=_chunk25QI2MUGjs.e.getInstance(),{apiUrl:i,apiKey:t}=await ri();_crudifyadmin2.default.init({url:i,apiKey:t,getAdditionalHeaders:()=>{let r=e.getTokenInfo();return _optionalChain([r, 'optionalAccess', _16 => _16.crudifyTokens, 'optionalAccess', _17 => _17.accessToken])?{Authorization:`Bearer ${r.crudifyTokens.accessToken}`}:{}}}),K=!0}catch(e){throw g=null,console.error("[crudifyAdminWrapper] Initialization failed:",e),e}})(),g)}async function l(e){try{await oi();let i=await e();return!i.success&&_optionalChain([i, 'access', _18 => _18.errors, 'optionalAccess', _19 => _19.includes, 'call', _20 => _20("401")])?await _chunk25QI2MUGjs.e.getInstance().refreshTokens()?await e():(console.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),i):i}catch(i){return console.error("[crudifyAdmin] Operation error:",i),{success:!1,errors:i instanceof Error?i.message:"Unknown error"}}}var ni={listModules:()=>l(()=>_crudifyadmin2.default.listModules()),getModule:e=>l(()=>_crudifyadmin2.default.getModule(e)),createModule:e=>l(()=>_crudifyadmin2.default.createModule(e)),editModule:(e,i)=>l(()=>_crudifyadmin2.default.editModule(e,i)),deleteModule:e=>l(()=>_crudifyadmin2.default.deleteModule(e)),activateModule:e=>l(()=>_crudifyadmin2.default.activateModule(e)),deactivateModule:e=>l(()=>_crudifyadmin2.default.deactivateModule(e)),getModuleVersions:e=>l(()=>_crudifyadmin2.default.getModuleVersions(e)),listActions:e=>l(()=>_crudifyadmin2.default.listActions(e)),getAction:e=>l(()=>_crudifyadmin2.default.getAction(e)),createAction:e=>l(()=>_crudifyadmin2.default.createAction(e)),editAction:(e,i)=>l(()=>_crudifyadmin2.default.editAction(e,i)),deleteAction:e=>l(()=>_crudifyadmin2.default.deleteAction(e)),activateAction:e=>l(()=>_crudifyadmin2.default.activateAction(e)),deactivateAction:e=>l(()=>_crudifyadmin2.default.deactivateAction(e)),getActionVersions:e=>l(()=>_crudifyadmin2.default.getActionVersions(e)),getActionsByProfile:e=>l(()=>_crudifyadmin2.default.getActionsByProfile(e)),updateActionsProfiles:e=>l(()=>_crudifyadmin2.default.updateActionsProfiles(e))};exports.AuthRoute = O; exports.CRITICAL_TRANSLATIONS = _chunkVK32VY3Ujs.a; exports.CrudiaAutoGenerate = _chunkVK32VY3Ujs.o; exports.CrudifyInitializationManager = C; exports.CrudifyInitializer = ei; exports.CrudifyLogin = _chunkVK32VY3Ujs.h; exports.CrudifyProvider = _chunk25QI2MUGjs.b; exports.CrudifyThemeProvider = De; exports.ERROR_CODES = _chunkYIIUEOXCjs.a; exports.ERROR_SEVERITY_MAP = _chunkYIIUEOXCjs.b; exports.GlobalNotificationProvider = _chunk25QI2MUGjs.g; exports.LoginComponent = _chunkVK32VY3Ujs.m; exports.POLICY_ACTIONS = _chunkVK32VY3Ujs.j; exports.PREFERRED_POLICY_ORDER = _chunkVK32VY3Ujs.k; exports.Policies = _chunkVK32VY3Ujs.l; exports.ProtectedRoute = k; exports.SessionDebugInfo = _chunk25QI2MUGjs.k; exports.SessionLoadingScreen = v; exports.SessionManager = _chunk25QI2MUGjs.e; exports.SessionProvider = _chunk25QI2MUGjs.i; exports.SessionStatus = _chunkVK32VY3Ujs.n; exports.TokenStorage = _chunk25QI2MUGjs.d; exports.TranslationService = _chunkVK32VY3Ujs.d; exports.TranslationsProvider = _chunkVK32VY3Ujs.f; exports.UserProfileDisplay = _chunkVK32VY3Ujs.i; exports.createErrorTranslator = _chunkQ7BXOIWSjs.g; exports.crudify = _crudifybrowser2.default; exports.crudifyAdmin = ni; exports.crudifyInitManager = x; exports.decodeJwtSafely = _chunkQ7BXOIWSjs.j; exports.extractSafeRedirectFromUrl = T; exports.getCookie = _chunkQ7BXOIWSjs.a; exports.getCriticalLanguages = _chunkVK32VY3Ujs.b; exports.getCriticalTranslations = _chunkVK32VY3Ujs.c; exports.getCurrentUserEmail = _chunkQ7BXOIWSjs.k; exports.getErrorMessage = _chunkYIIUEOXCjs.e; exports.handleCrudifyError = _chunkYIIUEOXCjs.g; exports.isTokenExpired = _chunkQ7BXOIWSjs.l; exports.parseApiError = _chunkYIIUEOXCjs.c; exports.parseJavaScriptError = _chunkYIIUEOXCjs.f; exports.parseTransactionError = _chunkYIIUEOXCjs.d; exports.secureLocalStorage = _chunkNNY4A73Vjs.b; exports.secureSessionStorage = _chunkNNY4A73Vjs.a; exports.translateError = _chunkQ7BXOIWSjs.f; exports.translateErrorCode = _chunkQ7BXOIWSjs.d; exports.translateErrorCodes = _chunkQ7BXOIWSjs.e; exports.translationService = _chunkVK32VY3Ujs.e; exports.useAuth = _chunkYYCTXLS3js.b; exports.useAutoGenerate = _chunk25QI2MUGjs.m; exports.useCrudify = _chunk25QI2MUGjs.c; exports.useCrudifyInitializer = ii; exports.useCrudifyWithNotifications = _chunkYYCTXLS3js.d; exports.useData = _chunkYYCTXLS3js.c; exports.useGlobalNotification = _chunk25QI2MUGjs.h; exports.useSession = _chunk25QI2MUGjs.f; exports.useSessionContext = _chunk25QI2MUGjs.j; exports.useTranslations = _chunkVK32VY3Ujs.g; exports.useUserData = _chunkYYCTXLS3js.a; exports.useUserProfile = _chunk25QI2MUGjs.l; exports.validateInternalRedirect = P;
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{a as $,b as
|
|
1
|
+
import{a as $,b as B,c as _,d as Z,e as V,f as W,g as q,h as Ie,i as Ae,j as Pe,k as Re,l as Ce,m as xe,n as ze,o as Te}from"./chunk-XXCO2YAN.mjs";import{a as Se,b as be,c as Ee,d as Me}from"./chunk-2KPSSYTP.mjs";import{a as L,b as Y,c as J,d as Q,e as f,f as te,g as se,h as ae,i as le,j as y,k as ce,l as he,m as ve}from"./chunk-6MBALWSY.mjs";import{a as we,b as Le}from"./chunk-T2CPA46I.mjs";import{a as pe,b as ue,c as de,d as fe,e as ye,f as ge,g as me}from"./chunk-BJ6PIVZR.mjs";import{a as z,b as w,d as X,e as j,f as ee,g as ie,j as re,k as oe,l as ne}from"./chunk-O2G2ZS3U.mjs";import{default as Vi}from"@nocios/crudify-browser";export*from"@nocios/crudify-browser";import{useMemo as Ne}from"react";import{ThemeProvider as ke,createTheme as Ue,CssBaseline as Oe}from"@mui/material";import{jsx as Ge,jsxs as Ke}from"react/jsx-runtime";var He=(e={})=>{try{let i=z("theme");if(i){let t=JSON.parse(decodeURIComponent(i));return{...e,...t}}}catch(i){console.warn("Error parsing theme from cookie:",i)}return e};function De({children:e,defaultTheme:i={},disableCssBaseline:t=!1}){let r=Ne(()=>{let n=He(i);return Ue(n)},[i]);return Ke(ke,{theme:r,children:[!t&&Ge(Oe,{}),e]})}import{Navigate as Ve,useLocation as We}from"react-router-dom";import{Fragment as Be,jsx as A,jsxs as M}from"react/jsx-runtime";var Fe={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},$e=()=>A("style",{children:`
|
|
2
2
|
@keyframes spin {
|
|
3
3
|
0% { transform: rotate(0deg); }
|
|
4
4
|
100% { transform: rotate(360deg); }
|
|
5
5
|
}
|
|
6
|
-
`});function v({stage:e="loading",message:i}){let r=i||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return M(_e,{children:[A($e,{}),M("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:[A("div",{style:Fe}),A("p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:r})]})]})}var Be=/^[a-zA-Z0-9\-_./\?=&%#]+$/,Ze=[/^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=(e,i="/")=>{if(!e||typeof e!="string")return i;let t=e.trim();if(!t)return i;if(!t.startsWith("/"))return console.warn("\u{1F6A8} Open redirect blocked (relative path):",e),i;if(!Be.test(t))return console.warn("\u{1F6A8} Open redirect blocked (invalid characters):",e),i;let r=t.toLowerCase();for(let o of Ze)if(o.test(r))return console.warn("\u{1F6A8} Open redirect blocked (dangerous pattern):",e),i;let n=t.split("?")[0].split("/").filter(Boolean);if(n.length===0)return t;for(let o of n)if(o===".."||o.includes(":")||o.length>100)return console.warn("\u{1F6A8} Open redirect blocked (suspicious path part):",o),i;return t},T=(e,i="/")=>{try{let r=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!r)return i;let n=decodeURIComponent(r);return P(n,i)}catch(t){return console.warn("\u{1F6A8} Error parsing redirect parameter:",t),i}};import{Fragment as N,jsx as R}from"react/jsx-runtime";function k({children:e,loadingComponent:i,loginPath:t="/login"}){let{isAuthenticated:r,isLoading:n,isInitialized:o,tokens:s,error:c}=y(),p=We();if(!o||n)return R(N,{children:i||R(v,{stage:"validating-session"})});let d=r&&s?.accessToken&&s.accessToken.length>0;if(c||!r||!d){s&&(!s.accessToken||s.accessToken.length===0)&&localStorage.removeItem("crudify_tokens");let m=p.pathname+p.search,I=P(m),h=encodeURIComponent(I);return R(Ve,{to:`${t}?redirect=${h}`,replace:!0})}return R(N,{children:e})}import{Navigate as qe,useLocation as Ye}from"react-router-dom";import{Fragment as Je,jsx as O}from"react/jsx-runtime";function H({children:e,redirectTo:i="/"}){let{isAuthenticated:t}=y(),r=Ye();if(t){let n=new URLSearchParams(r.search),o=T(n,i);return O(qe,{to:o,replace:!0})}return O(Je,{children:e})}import S from"@nocios/crudify-browser";var C=class e{constructor(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null};this.initializationPromise=null;this.highPriorityInitializerPresent=!1;this.waitingForHighPriority=new Set;this.HIGH_PRIORITY_WAIT_TIMEOUT=100}static getInstance(){return e.instance||(e.instance=new e),e.instance}registerHighPriorityInitializer(){this.highPriorityInitializerPresent=!0}isHighPriorityInitializerPresent(){return this.highPriorityInitializerPresent}getState(){return{...this.state}}async initialize(i){let{priority:t,publicApiKey:r,env:n,enableLogging:o,requestedBy:s}=i;if(this.state.status==="INITIALIZED"){this.state.publicApiKey!==r&&console.warn(`[CrudifyInitialization] ${s} attempted to initialize with different key. Already initialized with key: ${this.state.publicApiKey?.slice(0,10)}... by ${this.state.initializedBy}`);return}if(this.initializationPromise)return o&&console.log(`[CrudifyInitialization] ${s} waiting for ongoing initialization...`),this.initializationPromise;if(t==="LOW"&&this.highPriorityInitializerPresent&&this.state.status==="UNINITIALIZED"){if(o&&console.log(`[CrudifyInitialization] ${s} (LOW priority) waiting for HIGH priority initializer...`),this.waitingForHighPriority.add(s),await this.waitForHighPriorityOrTimeout(o),this.waitingForHighPriority.delete(s),this.getState().status==="INITIALIZED"){o&&console.log(`[CrudifyInitialization] ${s} found initialization completed by HIGH priority`);return}o&&console.warn(`[CrudifyInitialization] ${s} timeout waiting for HIGH priority, initializing with LOW priority`)}t==="HIGH"&&this.state.status==="INITIALIZING"&&this.state.priority==="LOW"&&(console.warn(`[CrudifyInitialization] HIGH priority request from ${s} interrupting LOW priority initialization by ${this.state.initializedBy}`),this.state.status="UNINITIALIZED",this.initializationPromise=null),o&&console.log(`[CrudifyInitialization] ${s} starting initialization (${t} priority)...`),this.state.status="INITIALIZING",this.state.priority=t,this.state.initializedBy=s,this.initializationPromise=this.performInitialization(r,n,o);try{await this.initializationPromise,this.state.status="INITIALIZED",this.state.publicApiKey=r,this.state.env=n,this.state.error=null,o&&console.log(`[CrudifyInitialization] \u2705 Successfully initialized by ${s} (${t} priority)`)}catch(c){throw this.state.status="ERROR",this.state.error=c instanceof Error?c:new Error(String(c)),this.initializationPromise=null,console.error(`[CrudifyInitialization] \u274C Initialization failed for ${s}:`,c),c}}async waitForHighPriorityOrTimeout(i){return new Promise(t=>{let n=0,o=setInterval(()=>{if(n+=10,this.state.status==="INITIALIZED"&&this.state.priority==="HIGH"){clearInterval(o),t();return}if(this.state.status==="INITIALIZING"&&this.state.priority==="HIGH"){n=0;return}n>=this.HIGH_PRIORITY_WAIT_TIMEOUT&&(clearInterval(o),i&&console.log(`[CrudifyInitialization] Timeout waiting for HIGH priority (${this.HIGH_PRIORITY_WAIT_TIMEOUT}ms)`),t())},10)})}async performInitialization(i,t,r){let n=S.getTokenData();if(n&&n.endpoint){r&&console.log("[CrudifyInitialization] SDK already initialized externally");return}S.config(t);let o=r?"debug":"none",s=await S.init(i,o);if(s.success===!1)throw new Error(`Crudify initialization failed: ${JSON.stringify(s.errors||"Unknown error")}`)}reset(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null},this.initializationPromise=null,this.highPriorityInitializerPresent=!1,this.waitingForHighPriority.clear()}isInitialized(){return this.state.status==="INITIALIZED"}getDiagnostics(){return{...this.state,waitingCount:this.waitingForHighPriority.size,waitingComponents:Array.from(this.waitingForHighPriority),hasActivePromise:this.initializationPromise!==null}}},x=C.getInstance();import{createContext as Qe,useContext as Xe,useEffect as je,useRef as U,useState as b}from"react";import{Fragment as ti,jsx as D}from"react/jsx-runtime";var G=Qe(void 0),ei=({config:e,children:i,fallback:t=null,onInitialized:r,onError:n})=>{let[o,s]=b(!1),[c,p]=b(!1),[d,m]=b(null),I=U(!1),h=U(!1);je(()=>{I.current||(x.registerHighPriorityInitializer(),I.current=!0),h.current||(h.current=!0,(async()=>{p(!0),m(null);try{let u=w({publicApiKey:e?.publicApiKey,env:e?.env,enableDebug:e?.enableLogging});if(!u.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");await x.initialize({priority:"HIGH",publicApiKey:u.publicApiKey,env:u.env||"prod",enableLogging:e?.enableLogging,requestedBy:"CrudifyInitializer"}),s(!0),p(!1),r&&r()}catch(u){let E=u instanceof Error?u:new Error(String(u));m(E),p(!1),n&&n(E)}})())},[e?.publicApiKey,e?.env,e?.enableLogging,r,n]);let F={isInitialized:o,isInitializing:c,error:d};return c&&t?D(ti,{children:t}):(d&&console.error("[CrudifyInitializer] Initialization failed:",d),D(G.Provider,{value:F,children:i}))},ii=()=>{let e=Xe(G);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};import a from"@nocios/crudify-admin";var K=!1,g=null;async function ri(){let i=f.getInstance().getTokenInfo(),t=i?.apiEndpointAdmin,r=i?.apiKeyEndpointAdmin;return t&&r?{apiUrl:t,apiKey:r}:L.waitForCredentials()}async function oi(){if(!K)return g||(g=(async()=>{try{let e=f.getInstance(),{apiUrl:i,apiKey:t}=await ri();a.init({url:i,apiKey:t,getAdditionalHeaders:()=>{let r=e.getTokenInfo();return r?.crudifyTokens?.accessToken?{Authorization:`Bearer ${r.crudifyTokens.accessToken}`}:{}}}),K=!0}catch(e){throw g=null,console.error("[crudifyAdminWrapper] Initialization failed:",e),e}})(),g)}async function l(e){try{await oi();let i=await e();return!i.success&&i.errors?.includes("401")?await f.getInstance().refreshTokens()?await e():(console.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),i):i}catch(i){return console.error("[crudifyAdmin] Operation error:",i),{success:!1,errors:i instanceof Error?i.message:"Unknown error"}}}var ni={listModules:()=>l(()=>a.listModules()),getModule:e=>l(()=>a.getModule(e)),createModule:e=>l(()=>a.createModule(e)),editModule:(e,i)=>l(()=>a.editModule(e,i)),deleteModule:e=>l(()=>a.deleteModule(e)),activateModule:e=>l(()=>a.activateModule(e)),deactivateModule:e=>l(()=>a.deactivateModule(e)),getModuleVersions:e=>l(()=>a.getModuleVersions(e)),listActions:e=>l(()=>a.listActions(e)),getAction:e=>l(()=>a.getAction(e)),createAction:e=>l(()=>a.createAction(e)),editAction:(e,i)=>l(()=>a.editAction(e,i)),deleteAction:e=>l(()=>a.deleteAction(e)),activateAction:e=>l(()=>a.activateAction(e)),deactivateAction:e=>l(()=>a.deactivateAction(e)),getActionVersions:e=>l(()=>a.getActionVersions(e))};export{H as AuthRoute,$ as CRITICAL_TRANSLATIONS,Te as CrudiaAutoGenerate,C as CrudifyInitializationManager,ei as CrudifyInitializer,Ie as CrudifyLogin,Y as CrudifyProvider,De as CrudifyThemeProvider,ue as ERROR_CODES,pe as ERROR_SEVERITY_MAP,se as GlobalNotificationProvider,xe as LoginComponent,Pe as POLICY_ACTIONS,Re as PREFERRED_POLICY_ORDER,Ce as Policies,k as ProtectedRoute,ce as SessionDebugInfo,v as SessionLoadingScreen,f as SessionManager,le as SessionProvider,ze as SessionStatus,Q as TokenStorage,Z as TranslationService,W as TranslationsProvider,Ae as UserProfileDisplay,ie as createErrorTranslator,Vi as crudify,ni as crudifyAdmin,x as crudifyInitManager,re as decodeJwtSafely,T as extractSafeRedirectFromUrl,z as getCookie,_ as getCriticalLanguages,B as getCriticalTranslations,oe as getCurrentUserEmail,ye as getErrorMessage,me as handleCrudifyError,ne as isTokenExpired,de as parseApiError,ge as parseJavaScriptError,fe as parseTransactionError,Le as secureLocalStorage,we as secureSessionStorage,ee as translateError,X as translateErrorCode,j as translateErrorCodes,V as translationService,be as useAuth,ve as useAutoGenerate,J as useCrudify,ii as useCrudifyInitializer,Me as useCrudifyWithNotifications,Ee as useData,ae as useGlobalNotification,te as useSession,y as useSessionContext,q as useTranslations,Se as useUserData,he as useUserProfile,P as validateInternalRedirect};
|
|
6
|
+
`});function v({stage:e="loading",message:i}){let r=i||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return M(Be,{children:[A($e,{}),M("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:[A("div",{style:Fe}),A("p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:r})]})]})}var _e=/^[a-zA-Z0-9\-_./\?=&%#]+$/,Ze=[/^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=(e,i="/")=>{if(!e||typeof e!="string")return i;let t=e.trim();if(!t)return i;if(!t.startsWith("/"))return console.warn("\u{1F6A8} Open redirect blocked (relative path):",e),i;if(!_e.test(t))return console.warn("\u{1F6A8} Open redirect blocked (invalid characters):",e),i;let r=t.toLowerCase();for(let o of Ze)if(o.test(r))return console.warn("\u{1F6A8} Open redirect blocked (dangerous pattern):",e),i;let n=t.split("?")[0].split("/").filter(Boolean);if(n.length===0)return t;for(let o of n)if(o===".."||o.includes(":")||o.length>100)return console.warn("\u{1F6A8} Open redirect blocked (suspicious path part):",o),i;return t},T=(e,i="/")=>{try{let r=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!r)return i;let n=decodeURIComponent(r);return P(n,i)}catch(t){return console.warn("\u{1F6A8} Error parsing redirect parameter:",t),i}};import{Fragment as N,jsx as R}from"react/jsx-runtime";function k({children:e,loadingComponent:i,loginPath:t="/login"}){let{isAuthenticated:r,isLoading:n,isInitialized:o,tokens:s,error:c}=y(),u=We();if(!o||n)return R(N,{children:i||R(v,{stage:"validating-session"})});let d=r&&s?.accessToken&&s.accessToken.length>0;if(c||!r||!d){s&&(!s.accessToken||s.accessToken.length===0)&&localStorage.removeItem("crudify_tokens");let m=u.pathname+u.search,I=P(m),h=encodeURIComponent(I);return R(Ve,{to:`${t}?redirect=${h}`,replace:!0})}return R(N,{children:e})}import{Navigate as qe,useLocation as Ye}from"react-router-dom";import{Fragment as Je,jsx as U}from"react/jsx-runtime";function O({children:e,redirectTo:i="/"}){let{isAuthenticated:t}=y(),r=Ye();if(t){let n=new URLSearchParams(r.search),o=T(n,i);return U(qe,{to:o,replace:!0})}return U(Je,{children:e})}import S from"@nocios/crudify-browser";var C=class e{constructor(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null};this.initializationPromise=null;this.highPriorityInitializerPresent=!1;this.waitingForHighPriority=new Set;this.HIGH_PRIORITY_WAIT_TIMEOUT=100}static getInstance(){return e.instance||(e.instance=new e),e.instance}registerHighPriorityInitializer(){this.highPriorityInitializerPresent=!0}isHighPriorityInitializerPresent(){return this.highPriorityInitializerPresent}getState(){return{...this.state}}async initialize(i){let{priority:t,publicApiKey:r,env:n,enableLogging:o,requestedBy:s}=i;if(this.state.status==="INITIALIZED"){this.state.publicApiKey!==r&&console.warn(`[CrudifyInitialization] ${s} attempted to initialize with different key. Already initialized with key: ${this.state.publicApiKey?.slice(0,10)}... by ${this.state.initializedBy}`);return}if(this.initializationPromise)return o&&console.log(`[CrudifyInitialization] ${s} waiting for ongoing initialization...`),this.initializationPromise;if(t==="LOW"&&this.highPriorityInitializerPresent&&this.state.status==="UNINITIALIZED"){if(o&&console.log(`[CrudifyInitialization] ${s} (LOW priority) waiting for HIGH priority initializer...`),this.waitingForHighPriority.add(s),await this.waitForHighPriorityOrTimeout(o),this.waitingForHighPriority.delete(s),this.getState().status==="INITIALIZED"){o&&console.log(`[CrudifyInitialization] ${s} found initialization completed by HIGH priority`);return}o&&console.warn(`[CrudifyInitialization] ${s} timeout waiting for HIGH priority, initializing with LOW priority`)}t==="HIGH"&&this.state.status==="INITIALIZING"&&this.state.priority==="LOW"&&(console.warn(`[CrudifyInitialization] HIGH priority request from ${s} interrupting LOW priority initialization by ${this.state.initializedBy}`),this.state.status="UNINITIALIZED",this.initializationPromise=null),o&&console.log(`[CrudifyInitialization] ${s} starting initialization (${t} priority)...`),this.state.status="INITIALIZING",this.state.priority=t,this.state.initializedBy=s,this.initializationPromise=this.performInitialization(r,n,o);try{await this.initializationPromise,this.state.status="INITIALIZED",this.state.publicApiKey=r,this.state.env=n,this.state.error=null,o&&console.log(`[CrudifyInitialization] \u2705 Successfully initialized by ${s} (${t} priority)`)}catch(c){throw this.state.status="ERROR",this.state.error=c instanceof Error?c:new Error(String(c)),this.initializationPromise=null,console.error(`[CrudifyInitialization] \u274C Initialization failed for ${s}:`,c),c}}async waitForHighPriorityOrTimeout(i){return new Promise(t=>{let n=0,o=setInterval(()=>{if(n+=10,this.state.status==="INITIALIZED"&&this.state.priority==="HIGH"){clearInterval(o),t();return}if(this.state.status==="INITIALIZING"&&this.state.priority==="HIGH"){n=0;return}n>=this.HIGH_PRIORITY_WAIT_TIMEOUT&&(clearInterval(o),i&&console.log(`[CrudifyInitialization] Timeout waiting for HIGH priority (${this.HIGH_PRIORITY_WAIT_TIMEOUT}ms)`),t())},10)})}async performInitialization(i,t,r){let n=S.getTokenData();if(n&&n.endpoint){r&&console.log("[CrudifyInitialization] SDK already initialized externally");return}S.config(t);let o=r?"debug":"none",s=await S.init(i,o);if(s.success===!1)throw new Error(`Crudify initialization failed: ${JSON.stringify(s.errors||"Unknown error")}`)}reset(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null},this.initializationPromise=null,this.highPriorityInitializerPresent=!1,this.waitingForHighPriority.clear()}isInitialized(){return this.state.status==="INITIALIZED"}getDiagnostics(){return{...this.state,waitingCount:this.waitingForHighPriority.size,waitingComponents:Array.from(this.waitingForHighPriority),hasActivePromise:this.initializationPromise!==null}}},x=C.getInstance();import{createContext as Qe,useContext as Xe,useEffect as je,useRef as H,useState as b}from"react";import{Fragment as ti,jsx as D}from"react/jsx-runtime";var G=Qe(void 0),ei=({config:e,children:i,fallback:t=null,onInitialized:r,onError:n})=>{let[o,s]=b(!1),[c,u]=b(!1),[d,m]=b(null),I=H(!1),h=H(!1);je(()=>{I.current||(x.registerHighPriorityInitializer(),I.current=!0),h.current||(h.current=!0,(async()=>{u(!0),m(null);try{let p=w({publicApiKey:e?.publicApiKey,env:e?.env,enableDebug:e?.enableLogging});if(!p.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");await x.initialize({priority:"HIGH",publicApiKey:p.publicApiKey,env:p.env||"prod",enableLogging:e?.enableLogging,requestedBy:"CrudifyInitializer"}),s(!0),u(!1),r&&r()}catch(p){let E=p instanceof Error?p:new Error(String(p));m(E),u(!1),n&&n(E)}})())},[e?.publicApiKey,e?.env,e?.enableLogging,r,n]);let F={isInitialized:o,isInitializing:c,error:d};return c&&t?D(ti,{children:t}):(d&&console.error("[CrudifyInitializer] Initialization failed:",d),D(G.Provider,{value:F,children:i}))},ii=()=>{let e=Xe(G);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};import a from"@nocios/crudify-admin";var K=!1,g=null;async function ri(){let i=f.getInstance().getTokenInfo(),t=i?.apiEndpointAdmin,r=i?.apiKeyEndpointAdmin;return t&&r?{apiUrl:t,apiKey:r}:L.waitForCredentials()}async function oi(){if(!K)return g||(g=(async()=>{try{let e=f.getInstance(),{apiUrl:i,apiKey:t}=await ri();a.init({url:i,apiKey:t,getAdditionalHeaders:()=>{let r=e.getTokenInfo();return r?.crudifyTokens?.accessToken?{Authorization:`Bearer ${r.crudifyTokens.accessToken}`}:{}}}),K=!0}catch(e){throw g=null,console.error("[crudifyAdminWrapper] Initialization failed:",e),e}})(),g)}async function l(e){try{await oi();let i=await e();return!i.success&&i.errors?.includes("401")?await f.getInstance().refreshTokens()?await e():(console.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),i):i}catch(i){return console.error("[crudifyAdmin] Operation error:",i),{success:!1,errors:i instanceof Error?i.message:"Unknown error"}}}var ni={listModules:()=>l(()=>a.listModules()),getModule:e=>l(()=>a.getModule(e)),createModule:e=>l(()=>a.createModule(e)),editModule:(e,i)=>l(()=>a.editModule(e,i)),deleteModule:e=>l(()=>a.deleteModule(e)),activateModule:e=>l(()=>a.activateModule(e)),deactivateModule:e=>l(()=>a.deactivateModule(e)),getModuleVersions:e=>l(()=>a.getModuleVersions(e)),listActions:e=>l(()=>a.listActions(e)),getAction:e=>l(()=>a.getAction(e)),createAction:e=>l(()=>a.createAction(e)),editAction:(e,i)=>l(()=>a.editAction(e,i)),deleteAction:e=>l(()=>a.deleteAction(e)),activateAction:e=>l(()=>a.activateAction(e)),deactivateAction:e=>l(()=>a.deactivateAction(e)),getActionVersions:e=>l(()=>a.getActionVersions(e)),getActionsByProfile:e=>l(()=>a.getActionsByProfile(e)),updateActionsProfiles:e=>l(()=>a.updateActionsProfiles(e))};export{O as AuthRoute,$ as CRITICAL_TRANSLATIONS,Te as CrudiaAutoGenerate,C as CrudifyInitializationManager,ei as CrudifyInitializer,Ie as CrudifyLogin,Y as CrudifyProvider,De as CrudifyThemeProvider,pe as ERROR_CODES,ue as ERROR_SEVERITY_MAP,se as GlobalNotificationProvider,xe as LoginComponent,Pe as POLICY_ACTIONS,Re as PREFERRED_POLICY_ORDER,Ce as Policies,k as ProtectedRoute,ce as SessionDebugInfo,v as SessionLoadingScreen,f as SessionManager,le as SessionProvider,ze as SessionStatus,Q as TokenStorage,Z as TranslationService,W as TranslationsProvider,Ae as UserProfileDisplay,ie as createErrorTranslator,Vi as crudify,ni as crudifyAdmin,x as crudifyInitManager,re as decodeJwtSafely,T as extractSafeRedirectFromUrl,z as getCookie,B as getCriticalLanguages,_ as getCriticalTranslations,oe as getCurrentUserEmail,ye as getErrorMessage,me as handleCrudifyError,ne as isTokenExpired,de as parseApiError,ge as parseJavaScriptError,fe as parseTransactionError,Le as secureLocalStorage,we as secureSessionStorage,ee as translateError,X as translateErrorCode,j as translateErrorCodes,V as translationService,be as useAuth,ve as useAutoGenerate,J as useCrudify,ii as useCrudifyInitializer,Me as useCrudifyWithNotifications,Ee as useData,ae as useGlobalNotification,te as useSession,y as useSessionContext,q as useTranslations,Se as useUserData,he as useUserProfile,P as validateInternalRedirect};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocios/crudify-ui",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.20",
|
|
4
4
|
"description": "Biblioteca de componentes UI para Crudify",
|
|
5
5
|
"author": "Nocios",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"prepublishOnly": "npm run build"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@nocios/crudify-admin": "^2.
|
|
42
|
+
"@nocios/crudify-admin": "^2.2.0",
|
|
43
43
|
"@nocios/crudify-browser": "^4.1.6",
|
|
44
44
|
"crypto-js": "^4.2.0",
|
|
45
45
|
"dompurify": "^3.2.7",
|