@nocios/crudify-components 2.0.42 → 2.0.44
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 +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CrudifyInstance } from '@nocios/crudify-sdk';
|
|
2
2
|
export * from '@nocios/crudify-sdk';
|
|
3
|
-
export {
|
|
3
|
+
export { CrudifyInstance } from '@nocios/crudify-sdk';
|
|
4
4
|
import { d as CrudifyLoginConfig, l as PasswordRule, E as EvaluatedPasswordRule } from './CrudiaMarkdownField-TNyMLb-h.mjs';
|
|
5
5
|
export { B as BoxScreenType, a as CrudiaAutoGenerate, i as CrudiaAutoGenerateProps, b as CrudiaFileField, o as CrudiaFileFieldDeletionHandlers, j as CrudiaFileFieldProps, c as CrudiaMarkdownField, k as CrudiaMarkdownFieldProps, C as CrudifyLogin, e as CrudifyLoginProps, f as CrudifyLoginTranslations, D as DEFAULT_PASSWORD_RULES, L as LoginComponent, m as POLICY_ACTIONS, n as PREFERRED_POLICY_ORDER, p as PasswordRuleType, P as Policies, h as PolicyAction, S as SessionStatus, g as UserLoginData, U as UserProfileDisplay } from './CrudiaMarkdownField-TNyMLb-h.mjs';
|
|
6
6
|
import React, { ReactNode } from 'react';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CrudifyInstance } from '@nocios/crudify-sdk';
|
|
2
2
|
export * from '@nocios/crudify-sdk';
|
|
3
|
-
export {
|
|
3
|
+
export { CrudifyInstance } from '@nocios/crudify-sdk';
|
|
4
4
|
import { d as CrudifyLoginConfig, l as PasswordRule, E as EvaluatedPasswordRule } from './CrudiaMarkdownField-CXAuu-v2.js';
|
|
5
5
|
export { B as BoxScreenType, a as CrudiaAutoGenerate, i as CrudiaAutoGenerateProps, b as CrudiaFileField, o as CrudiaFileFieldDeletionHandlers, j as CrudiaFileFieldProps, c as CrudiaMarkdownField, k as CrudiaMarkdownFieldProps, C as CrudifyLogin, e as CrudifyLoginProps, f as CrudifyLoginTranslations, D as DEFAULT_PASSWORD_RULES, L as LoginComponent, m as POLICY_ACTIONS, n as PREFERRED_POLICY_ORDER, p as PasswordRuleType, P as Policies, h as PolicyAction, S as SessionStatus, g as UserLoginData, U as UserProfileDisplay } from './CrudiaMarkdownField-CXAuu-v2.js';
|
|
6
6
|
import React, { ReactNode } from 'react';
|
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; } async function _asyncOptionalChain(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 = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk2IOB6HHTjs = require('./chunk-2IOB6HHT.js');var _chunk37WOWEJGjs = require('./chunk-37WOWEJG.js');var _chunkMFQKGZI4js = require('./chunk-MFQKGZI4.js');var _chunkBXFEQ6KPjs = require('./chunk-BXFEQ6KP.js');var _chunk4LMFQECSjs = require('./chunk-4LMFQECS.js');var _crudifysdk = require('@nocios/crudify-sdk');
|
|
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; } async function _asyncOptionalChain(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 = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk2IOB6HHTjs = require('./chunk-2IOB6HHT.js');var _chunk37WOWEJGjs = require('./chunk-37WOWEJG.js');var _chunkMFQKGZI4js = require('./chunk-MFQKGZI4.js');var _chunkBXFEQ6KPjs = require('./chunk-BXFEQ6KP.js');var _chunk4LMFQECSjs = require('./chunk-4LMFQECS.js');var _crudifysdk = require('@nocios/crudify-sdk'); _createStarExport(_crudifysdk);var _react = require('react');var _material = require('@mui/material');var _jsxruntime = require('react/jsx-runtime');var sr=(e={})=>{try{let r=_chunk4LMFQECSjs.b.call(void 0, );if(r.configSource!=="none"&&r.theme)return{...e,...r.theme}}catch(r){_chunk4LMFQECSjs.a.warn("Error reading theme from config",r instanceof Error?{errorMessage:r.message}:{message:String(r)})}return e};function ar({children:e,defaultTheme:r={},disableCssBaseline:t=!1}){let o=_react.useMemo.call(void 0, ()=>{let a=sr(r);return _material.createTheme.call(void 0, a)},[r]);return _jsxruntime.jsxs.call(void 0, _material.ThemeProvider,{theme:o,children:[!t&&_jsxruntime.jsx.call(void 0, _material.CssBaseline,{}),e]})}var _reactrouterdom = require('react-router-dom');var lr={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},cr=()=>_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 g({stage:e="loading",message:r}){let o=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, cr,{}),_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:lr}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:o})]})]})}function _({children:e,loadingComponent:r,loginPath:t="/login"}){let{isAuthenticated:o,isLoading:a,isLoggingOut:s,isInitialized:y,tokens:l,error:f}=_chunkMFQKGZI4js.l.call(void 0, ),u=_reactrouterdom.useLocation.call(void 0, );if(!y||a&&!s)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:r||_jsxruntime.jsx.call(void 0, g,{stage:"validating-session"})});let c=o&&_optionalChain([l, 'optionalAccess', _2 => _2.accessToken])&&l.accessToken.length>0;if(f||!o||!c){if(s)return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:t,replace:!0});let C=u.pathname+u.search;if(u.pathname===t||u.pathname.startsWith(t))return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:t,replace:!0});let T=_chunk2IOB6HHTjs.h.call(void 0, C),k=encodeURIComponent(T);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${t}?redirect=${k}`,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var L="crudify_tokens",mr="crudify_enc_key";function B(){try{let e=localStorage.getItem(L);return e?e.startsWith("v2:")&&e.length>50:!1}catch (e2){return!1}}function W(){try{let e=localStorage.getItem(mr);return e!==null&&e.length>=32}catch (e3){return!1}}function U(){return B()&&W()}function H(){try{let e=localStorage.getItem(L);return e?!e.startsWith("v2:")||e.length<50:!1}catch (e4){return!1}}function gr(){try{H()&&localStorage.removeItem(L)}catch (e5){}}function Y({children:e,redirectTo:r="/",loadingComponent:t,initTimeout:o=3e3}){let{isAuthenticated:a,isInitialized:s}=_chunkMFQKGZI4js.l.call(void 0, ),y=_reactrouterdom.useLocation.call(void 0, ),[l]=_react.useState.call(void 0, ()=>U()),[f,u]=_react.useState.call(void 0, !1);if(_react.useEffect.call(void 0, ()=>{if(!s&&l){let c=setTimeout(()=>{u(!0)},o);return()=>clearTimeout(c)}},[s,l,o]),s&&a){let c=new URLSearchParams(y.search),C=_chunk2IOB6HHTjs.j.call(void 0, c,r);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:C,replace:!0})}return s&&!a?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e}):l&&!f?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:t||_jsxruntime.jsx.call(void 0, g,{stage:"validating-session"})}):_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function J({children:e,behavior:r="redirect-if-authenticated",redirectTo:t="/",loadingComponent:o}){let{isAuthenticated:a,isInitialized:s}=_chunkMFQKGZI4js.l.call(void 0, );return s?r==="allow-all"?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e}):a?_jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:t,replace:!0}):_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e}):_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:o||_jsxruntime.jsx.call(void 0, g,{stage:"validating-session"})})}var X=_react.createContext.call(void 0, void 0),hr= exports.CrudifyInitializer =({config:e,children:r,fallback:t=null,onInitialized:o,onError:a})=>{let[s,y]=_react.useState.call(void 0, !1),[l,f]=_react.useState.call(void 0, !1),[u,c]=_react.useState.call(void 0, null),C=_react.useRef.call(void 0, !1),T=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{C.current||(_chunkMFQKGZI4js.q.registerHighPriorityInitializer(),C.current=!0),T.current||(T.current=!0,(async()=>{f(!0),c(null);try{let d=_chunk4LMFQECSjs.d.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(!d.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");let v=d.env||"prod";_chunk4LMFQECSjs.a.setEnvironment(v),await _chunkMFQKGZI4js.q.initialize({priority:"HIGH",publicApiKey:d.publicApiKey,env:d.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _6 => _6.enableLogging]),requestedBy:"CrudifyInitializer"}),y(!0),f(!1),o&&o()}catch(d){let v=d instanceof Error?d:new Error(String(d));c(v),f(!1),a&&a(v)}})())},[_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),_optionalChain([e, 'optionalAccess', _8 => _8.env]),_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging]),o,a]);let k={isInitialized:s,isInitializing:l,error:u};return l&&t?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:t}):(u&&_chunk4LMFQECSjs.a.error("[CrudifyInitializer] Initialization failed",u),_jsxruntime.jsx.call(void 0, X.Provider,{value:k,children:r}))},Tr= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, X);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadminsdk = require('@nocios/crudify-admin-sdk'); var _crudifyadminsdk2 = _interopRequireDefault(_crudifyadminsdk);var Z=!1,I=null,h=null;async function Sr(){let r=await _chunkMFQKGZI4js.d.getInstance().getTokenInfo(),t=_optionalChain([r, 'optionalAccess', _10 => _10.apiEndpointAdmin]),o=_optionalChain([r, 'optionalAccess', _11 => _11.apiKeyEndpointAdmin]);return t&&o?{apiUrl:t,apiKey:o}:_chunkMFQKGZI4js.h.waitForCredentials()}async function Er(){if(!Z)return I||(I=(async()=>{try{let e=_chunkMFQKGZI4js.d.getInstance(),{apiUrl:r,apiKey:t}=await Sr();h=await _asyncOptionalChain([(await e.getTokenInfo()), 'optionalAccess', async _12 => _12.crudifyTokens, 'optionalAccess', async _13 => _13.accessToken])||null,_crudifyadminsdk2.default.init({url:r,apiKey:t,getAdditionalHeaders:()=>h?{Authorization:`Bearer ${h}`}:{}}),Z=!0}catch(e){throw I=null,_chunk4LMFQECSjs.a.error("[crudifyAdminWrapper] Initialization failed",e instanceof Error?e:{message:String(e)}),e}})(),I)}async function n(e){try{await Er();let r=_chunkMFQKGZI4js.d.getInstance();h=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _14 => _14.crudifyTokens, 'optionalAccess', async _15 => _15.accessToken])||null;let o=await e(),a=o.errors&&(typeof o.errors=="string"&&o.errors.includes("401")||Array.isArray(o.errors)&&o.errors.some(s=>typeof s=="string"&&s.includes("401")));return!o.success&&a?await r.refreshTokens()?(h=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _16 => _16.crudifyTokens, 'optionalAccess', async _17 => _17.accessToken])||null,await e()):(_chunk4LMFQECSjs.a.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),o):o}catch(r){return _chunk4LMFQECSjs.a.error("[crudifyAdmin] Operation error",r instanceof Error?r:{message:String(r)}),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var kr={listModules:()=>n(()=>_crudifyadminsdk2.default.listModules()),getModule:e=>n(()=>_crudifyadminsdk2.default.getModule(e)),createModule:e=>n(()=>_crudifyadminsdk2.default.createModule(e)),editModule:(e,r)=>n(()=>_crudifyadminsdk2.default.editModule(e,r)),deleteModule:e=>n(()=>_crudifyadminsdk2.default.deleteModule(e)),activateModule:e=>n(()=>_crudifyadminsdk2.default.activateModule(e)),deactivateModule:e=>n(()=>_crudifyadminsdk2.default.deactivateModule(e)),getModuleVersions:e=>n(()=>_crudifyadminsdk2.default.getModuleVersions(e)),listActions:e=>n(()=>_crudifyadminsdk2.default.listActions(e)),getAction:e=>n(()=>_crudifyadminsdk2.default.getAction(e)),createAction:e=>n(()=>_crudifyadminsdk2.default.createAction(e)),editAction:(e,r)=>n(()=>_crudifyadminsdk2.default.editAction(e,r)),deleteAction:e=>n(()=>_crudifyadminsdk2.default.deleteAction(e)),activateAction:e=>n(()=>_crudifyadminsdk2.default.activateAction(e)),deactivateAction:e=>n(()=>_crudifyadminsdk2.default.deactivateAction(e)),getActionVersions:e=>n(()=>_crudifyadminsdk2.default.getActionVersions(e)),getActionsByProfile:e=>n(()=>_crudifyadminsdk2.default.getActionsByProfile(e)),updateActionsProfiles:e=>n(()=>_crudifyadminsdk2.default.updateActionsProfiles(e)),calculatePermissions:e=>n(()=>_crudifyadminsdk2.default.calculatePermissions(e))};exports.AuthRoute = Y; exports.CRITICAL_TRANSLATIONS = _chunk2IOB6HHTjs.a; exports.CrossTabSyncManager = _chunkMFQKGZI4js.b; exports.CrudiaAutoGenerate = _chunk2IOB6HHTjs.v; exports.CrudiaFileField = _chunk2IOB6HHTjs.w; exports.CrudiaMarkdownField = _chunk2IOB6HHTjs.x; exports.CrudifyInitializationManager = _chunkMFQKGZI4js.p; exports.CrudifyInitializer = hr; exports.CrudifyLogin = _chunk2IOB6HHTjs.o; exports.CrudifyProvider = _chunkMFQKGZI4js.i; exports.CrudifyThemeProvider = ar; exports.DEFAULT_PASSWORD_RULES = _chunk2IOB6HHTjs.n; exports.ERROR_CODES = _chunk4LMFQECSjs.u; exports.ERROR_SEVERITY_MAP = _chunk4LMFQECSjs.v; exports.GlobalNotificationProvider = _chunkMFQKGZI4js.f; exports.GuestRoute = J; exports.LoginComponent = _chunk2IOB6HHTjs.t; exports.POLICY_ACTIONS = _chunk2IOB6HHTjs.q; exports.PREFERRED_POLICY_ORDER = _chunk2IOB6HHTjs.r; exports.PasswordRequirements = _chunk2IOB6HHTjs.k; exports.Policies = _chunk2IOB6HHTjs.s; exports.ProtectedRoute = _; exports.SessionDebugInfo = _chunkMFQKGZI4js.m; exports.SessionLoadingScreen = g; exports.SessionManager = _chunkMFQKGZI4js.d; exports.SessionProvider = _chunkMFQKGZI4js.k; exports.SessionStatus = _chunk2IOB6HHTjs.u; exports.TokenStorage = _chunkMFQKGZI4js.a; exports.TranslationService = _chunk2IOB6HHTjs.d; exports.TranslationsProvider = _chunk2IOB6HHTjs.f; exports.UserProfileDisplay = _chunk2IOB6HHTjs.p; exports.allPasswordRulesPassed = _chunk2IOB6HHTjs.m; exports.clearCorruptedTokens = gr; exports.createErrorTranslator = _chunk4LMFQECSjs.p; exports.crossTabSync = _chunkMFQKGZI4js.c; exports.crudify = _crudifysdk2.default; exports.crudifyAdmin = kr; exports.crudifyInitManager = _chunkMFQKGZI4js.q; exports.decodeJwtSafely = _chunk4LMFQECSjs.r; exports.evaluatePasswordRules = _chunk2IOB6HHTjs.l; exports.extractSafeRedirectFromUrl = _chunk2IOB6HHTjs.j; exports.getCriticalLanguages = _chunk2IOB6HHTjs.b; exports.getCriticalTranslations = _chunk2IOB6HHTjs.c; exports.getCurrentUserEmail = _chunk4LMFQECSjs.s; exports.getErrorMessage = _chunk4LMFQECSjs.y; exports.handleCrudifyError = _chunk4LMFQECSjs.A; exports.hasCorruptedTokens = H; exports.hasEncryptionKeyHash = W; exports.hasStoredTokens = B; exports.isTokenExpired = _chunk4LMFQECSjs.t; exports.logger = _chunk4LMFQECSjs.a; exports.parseApiError = _chunk4LMFQECSjs.w; exports.parseJavaScriptError = _chunk4LMFQECSjs.z; exports.parseTransactionError = _chunk4LMFQECSjs.x; exports.resolveTenantConfig = _chunk4LMFQECSjs.b; exports.secureLocalStorage = _chunkBXFEQ6KPjs.b; exports.secureSessionStorage = _chunkBXFEQ6KPjs.a; exports.shouldWaitForInitialization = U; exports.translateError = _chunk4LMFQECSjs.o; exports.translateErrorCode = _chunk4LMFQECSjs.m; exports.translateErrorCodes = _chunk4LMFQECSjs.n; exports.translationService = _chunk2IOB6HHTjs.e; exports.useAuth = _chunk37WOWEJGjs.b; exports.useAutoGenerate = _chunkMFQKGZI4js.o; exports.useCrudify = _chunkMFQKGZI4js.j; exports.useCrudifyInitializer = Tr; exports.useCrudifyWithNotifications = _chunk37WOWEJGjs.d; exports.useData = _chunk37WOWEJGjs.c; exports.useFileUpload = _chunkMFQKGZI4js.r; exports.useGlobalNotification = _chunkMFQKGZI4js.g; exports.useSession = _chunkMFQKGZI4js.e; exports.useSessionContext = _chunkMFQKGZI4js.l; exports.useTenantConfig = _chunk4LMFQECSjs.c; exports.useTranslations = _chunk2IOB6HHTjs.g; exports.useUserData = _chunk37WOWEJGjs.a; exports.useUserProfile = _chunkMFQKGZI4js.n; exports.validateInternalRedirect = _chunk2IOB6HHTjs.h; exports.validateTrustedRedirect = _chunk2IOB6HHTjs.i;
|
|
6
|
+
`});function g({stage:e="loading",message:r}){let o=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, cr,{}),_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:lr}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:o})]})]})}function _({children:e,loadingComponent:r,loginPath:t="/login"}){let{isAuthenticated:o,isLoading:a,isLoggingOut:s,isInitialized:y,tokens:l,error:f}=_chunkMFQKGZI4js.l.call(void 0, ),u=_reactrouterdom.useLocation.call(void 0, );if(!y||a&&!s)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:r||_jsxruntime.jsx.call(void 0, g,{stage:"validating-session"})});let c=o&&_optionalChain([l, 'optionalAccess', _2 => _2.accessToken])&&l.accessToken.length>0;if(f||!o||!c){if(s)return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:t,replace:!0});let C=u.pathname+u.search;if(u.pathname===t||u.pathname.startsWith(t))return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:t,replace:!0});let T=_chunk2IOB6HHTjs.h.call(void 0, C),k=encodeURIComponent(T);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${t}?redirect=${k}`,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var L="crudify_tokens",mr="crudify_enc_key";function B(){try{let e=localStorage.getItem(L);return e?e.startsWith("v2:")&&e.length>50:!1}catch (e2){return!1}}function W(){try{let e=localStorage.getItem(mr);return e!==null&&e.length>=32}catch (e3){return!1}}function U(){return B()&&W()}function H(){try{let e=localStorage.getItem(L);return e?!e.startsWith("v2:")||e.length<50:!1}catch (e4){return!1}}function gr(){try{H()&&localStorage.removeItem(L)}catch (e5){}}function Y({children:e,redirectTo:r="/",loadingComponent:t,initTimeout:o=3e3}){let{isAuthenticated:a,isInitialized:s}=_chunkMFQKGZI4js.l.call(void 0, ),y=_reactrouterdom.useLocation.call(void 0, ),[l]=_react.useState.call(void 0, ()=>U()),[f,u]=_react.useState.call(void 0, !1);if(_react.useEffect.call(void 0, ()=>{if(!s&&l){let c=setTimeout(()=>{u(!0)},o);return()=>clearTimeout(c)}},[s,l,o]),s&&a){let c=new URLSearchParams(y.search),C=_chunk2IOB6HHTjs.j.call(void 0, c,r);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:C,replace:!0})}return s&&!a?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e}):l&&!f?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:t||_jsxruntime.jsx.call(void 0, g,{stage:"validating-session"})}):_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function J({children:e,behavior:r="redirect-if-authenticated",redirectTo:t="/",loadingComponent:o}){let{isAuthenticated:a,isInitialized:s}=_chunkMFQKGZI4js.l.call(void 0, );return s?r==="allow-all"?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e}):a?_jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:t,replace:!0}):_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e}):_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:o||_jsxruntime.jsx.call(void 0, g,{stage:"validating-session"})})}var X=_react.createContext.call(void 0, void 0),hr= exports.CrudifyInitializer =({config:e,children:r,fallback:t=null,onInitialized:o,onError:a})=>{let[s,y]=_react.useState.call(void 0, !1),[l,f]=_react.useState.call(void 0, !1),[u,c]=_react.useState.call(void 0, null),C=_react.useRef.call(void 0, !1),T=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{C.current||(_chunkMFQKGZI4js.q.registerHighPriorityInitializer(),C.current=!0),T.current||(T.current=!0,(async()=>{f(!0),c(null);try{let d=_chunk4LMFQECSjs.d.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(!d.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");let v=d.env||"prod";_chunk4LMFQECSjs.a.setEnvironment(v),await _chunkMFQKGZI4js.q.initialize({priority:"HIGH",publicApiKey:d.publicApiKey,env:d.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _6 => _6.enableLogging]),requestedBy:"CrudifyInitializer"}),y(!0),f(!1),o&&o()}catch(d){let v=d instanceof Error?d:new Error(String(d));c(v),f(!1),a&&a(v)}})())},[_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),_optionalChain([e, 'optionalAccess', _8 => _8.env]),_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging]),o,a]);let k={isInitialized:s,isInitializing:l,error:u};return l&&t?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:t}):(u&&_chunk4LMFQECSjs.a.error("[CrudifyInitializer] Initialization failed",u),_jsxruntime.jsx.call(void 0, X.Provider,{value:k,children:r}))},Tr= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, X);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadminsdk = require('@nocios/crudify-admin-sdk'); var _crudifyadminsdk2 = _interopRequireDefault(_crudifyadminsdk);var Z=!1,I=null,h=null;async function Sr(){let r=await _chunkMFQKGZI4js.d.getInstance().getTokenInfo(),t=_optionalChain([r, 'optionalAccess', _10 => _10.apiEndpointAdmin]),o=_optionalChain([r, 'optionalAccess', _11 => _11.apiKeyEndpointAdmin]);return t&&o?{apiUrl:t,apiKey:o}:_chunkMFQKGZI4js.h.waitForCredentials()}async function Er(){if(!Z)return I||(I=(async()=>{try{let e=_chunkMFQKGZI4js.d.getInstance(),{apiUrl:r,apiKey:t}=await Sr();h=await _asyncOptionalChain([(await e.getTokenInfo()), 'optionalAccess', async _12 => _12.crudifyTokens, 'optionalAccess', async _13 => _13.accessToken])||null,_crudifyadminsdk2.default.init({url:r,apiKey:t,getAdditionalHeaders:()=>h?{Authorization:`Bearer ${h}`}:{}}),Z=!0}catch(e){throw I=null,_chunk4LMFQECSjs.a.error("[crudifyAdminWrapper] Initialization failed",e instanceof Error?e:{message:String(e)}),e}})(),I)}async function n(e){try{await Er();let r=_chunkMFQKGZI4js.d.getInstance();h=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _14 => _14.crudifyTokens, 'optionalAccess', async _15 => _15.accessToken])||null;let o=await e(),a=o.errors&&(typeof o.errors=="string"&&o.errors.includes("401")||Array.isArray(o.errors)&&o.errors.some(s=>typeof s=="string"&&s.includes("401")));return!o.success&&a?await r.refreshTokens()?(h=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _16 => _16.crudifyTokens, 'optionalAccess', async _17 => _17.accessToken])||null,await e()):(_chunk4LMFQECSjs.a.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),o):o}catch(r){return _chunk4LMFQECSjs.a.error("[crudifyAdmin] Operation error",r instanceof Error?r:{message:String(r)}),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var kr={listModules:()=>n(()=>_crudifyadminsdk2.default.listModules()),getModule:e=>n(()=>_crudifyadminsdk2.default.getModule(e)),createModule:e=>n(()=>_crudifyadminsdk2.default.createModule(e)),editModule:(e,r)=>n(()=>_crudifyadminsdk2.default.editModule(e,r)),deleteModule:e=>n(()=>_crudifyadminsdk2.default.deleteModule(e)),activateModule:e=>n(()=>_crudifyadminsdk2.default.activateModule(e)),deactivateModule:e=>n(()=>_crudifyadminsdk2.default.deactivateModule(e)),getModuleVersions:e=>n(()=>_crudifyadminsdk2.default.getModuleVersions(e)),listActions:e=>n(()=>_crudifyadminsdk2.default.listActions(e)),getAction:e=>n(()=>_crudifyadminsdk2.default.getAction(e)),createAction:e=>n(()=>_crudifyadminsdk2.default.createAction(e)),editAction:(e,r)=>n(()=>_crudifyadminsdk2.default.editAction(e,r)),deleteAction:e=>n(()=>_crudifyadminsdk2.default.deleteAction(e)),activateAction:e=>n(()=>_crudifyadminsdk2.default.activateAction(e)),deactivateAction:e=>n(()=>_crudifyadminsdk2.default.deactivateAction(e)),getActionVersions:e=>n(()=>_crudifyadminsdk2.default.getActionVersions(e)),getActionsByProfile:e=>n(()=>_crudifyadminsdk2.default.getActionsByProfile(e)),updateActionsProfiles:e=>n(()=>_crudifyadminsdk2.default.updateActionsProfiles(e)),calculatePermissions:e=>n(()=>_crudifyadminsdk2.default.calculatePermissions(e))};exports.AuthRoute = Y; exports.CRITICAL_TRANSLATIONS = _chunk2IOB6HHTjs.a; exports.CrossTabSyncManager = _chunkMFQKGZI4js.b; exports.CrudiaAutoGenerate = _chunk2IOB6HHTjs.v; exports.CrudiaFileField = _chunk2IOB6HHTjs.w; exports.CrudiaMarkdownField = _chunk2IOB6HHTjs.x; exports.CrudifyInitializationManager = _chunkMFQKGZI4js.p; exports.CrudifyInitializer = hr; exports.CrudifyInstance = _crudifysdk.CrudifyInstance; exports.CrudifyLogin = _chunk2IOB6HHTjs.o; exports.CrudifyProvider = _chunkMFQKGZI4js.i; exports.CrudifyThemeProvider = ar; exports.DEFAULT_PASSWORD_RULES = _chunk2IOB6HHTjs.n; exports.ERROR_CODES = _chunk4LMFQECSjs.u; exports.ERROR_SEVERITY_MAP = _chunk4LMFQECSjs.v; exports.GlobalNotificationProvider = _chunkMFQKGZI4js.f; exports.GuestRoute = J; exports.LoginComponent = _chunk2IOB6HHTjs.t; exports.POLICY_ACTIONS = _chunk2IOB6HHTjs.q; exports.PREFERRED_POLICY_ORDER = _chunk2IOB6HHTjs.r; exports.PasswordRequirements = _chunk2IOB6HHTjs.k; exports.Policies = _chunk2IOB6HHTjs.s; exports.ProtectedRoute = _; exports.SessionDebugInfo = _chunkMFQKGZI4js.m; exports.SessionLoadingScreen = g; exports.SessionManager = _chunkMFQKGZI4js.d; exports.SessionProvider = _chunkMFQKGZI4js.k; exports.SessionStatus = _chunk2IOB6HHTjs.u; exports.TokenStorage = _chunkMFQKGZI4js.a; exports.TranslationService = _chunk2IOB6HHTjs.d; exports.TranslationsProvider = _chunk2IOB6HHTjs.f; exports.UserProfileDisplay = _chunk2IOB6HHTjs.p; exports.allPasswordRulesPassed = _chunk2IOB6HHTjs.m; exports.clearCorruptedTokens = gr; exports.createErrorTranslator = _chunk4LMFQECSjs.p; exports.crossTabSync = _chunkMFQKGZI4js.c; exports.crudifyAdmin = kr; exports.crudifyInitManager = _chunkMFQKGZI4js.q; exports.decodeJwtSafely = _chunk4LMFQECSjs.r; exports.evaluatePasswordRules = _chunk2IOB6HHTjs.l; exports.extractSafeRedirectFromUrl = _chunk2IOB6HHTjs.j; exports.getCriticalLanguages = _chunk2IOB6HHTjs.b; exports.getCriticalTranslations = _chunk2IOB6HHTjs.c; exports.getCurrentUserEmail = _chunk4LMFQECSjs.s; exports.getErrorMessage = _chunk4LMFQECSjs.y; exports.handleCrudifyError = _chunk4LMFQECSjs.A; exports.hasCorruptedTokens = H; exports.hasEncryptionKeyHash = W; exports.hasStoredTokens = B; exports.isTokenExpired = _chunk4LMFQECSjs.t; exports.logger = _chunk4LMFQECSjs.a; exports.parseApiError = _chunk4LMFQECSjs.w; exports.parseJavaScriptError = _chunk4LMFQECSjs.z; exports.parseTransactionError = _chunk4LMFQECSjs.x; exports.resolveTenantConfig = _chunk4LMFQECSjs.b; exports.secureLocalStorage = _chunkBXFEQ6KPjs.b; exports.secureSessionStorage = _chunkBXFEQ6KPjs.a; exports.shouldWaitForInitialization = U; exports.translateError = _chunk4LMFQECSjs.o; exports.translateErrorCode = _chunk4LMFQECSjs.m; exports.translateErrorCodes = _chunk4LMFQECSjs.n; exports.translationService = _chunk2IOB6HHTjs.e; exports.useAuth = _chunk37WOWEJGjs.b; exports.useAutoGenerate = _chunkMFQKGZI4js.o; exports.useCrudify = _chunkMFQKGZI4js.j; exports.useCrudifyInitializer = Tr; exports.useCrudifyWithNotifications = _chunk37WOWEJGjs.d; exports.useData = _chunk37WOWEJGjs.c; exports.useFileUpload = _chunkMFQKGZI4js.r; exports.useGlobalNotification = _chunkMFQKGZI4js.g; exports.useSession = _chunkMFQKGZI4js.e; exports.useSessionContext = _chunkMFQKGZI4js.l; exports.useTenantConfig = _chunk4LMFQECSjs.c; exports.useTranslations = _chunk2IOB6HHTjs.g; exports.useUserData = _chunk37WOWEJGjs.a; exports.useUserProfile = _chunkMFQKGZI4js.n; exports.validateInternalRedirect = _chunk2IOB6HHTjs.h; exports.validateTrustedRedirect = _chunk2IOB6HHTjs.i;
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{a as j,b as ee,c as re,d as oe,e as te,f as ne,g as se,h as z,i as be,j as b,k as we,l as Le,m as Ue,n as Fe,o as Oe,p as Ge,q as De,r as Ke,s as Ve,t as _e,u as Be,v as He,w as Je,x as $e}from"./chunk-XMEZUDF6.mjs";import{a as Qe,b as Xe,c as Ze,d as rr}from"./chunk-NJERBWND.mjs";import{a as ae,b as de,c as fe,d as x,e as me,f as Re,g as xe,h as D,i as Pe,j as Ae,k as Ie,l as m,m as he,n as Ne,o as We,p as qe,q as S,r as Ye}from"./chunk-2WHCDP7V.mjs";import{a as je,b as er}from"./chunk-WMLIOPUC.mjs";import{A as ze,a as p,b as M,c as ie,d as G,m as ue,n as pe,o as le,p as ce,r as ge,s as ye,t as Ce,u as Te,v as ve,w as Se,x as Ee,y as ke,z as Me}from"./chunk-44VU4TSP.mjs";import{
|
|
1
|
+
import{a as j,b as ee,c as re,d as oe,e as te,f as ne,g as se,h as z,i as be,j as b,k as we,l as Le,m as Ue,n as Fe,o as Oe,p as Ge,q as De,r as Ke,s as Ve,t as _e,u as Be,v as He,w as Je,x as $e}from"./chunk-XMEZUDF6.mjs";import{a as Qe,b as Xe,c as Ze,d as rr}from"./chunk-NJERBWND.mjs";import{a as ae,b as de,c as fe,d as x,e as me,f as Re,g as xe,h as D,i as Pe,j as Ae,k as Ie,l as m,m as he,n as Ne,o as We,p as qe,q as S,r as Ye}from"./chunk-2WHCDP7V.mjs";import{a as je,b as er}from"./chunk-WMLIOPUC.mjs";import{A as ze,a as p,b as M,c as ie,d as G,m as ue,n as pe,o as le,p as ce,r as ge,s as ye,t as Ce,u as Te,v as ve,w as Se,x as Ee,y as ke,z as Me}from"./chunk-44VU4TSP.mjs";import{CrudifyInstance as vo}from"@nocios/crudify-sdk";export*from"@nocios/crudify-sdk";import{useMemo as or}from"react";import{ThemeProvider as tr,createTheme as ir,CssBaseline as nr}from"@mui/material";import{jsx as ur,jsxs as pr}from"react/jsx-runtime";var sr=(e={})=>{try{let r=M();if(r.configSource!=="none"&&r.theme)return{...e,...r.theme}}catch(r){p.warn("Error reading theme from config",r instanceof Error?{errorMessage:r.message}:{message:String(r)})}return e};function ar({children:e,defaultTheme:r={},disableCssBaseline:t=!1}){let o=or(()=>{let a=sr(r);return ir(a)},[r]);return pr(tr,{theme:o,children:[!t&&ur(nr,{}),e]})}import{Navigate as w,useLocation as fr}from"react-router-dom";import{Fragment as dr,jsx as E,jsxs as K}from"react/jsx-runtime";var lr={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},cr=()=>E("style",{children:`
|
|
2
2
|
@keyframes spin {
|
|
3
3
|
0% { transform: rotate(0deg); }
|
|
4
4
|
100% { transform: rotate(360deg); }
|
|
5
5
|
}
|
|
6
|
-
`});function g({stage:e="loading",message:r}){let o=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return K(dr,{children:[E(cr,{}),K("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:[E("div",{style:lr}),E("p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:o})]})]})}import{Fragment as V,jsx as R}from"react/jsx-runtime";function _({children:e,loadingComponent:r,loginPath:t="/login"}){let{isAuthenticated:o,isLoading:a,isLoggingOut:s,isInitialized:y,tokens:l,error:f}=m(),u=fr();if(!y||a&&!s)return R(V,{children:r||R(g,{stage:"validating-session"})});let c=o&&l?.accessToken&&l.accessToken.length>0;if(f||!o||!c){if(s)return R(w,{to:t,replace:!0});let C=u.pathname+u.search;if(u.pathname===t||u.pathname.startsWith(t))return R(w,{to:t,replace:!0});let T=z(C),k=encodeURIComponent(T);return R(w,{to:`${t}?redirect=${k}`,replace:!0})}return R(V,{children:e})}import{useState as q,useEffect as yr}from"react";import{Navigate as Cr,useLocation as Rr}from"react-router-dom";var L="crudify_tokens",mr="crudify_enc_key";function B(){try{let e=localStorage.getItem(L);return e?e.startsWith("v2:")&&e.length>50:!1}catch{return!1}}function W(){try{let e=localStorage.getItem(mr);return e!==null&&e.length>=32}catch{return!1}}function U(){return B()&&W()}function H(){try{let e=localStorage.getItem(L);return e?!e.startsWith("v2:")||e.length<50:!1}catch{return!1}}function gr(){try{H()&&localStorage.removeItem(L)}catch{}}import{Fragment as F,jsx as P}from"react/jsx-runtime";function Y({children:e,redirectTo:r="/",loadingComponent:t,initTimeout:o=3e3}){let{isAuthenticated:a,isInitialized:s}=m(),y=Rr(),[l]=q(()=>U()),[f,u]=q(!1);if(yr(()=>{if(!s&&l){let c=setTimeout(()=>{u(!0)},o);return()=>clearTimeout(c)}},[s,l,o]),s&&a){let c=new URLSearchParams(y.search),C=b(c,r);return P(Cr,{to:C,replace:!0})}return s&&!a?P(F,{children:e}):l&&!f?P(F,{children:t||P(g,{stage:"validating-session"})}):P(F,{children:e})}import{Navigate as xr}from"react-router-dom";import{Fragment as O,jsx as A}from"react/jsx-runtime";function J({children:e,behavior:r="redirect-if-authenticated",redirectTo:t="/",loadingComponent:o}){let{isAuthenticated:a,isInitialized:s}=m();return s?r==="allow-all"?A(O,{children:e}):a?A(xr,{to:t,replace:!0}):A(O,{children:e}):A(O,{children:o||A(g,{stage:"validating-session"})})}import{createContext as Pr,useContext as Ar,useEffect as Ir,useRef as $,useState as N}from"react";import{Fragment as vr,jsx as Q}from"react/jsx-runtime";var X=Pr(void 0),hr=({config:e,children:r,fallback:t=null,onInitialized:o,onError:a})=>{let[s,y]=N(!1),[l,f]=N(!1),[u,c]=N(null),C=$(!1),T=$(!1);Ir(()=>{C.current||(S.registerHighPriorityInitializer(),C.current=!0),T.current||(T.current=!0,(async()=>{f(!0),c(null);try{let d=G({publicApiKey:e?.publicApiKey,env:e?.env,enableDebug:e?.enableLogging});if(!d.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");let v=d.env||"prod";p.setEnvironment(v),await S.initialize({priority:"HIGH",publicApiKey:d.publicApiKey,env:d.env||"prod",enableLogging:e?.enableLogging,requestedBy:"CrudifyInitializer"}),y(!0),f(!1),o&&o()}catch(d){let v=d instanceof Error?d:new Error(String(d));c(v),f(!1),a&&a(v)}})())},[e?.publicApiKey,e?.env,e?.enableLogging,o,a]);let k={isInitialized:s,isInitializing:l,error:u};return l&&t?Q(vr,{children:t}):(u&&p.error("[CrudifyInitializer] Initialization failed",u),Q(X.Provider,{value:k,children:r}))},Tr=()=>{let e=Ar(X);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};import i from"@nocios/crudify-admin-sdk";var Z=!1,I=null,h=null;async function Sr(){let r=await x.getInstance().getTokenInfo(),t=r?.apiEndpointAdmin,o=r?.apiKeyEndpointAdmin;return t&&o?{apiUrl:t,apiKey:o}:D.waitForCredentials()}async function Er(){if(!Z)return I||(I=(async()=>{try{let e=x.getInstance(),{apiUrl:r,apiKey:t}=await Sr();h=(await e.getTokenInfo())?.crudifyTokens?.accessToken||null,i.init({url:r,apiKey:t,getAdditionalHeaders:()=>h?{Authorization:`Bearer ${h}`}:{}}),Z=!0}catch(e){throw I=null,p.error("[crudifyAdminWrapper] Initialization failed",e instanceof Error?e:{message:String(e)}),e}})(),I)}async function n(e){try{await Er();let r=x.getInstance();h=(await r.getTokenInfo())?.crudifyTokens?.accessToken||null;let o=await e(),a=o.errors&&(typeof o.errors=="string"&&o.errors.includes("401")||Array.isArray(o.errors)&&o.errors.some(s=>typeof s=="string"&&s.includes("401")));return!o.success&&a?await r.refreshTokens()?(h=(await r.getTokenInfo())?.crudifyTokens?.accessToken||null,await e()):(p.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),o):o}catch(r){return p.error("[crudifyAdmin] Operation error",r instanceof Error?r:{message:String(r)}),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var kr={listModules:()=>n(()=>i.listModules()),getModule:e=>n(()=>i.getModule(e)),createModule:e=>n(()=>i.createModule(e)),editModule:(e,r)=>n(()=>i.editModule(e,r)),deleteModule:e=>n(()=>i.deleteModule(e)),activateModule:e=>n(()=>i.activateModule(e)),deactivateModule:e=>n(()=>i.deactivateModule(e)),getModuleVersions:e=>n(()=>i.getModuleVersions(e)),listActions:e=>n(()=>i.listActions(e)),getAction:e=>n(()=>i.getAction(e)),createAction:e=>n(()=>i.createAction(e)),editAction:(e,r)=>n(()=>i.editAction(e,r)),deleteAction:e=>n(()=>i.deleteAction(e)),activateAction:e=>n(()=>i.activateAction(e)),deactivateAction:e=>n(()=>i.deactivateAction(e)),getActionVersions:e=>n(()=>i.getActionVersions(e)),getActionsByProfile:e=>n(()=>i.getActionsByProfile(e)),updateActionsProfiles:e=>n(()=>i.updateActionsProfiles(e)),calculatePermissions:e=>n(()=>i.calculatePermissions(e))};export{Y as AuthRoute,j as CRITICAL_TRANSLATIONS,de as CrossTabSyncManager,He as CrudiaAutoGenerate,Je as CrudiaFileField,$e as CrudiaMarkdownField,qe as CrudifyInitializationManager,hr as CrudifyInitializer,Oe as CrudifyLogin,Pe as CrudifyProvider,ar as CrudifyThemeProvider,Fe as DEFAULT_PASSWORD_RULES,Te as ERROR_CODES,ve as ERROR_SEVERITY_MAP,Re as GlobalNotificationProvider,J as GuestRoute,_e as LoginComponent,De as POLICY_ACTIONS,Ke as PREFERRED_POLICY_ORDER,we as PasswordRequirements,Ve as Policies,_ as ProtectedRoute,he as SessionDebugInfo,g as SessionLoadingScreen,x as SessionManager,Ie as SessionProvider,Be as SessionStatus,ae as TokenStorage,oe as TranslationService,ne as TranslationsProvider,Ge as UserProfileDisplay,Ue as allPasswordRulesPassed,gr as clearCorruptedTokens,ce as createErrorTranslator,fe as crossTabSync,
|
|
6
|
+
`});function g({stage:e="loading",message:r}){let o=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return K(dr,{children:[E(cr,{}),K("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:[E("div",{style:lr}),E("p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:o})]})]})}import{Fragment as V,jsx as R}from"react/jsx-runtime";function _({children:e,loadingComponent:r,loginPath:t="/login"}){let{isAuthenticated:o,isLoading:a,isLoggingOut:s,isInitialized:y,tokens:l,error:f}=m(),u=fr();if(!y||a&&!s)return R(V,{children:r||R(g,{stage:"validating-session"})});let c=o&&l?.accessToken&&l.accessToken.length>0;if(f||!o||!c){if(s)return R(w,{to:t,replace:!0});let C=u.pathname+u.search;if(u.pathname===t||u.pathname.startsWith(t))return R(w,{to:t,replace:!0});let T=z(C),k=encodeURIComponent(T);return R(w,{to:`${t}?redirect=${k}`,replace:!0})}return R(V,{children:e})}import{useState as q,useEffect as yr}from"react";import{Navigate as Cr,useLocation as Rr}from"react-router-dom";var L="crudify_tokens",mr="crudify_enc_key";function B(){try{let e=localStorage.getItem(L);return e?e.startsWith("v2:")&&e.length>50:!1}catch{return!1}}function W(){try{let e=localStorage.getItem(mr);return e!==null&&e.length>=32}catch{return!1}}function U(){return B()&&W()}function H(){try{let e=localStorage.getItem(L);return e?!e.startsWith("v2:")||e.length<50:!1}catch{return!1}}function gr(){try{H()&&localStorage.removeItem(L)}catch{}}import{Fragment as F,jsx as P}from"react/jsx-runtime";function Y({children:e,redirectTo:r="/",loadingComponent:t,initTimeout:o=3e3}){let{isAuthenticated:a,isInitialized:s}=m(),y=Rr(),[l]=q(()=>U()),[f,u]=q(!1);if(yr(()=>{if(!s&&l){let c=setTimeout(()=>{u(!0)},o);return()=>clearTimeout(c)}},[s,l,o]),s&&a){let c=new URLSearchParams(y.search),C=b(c,r);return P(Cr,{to:C,replace:!0})}return s&&!a?P(F,{children:e}):l&&!f?P(F,{children:t||P(g,{stage:"validating-session"})}):P(F,{children:e})}import{Navigate as xr}from"react-router-dom";import{Fragment as O,jsx as A}from"react/jsx-runtime";function J({children:e,behavior:r="redirect-if-authenticated",redirectTo:t="/",loadingComponent:o}){let{isAuthenticated:a,isInitialized:s}=m();return s?r==="allow-all"?A(O,{children:e}):a?A(xr,{to:t,replace:!0}):A(O,{children:e}):A(O,{children:o||A(g,{stage:"validating-session"})})}import{createContext as Pr,useContext as Ar,useEffect as Ir,useRef as $,useState as N}from"react";import{Fragment as vr,jsx as Q}from"react/jsx-runtime";var X=Pr(void 0),hr=({config:e,children:r,fallback:t=null,onInitialized:o,onError:a})=>{let[s,y]=N(!1),[l,f]=N(!1),[u,c]=N(null),C=$(!1),T=$(!1);Ir(()=>{C.current||(S.registerHighPriorityInitializer(),C.current=!0),T.current||(T.current=!0,(async()=>{f(!0),c(null);try{let d=G({publicApiKey:e?.publicApiKey,env:e?.env,enableDebug:e?.enableLogging});if(!d.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");let v=d.env||"prod";p.setEnvironment(v),await S.initialize({priority:"HIGH",publicApiKey:d.publicApiKey,env:d.env||"prod",enableLogging:e?.enableLogging,requestedBy:"CrudifyInitializer"}),y(!0),f(!1),o&&o()}catch(d){let v=d instanceof Error?d:new Error(String(d));c(v),f(!1),a&&a(v)}})())},[e?.publicApiKey,e?.env,e?.enableLogging,o,a]);let k={isInitialized:s,isInitializing:l,error:u};return l&&t?Q(vr,{children:t}):(u&&p.error("[CrudifyInitializer] Initialization failed",u),Q(X.Provider,{value:k,children:r}))},Tr=()=>{let e=Ar(X);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};import i from"@nocios/crudify-admin-sdk";var Z=!1,I=null,h=null;async function Sr(){let r=await x.getInstance().getTokenInfo(),t=r?.apiEndpointAdmin,o=r?.apiKeyEndpointAdmin;return t&&o?{apiUrl:t,apiKey:o}:D.waitForCredentials()}async function Er(){if(!Z)return I||(I=(async()=>{try{let e=x.getInstance(),{apiUrl:r,apiKey:t}=await Sr();h=(await e.getTokenInfo())?.crudifyTokens?.accessToken||null,i.init({url:r,apiKey:t,getAdditionalHeaders:()=>h?{Authorization:`Bearer ${h}`}:{}}),Z=!0}catch(e){throw I=null,p.error("[crudifyAdminWrapper] Initialization failed",e instanceof Error?e:{message:String(e)}),e}})(),I)}async function n(e){try{await Er();let r=x.getInstance();h=(await r.getTokenInfo())?.crudifyTokens?.accessToken||null;let o=await e(),a=o.errors&&(typeof o.errors=="string"&&o.errors.includes("401")||Array.isArray(o.errors)&&o.errors.some(s=>typeof s=="string"&&s.includes("401")));return!o.success&&a?await r.refreshTokens()?(h=(await r.getTokenInfo())?.crudifyTokens?.accessToken||null,await e()):(p.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),o):o}catch(r){return p.error("[crudifyAdmin] Operation error",r instanceof Error?r:{message:String(r)}),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var kr={listModules:()=>n(()=>i.listModules()),getModule:e=>n(()=>i.getModule(e)),createModule:e=>n(()=>i.createModule(e)),editModule:(e,r)=>n(()=>i.editModule(e,r)),deleteModule:e=>n(()=>i.deleteModule(e)),activateModule:e=>n(()=>i.activateModule(e)),deactivateModule:e=>n(()=>i.deactivateModule(e)),getModuleVersions:e=>n(()=>i.getModuleVersions(e)),listActions:e=>n(()=>i.listActions(e)),getAction:e=>n(()=>i.getAction(e)),createAction:e=>n(()=>i.createAction(e)),editAction:(e,r)=>n(()=>i.editAction(e,r)),deleteAction:e=>n(()=>i.deleteAction(e)),activateAction:e=>n(()=>i.activateAction(e)),deactivateAction:e=>n(()=>i.deactivateAction(e)),getActionVersions:e=>n(()=>i.getActionVersions(e)),getActionsByProfile:e=>n(()=>i.getActionsByProfile(e)),updateActionsProfiles:e=>n(()=>i.updateActionsProfiles(e)),calculatePermissions:e=>n(()=>i.calculatePermissions(e))};export{Y as AuthRoute,j as CRITICAL_TRANSLATIONS,de as CrossTabSyncManager,He as CrudiaAutoGenerate,Je as CrudiaFileField,$e as CrudiaMarkdownField,qe as CrudifyInitializationManager,hr as CrudifyInitializer,vo as CrudifyInstance,Oe as CrudifyLogin,Pe as CrudifyProvider,ar as CrudifyThemeProvider,Fe as DEFAULT_PASSWORD_RULES,Te as ERROR_CODES,ve as ERROR_SEVERITY_MAP,Re as GlobalNotificationProvider,J as GuestRoute,_e as LoginComponent,De as POLICY_ACTIONS,Ke as PREFERRED_POLICY_ORDER,we as PasswordRequirements,Ve as Policies,_ as ProtectedRoute,he as SessionDebugInfo,g as SessionLoadingScreen,x as SessionManager,Ie as SessionProvider,Be as SessionStatus,ae as TokenStorage,oe as TranslationService,ne as TranslationsProvider,Ge as UserProfileDisplay,Ue as allPasswordRulesPassed,gr as clearCorruptedTokens,ce as createErrorTranslator,fe as crossTabSync,kr as crudifyAdmin,S as crudifyInitManager,ge as decodeJwtSafely,Le as evaluatePasswordRules,b as extractSafeRedirectFromUrl,ee as getCriticalLanguages,re as getCriticalTranslations,ye as getCurrentUserEmail,ke as getErrorMessage,ze as handleCrudifyError,H as hasCorruptedTokens,W as hasEncryptionKeyHash,B as hasStoredTokens,Ce as isTokenExpired,p as logger,Se as parseApiError,Me as parseJavaScriptError,Ee as parseTransactionError,M as resolveTenantConfig,er as secureLocalStorage,je as secureSessionStorage,U as shouldWaitForInitialization,le as translateError,ue as translateErrorCode,pe as translateErrorCodes,te as translationService,Xe as useAuth,We as useAutoGenerate,Ae as useCrudify,Tr as useCrudifyInitializer,rr as useCrudifyWithNotifications,Ze as useData,Ye as useFileUpload,xe as useGlobalNotification,me as useSession,m as useSessionContext,ie as useTenantConfig,se as useTranslations,Qe as useUserData,Ne as useUserProfile,z as validateInternalRedirect,be as validateTrustedRedirect};
|