@nocios/crudify-ui 5.0.20 → 5.0.26
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/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/coverage-final.json +79 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +476 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/dist/chunk-4AEUOTN2.js +1 -0
- package/dist/{chunk-OK5STXOA.js → chunk-4R472VF6.js} +1 -1
- package/dist/{chunk-OZDU2F2L.js → chunk-BBA4D4JY.js} +1 -1
- package/dist/{chunk-VFICZQ4N.mjs → chunk-I2GWDIIJ.mjs} +1 -1
- package/dist/{chunk-YQROLB5L.mjs → chunk-WVEMQ7DL.mjs} +1 -1
- package/dist/chunk-Z2GYZNAL.mjs +1 -0
- package/dist/components.js +1 -1
- package/dist/components.mjs +1 -1
- package/dist/hooks.d.mts +1 -1
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +1 -1
- package/dist/hooks.mjs +1 -1
- package/dist/{index-SS8n9MbX.d.mts → index-8iJiQ3bI.d.mts} +43 -30
- package/dist/{index-Dp5wNqtm.d.ts → index-BaP3eAZd.d.ts} +43 -30
- 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/vitest.config.ts +1 -1
- package/coverage/.tmp/coverage-76.json +0 -1
- package/coverage/.tmp/coverage-77.json +0 -1
- package/dist/chunk-SNBJN4HI.mjs +0 -1
- package/dist/chunk-YWIPJYNH.js +0 -1
package/dist/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk4R472VF6js = require('./chunk-4R472VF6.js');var _chunk4AEUOTN2js = require('./chunk-4AEUOTN2.js');require('./chunk-NSV6ECYO.js');require('./chunk-MFYHD6S5.js');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');function z({showBelowMinutes:f=5,position:m="bottom-right",colorNormal:c="#ed6c02",colorCritical:x="#d32f2f",style:u,className:g}={}){let{isAuthenticated:o,tokens:t}=_chunk4AEUOTN2js.c.call(void 0, ),[i,y]=_react.useState.call(void 0, 0),[h,C]=_react.useState.call(void 0, 100);if(_react.useEffect.call(void 0, ()=>{if(!o||!t)return;let v=setInterval(()=>{let P=Date.now(),p=t.expiresAt-P,w=900*1e3;y(Math.max(0,p)),C(Math.max(0,p/w*100))},1e3);return()=>clearInterval(v)},[o,t]),!o||i<=0)return null;let e=Math.floor(i/6e4),S=Math.floor(i%6e4/1e3);if(e>=f)return null;let s=e<2,a=s?x:c,b={"top-left":{top:"16px",left:"16px"},"top-right":{top:"16px",right:"16px"},"bottom-left":{bottom:"16px",left:"16px"},"bottom-right":{bottom:"16px",right:"16px"}}[m];return _jsxruntime.jsxs.call(void 0, "div",{className:g,style:{position:"fixed",...b,padding:"12px 16px",backgroundColor:"white",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",minWidth:"200px",zIndex:9999,fontFamily:"system-ui, -apple-system, sans-serif",...u},children:[_jsxruntime.jsxs.call(void 0, "div",{style:{marginBottom:"8px"},children:[_jsxruntime.jsx.call(void 0, "div",{style:{fontSize:"12px",fontWeight:600,color:a,marginBottom:"4px"},children:s?"\u26A0\uFE0F Sesi\xF3n expirando":"\u23F0 Sesi\xF3n por expirar"}),_jsxruntime.jsxs.call(void 0, "div",{style:{fontSize:"14px",color:"#333",fontWeight:500},children:[e,":",S.toString().padStart(2,"0")]})]}),_jsxruntime.jsx.call(void 0, "div",{style:{width:"100%",height:"6px",backgroundColor:"#e0e0e0",borderRadius:"3px",overflow:"hidden"},children:_jsxruntime.jsx.call(void 0, "div",{style:{width:`${h}%`,height:"100%",backgroundColor:a,transition:"width 1s linear"}})})]})}exports.CrudiaAutoGenerate = _chunk4R472VF6js.o; exports.CrudiaFileField = _chunk4R472VF6js.p; exports.CrudiaMarkdownField = _chunk4R472VF6js.q; exports.CrudifyLogin = _chunk4R472VF6js.h; exports.GlobalNotificationProvider = _chunk4AEUOTN2js.d; exports.LoginComponent = _chunk4R472VF6js.m; exports.Policies = _chunk4R472VF6js.l; exports.SessionStatus = _chunk4R472VF6js.n; exports.SessionTimeIndicator = z; exports.UserProfileDisplay = _chunk4R472VF6js.i; exports.useGlobalNotification = _chunk4AEUOTN2js.e;
|
package/dist/components.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as N,i as T,l as M,m as k,n as G,o as L,p as A,q as R}from"./chunk-
|
|
1
|
+
import{h as N,i as T,l as M,m as k,n as G,o as L,p as A,q as R}from"./chunk-WVEMQ7DL.mjs";import{c as d,d as F,e as I}from"./chunk-Z2GYZNAL.mjs";import"./chunk-JAPL7EZJ.mjs";import"./chunk-MGJZTOEM.mjs";import{useEffect as B,useState as l}from"react";import{jsx as r,jsxs as n}from"react/jsx-runtime";function z({showBelowMinutes:f=5,position:m="bottom-right",colorNormal:c="#ed6c02",colorCritical:x="#d32f2f",style:u,className:g}={}){let{isAuthenticated:o,tokens:t}=d(),[i,y]=l(0),[h,C]=l(100);if(B(()=>{if(!o||!t)return;let v=setInterval(()=>{let P=Date.now(),p=t.expiresAt-P,w=900*1e3;y(Math.max(0,p)),C(Math.max(0,p/w*100))},1e3);return()=>clearInterval(v)},[o,t]),!o||i<=0)return null;let e=Math.floor(i/6e4),S=Math.floor(i%6e4/1e3);if(e>=f)return null;let s=e<2,a=s?x:c,b={"top-left":{top:"16px",left:"16px"},"top-right":{top:"16px",right:"16px"},"bottom-left":{bottom:"16px",left:"16px"},"bottom-right":{bottom:"16px",right:"16px"}}[m];return n("div",{className:g,style:{position:"fixed",...b,padding:"12px 16px",backgroundColor:"white",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",minWidth:"200px",zIndex:9999,fontFamily:"system-ui, -apple-system, sans-serif",...u},children:[n("div",{style:{marginBottom:"8px"},children:[r("div",{style:{fontSize:"12px",fontWeight:600,color:a,marginBottom:"4px"},children:s?"\u26A0\uFE0F Sesi\xF3n expirando":"\u23F0 Sesi\xF3n por expirar"}),n("div",{style:{fontSize:"14px",color:"#333",fontWeight:500},children:[e,":",S.toString().padStart(2,"0")]})]}),r("div",{style:{width:"100%",height:"6px",backgroundColor:"#e0e0e0",borderRadius:"3px",overflow:"hidden"},children:r("div",{style:{width:`${h}%`,height:"100%",backgroundColor:a,transition:"width 1s linear"}})})]})}export{L as CrudiaAutoGenerate,A as CrudiaFileField,R as CrudiaMarkdownField,N as CrudifyLogin,F as GlobalNotificationProvider,k as LoginComponent,M as Policies,G as SessionStatus,z as SessionTimeIndicator,T as UserProfileDisplay,I as useGlobalNotification};
|
package/dist/hooks.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { F as FileItem, v as FileStatus, d as SessionState, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, i as useUserData, q as useUserProfile } from './index-
|
|
1
|
+
export { F as FileItem, v as FileStatus, d as SessionState, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, i as useUserData, q as useUserProfile } from './index-8iJiQ3bI.mjs';
|
|
2
2
|
export { A as AutoGenerateConfig, d as UseAutoGenerateOptions, U as UseAutoGenerateReturn, c as useAutoGenerate } from './GlobalNotificationProvider-Zq18OkpI.mjs';
|
|
3
3
|
import './api-B4uXiHF0.mjs';
|
|
4
4
|
import 'react/jsx-runtime';
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { F as FileItem, v as FileStatus, d as SessionState, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, i as useUserData, q as useUserProfile } from './index-
|
|
1
|
+
export { F as FileItem, v as FileStatus, d as SessionState, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, i as useUserData, q as useUserProfile } from './index-BaP3eAZd.js';
|
|
2
2
|
export { A as AutoGenerateConfig, d as UseAutoGenerateOptions, U as UseAutoGenerateReturn, c as useAutoGenerate } from './GlobalNotificationProvider-Zq18OkpI.js';
|
|
3
3
|
import './api-B4uXiHF0.js';
|
|
4
4
|
import 'react/jsx-runtime';
|
package/dist/hooks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkBBA4D4JYjs = require('./chunk-BBA4D4JY.js');var _chunk4AEUOTN2js = require('./chunk-4AEUOTN2.js');require('./chunk-MFYHD6S5.js');exports.useAuth = _chunkBBA4D4JYjs.b; exports.useAutoGenerate = _chunk4AEUOTN2js.m; exports.useCrudifyWithNotifications = _chunkBBA4D4JYjs.d; exports.useData = _chunkBBA4D4JYjs.c; exports.useFileUpload = _chunk4AEUOTN2js.p; exports.useSession = _chunk4AEUOTN2js.c; exports.useUserData = _chunkBBA4D4JYjs.a; exports.useUserProfile = _chunk4AEUOTN2js.l;
|
package/dist/hooks.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as s,b as
|
|
1
|
+
import{a as s,b as p,c as u,d as a}from"./chunk-I2GWDIIJ.mjs";import{c as e,l as t,m as o,p as r}from"./chunk-Z2GYZNAL.mjs";import"./chunk-MGJZTOEM.mjs";export{p as useAuth,o as useAutoGenerate,a as useCrudifyWithNotifications,u as useData,r as useFileUpload,e as useSession,s as useUserData,t as useUserProfile};
|
|
@@ -269,6 +269,13 @@ declare class SessionManager {
|
|
|
269
269
|
private formatError;
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
+
/**
|
|
273
|
+
* Tipos e interfaces para el hook useSession
|
|
274
|
+
*/
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Estado del hook useSession
|
|
278
|
+
*/
|
|
272
279
|
type SessionState = {
|
|
273
280
|
isAuthenticated: boolean;
|
|
274
281
|
isLoading: boolean;
|
|
@@ -277,6 +284,9 @@ type SessionState = {
|
|
|
277
284
|
tokens: TokenData | null;
|
|
278
285
|
error: string | null;
|
|
279
286
|
};
|
|
287
|
+
/**
|
|
288
|
+
* Opciones de configuración para useSession
|
|
289
|
+
*/
|
|
280
290
|
type UseSessionOptions = {
|
|
281
291
|
autoRestore?: boolean;
|
|
282
292
|
enableLogging?: boolean;
|
|
@@ -289,45 +299,48 @@ type UseSessionOptions = {
|
|
|
289
299
|
publicApiKey?: string;
|
|
290
300
|
env?: "dev" | "stg" | "api" | "prod";
|
|
291
301
|
};
|
|
292
|
-
|
|
302
|
+
/**
|
|
303
|
+
* Retorno completo del hook useSession
|
|
304
|
+
*/
|
|
305
|
+
type UseSessionReturn = SessionState & {
|
|
293
306
|
login: (email: string, password: string) => Promise<LoginResult>;
|
|
294
307
|
logout: () => Promise<void>;
|
|
295
308
|
refreshTokens: () => Promise<boolean>;
|
|
296
309
|
clearError: () => void;
|
|
297
|
-
getTokenInfo: () => Promise<
|
|
298
|
-
isLoggedIn: boolean;
|
|
299
|
-
crudifyTokens: {
|
|
300
|
-
accessToken: string;
|
|
301
|
-
refreshToken: string;
|
|
302
|
-
expiresAt: number;
|
|
303
|
-
refreshExpiresAt: number;
|
|
304
|
-
isExpired: boolean;
|
|
305
|
-
isRefreshExpired: boolean;
|
|
306
|
-
isValid: boolean;
|
|
307
|
-
expiresIn: number;
|
|
308
|
-
willExpireSoon: boolean;
|
|
309
|
-
};
|
|
310
|
-
storageInfo: {
|
|
311
|
-
accessExpired: boolean;
|
|
312
|
-
refreshExpired: boolean;
|
|
313
|
-
accessExpiresIn: number;
|
|
314
|
-
refreshExpiresIn: number;
|
|
315
|
-
} | null;
|
|
316
|
-
hasValidTokens: boolean;
|
|
317
|
-
apiEndpointAdmin: string | undefined;
|
|
318
|
-
apiKeyEndpointAdmin: string | undefined;
|
|
319
|
-
}>;
|
|
310
|
+
getTokenInfo: () => Promise<TokenInfoResult>;
|
|
320
311
|
updateActivity: () => void;
|
|
321
312
|
isExpiringSoon: boolean;
|
|
322
313
|
expiresIn: number;
|
|
323
314
|
refreshExpiresIn: number;
|
|
324
|
-
isAuthenticated: boolean;
|
|
325
|
-
isLoading: boolean;
|
|
326
|
-
isLoggingOut: boolean;
|
|
327
|
-
isInitialized: boolean;
|
|
328
|
-
tokens: TokenData | null;
|
|
329
|
-
error: string | null;
|
|
330
315
|
};
|
|
316
|
+
/**
|
|
317
|
+
* Resultado de getTokenInfo
|
|
318
|
+
*/
|
|
319
|
+
type TokenInfoResult = {
|
|
320
|
+
crudifyTokens: {
|
|
321
|
+
accessToken: string | null;
|
|
322
|
+
refreshToken: string | null;
|
|
323
|
+
expiresAt: number;
|
|
324
|
+
refreshExpiresAt: number;
|
|
325
|
+
expiresIn: number;
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Hook de React para manejo de sesiones con Refresh Token Pattern
|
|
331
|
+
* Proporciona una API simple para manejar autenticación en componentes React
|
|
332
|
+
*
|
|
333
|
+
* @param options - Opciones de configuración del hook
|
|
334
|
+
* @returns Estado de sesión y funciones de control
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```tsx
|
|
338
|
+
* const { isAuthenticated, login, logout } = useSession({
|
|
339
|
+
* onSessionExpired: () => navigate('/login')
|
|
340
|
+
* });
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
declare function useSession(options?: UseSessionOptions): UseSessionReturn;
|
|
331
344
|
|
|
332
345
|
type SessionData = {
|
|
333
346
|
_id: string;
|
|
@@ -269,6 +269,13 @@ declare class SessionManager {
|
|
|
269
269
|
private formatError;
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
+
/**
|
|
273
|
+
* Tipos e interfaces para el hook useSession
|
|
274
|
+
*/
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Estado del hook useSession
|
|
278
|
+
*/
|
|
272
279
|
type SessionState = {
|
|
273
280
|
isAuthenticated: boolean;
|
|
274
281
|
isLoading: boolean;
|
|
@@ -277,6 +284,9 @@ type SessionState = {
|
|
|
277
284
|
tokens: TokenData | null;
|
|
278
285
|
error: string | null;
|
|
279
286
|
};
|
|
287
|
+
/**
|
|
288
|
+
* Opciones de configuración para useSession
|
|
289
|
+
*/
|
|
280
290
|
type UseSessionOptions = {
|
|
281
291
|
autoRestore?: boolean;
|
|
282
292
|
enableLogging?: boolean;
|
|
@@ -289,45 +299,48 @@ type UseSessionOptions = {
|
|
|
289
299
|
publicApiKey?: string;
|
|
290
300
|
env?: "dev" | "stg" | "api" | "prod";
|
|
291
301
|
};
|
|
292
|
-
|
|
302
|
+
/**
|
|
303
|
+
* Retorno completo del hook useSession
|
|
304
|
+
*/
|
|
305
|
+
type UseSessionReturn = SessionState & {
|
|
293
306
|
login: (email: string, password: string) => Promise<LoginResult>;
|
|
294
307
|
logout: () => Promise<void>;
|
|
295
308
|
refreshTokens: () => Promise<boolean>;
|
|
296
309
|
clearError: () => void;
|
|
297
|
-
getTokenInfo: () => Promise<
|
|
298
|
-
isLoggedIn: boolean;
|
|
299
|
-
crudifyTokens: {
|
|
300
|
-
accessToken: string;
|
|
301
|
-
refreshToken: string;
|
|
302
|
-
expiresAt: number;
|
|
303
|
-
refreshExpiresAt: number;
|
|
304
|
-
isExpired: boolean;
|
|
305
|
-
isRefreshExpired: boolean;
|
|
306
|
-
isValid: boolean;
|
|
307
|
-
expiresIn: number;
|
|
308
|
-
willExpireSoon: boolean;
|
|
309
|
-
};
|
|
310
|
-
storageInfo: {
|
|
311
|
-
accessExpired: boolean;
|
|
312
|
-
refreshExpired: boolean;
|
|
313
|
-
accessExpiresIn: number;
|
|
314
|
-
refreshExpiresIn: number;
|
|
315
|
-
} | null;
|
|
316
|
-
hasValidTokens: boolean;
|
|
317
|
-
apiEndpointAdmin: string | undefined;
|
|
318
|
-
apiKeyEndpointAdmin: string | undefined;
|
|
319
|
-
}>;
|
|
310
|
+
getTokenInfo: () => Promise<TokenInfoResult>;
|
|
320
311
|
updateActivity: () => void;
|
|
321
312
|
isExpiringSoon: boolean;
|
|
322
313
|
expiresIn: number;
|
|
323
314
|
refreshExpiresIn: number;
|
|
324
|
-
isAuthenticated: boolean;
|
|
325
|
-
isLoading: boolean;
|
|
326
|
-
isLoggingOut: boolean;
|
|
327
|
-
isInitialized: boolean;
|
|
328
|
-
tokens: TokenData | null;
|
|
329
|
-
error: string | null;
|
|
330
315
|
};
|
|
316
|
+
/**
|
|
317
|
+
* Resultado de getTokenInfo
|
|
318
|
+
*/
|
|
319
|
+
type TokenInfoResult = {
|
|
320
|
+
crudifyTokens: {
|
|
321
|
+
accessToken: string | null;
|
|
322
|
+
refreshToken: string | null;
|
|
323
|
+
expiresAt: number;
|
|
324
|
+
refreshExpiresAt: number;
|
|
325
|
+
expiresIn: number;
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Hook de React para manejo de sesiones con Refresh Token Pattern
|
|
331
|
+
* Proporciona una API simple para manejar autenticación en componentes React
|
|
332
|
+
*
|
|
333
|
+
* @param options - Opciones de configuración del hook
|
|
334
|
+
* @returns Estado de sesión y funciones de control
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```tsx
|
|
338
|
+
* const { isAuthenticated, login, logout } = useSession({
|
|
339
|
+
* onSessionExpired: () => navigate('/login')
|
|
340
|
+
* });
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
declare function useSession(options?: UseSessionOptions): UseSessionReturn;
|
|
331
344
|
|
|
332
345
|
type SessionData = {
|
|
333
346
|
_id: string;
|
package/dist/index.d.mts
CHANGED
|
@@ -5,7 +5,7 @@ import { d as CrudifyLoginConfig } from './CrudiaMarkdownField-8s252xsM.mjs';
|
|
|
5
5
|
export { B as BoxScreenType, a as CrudiaAutoGenerate, i as CrudiaAutoGenerateProps, b as CrudiaFileField, n as CrudiaFileFieldDeletionHandlers, j as CrudiaFileFieldProps, c as CrudiaMarkdownField, k as CrudiaMarkdownFieldProps, C as CrudifyLogin, e as CrudifyLoginProps, f as CrudifyLoginTranslations, L as LoginComponent, l as POLICY_ACTIONS, m as PREFERRED_POLICY_ORDER, P as Policies, h as PolicyAction, S as SessionStatus, g as UserLoginData, U as UserProfileDisplay } from './CrudiaMarkdownField-8s252xsM.mjs';
|
|
6
6
|
import React, { ReactNode } from 'react';
|
|
7
7
|
export { A as ApiError, C as CrudifyApiResponse, d as CrudifyOperationOptions, e as CrudifyRequestOptions, a as CrudifyTransactionResponse, F as ForgotPasswordRequest, J as JwtPayload, b as LoginRequest, L as LoginResponse, R as ResetPasswordRequest, g as TransactionInput, f as TransactionOperation, T as TransactionResponseData, U as UserProfile, V as ValidateCodeRequest, c as ValidationError } from './api-B4uXiHF0.mjs';
|
|
8
|
-
export { F as FileItem, v as FileStatus, L as LoginResult, N as NotificationOptions, a as SessionConfig, g as SessionDebugInfo, S as SessionManager, e as SessionProvider, h as SessionProviderProps, d as SessionState, c as StorageType, b as TokenData, T as TokenStorage, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, f as useSessionContext, i as useUserData, q as useUserProfile } from './index-
|
|
8
|
+
export { F as FileItem, v as FileStatus, L as LoginResult, N as NotificationOptions, a as SessionConfig, g as SessionDebugInfo, S as SessionManager, e as SessionProvider, h as SessionProviderProps, d as SessionState, c as StorageType, b as TokenData, T as TokenStorage, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, f as useSessionContext, i as useUserData, q as useUserProfile } from './index-8iJiQ3bI.mjs';
|
|
9
9
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
10
10
|
import { ThemeOptions } from '@mui/material';
|
|
11
11
|
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';
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { d as CrudifyLoginConfig } from './CrudiaMarkdownField-Dy2dVkBO.js';
|
|
|
5
5
|
export { B as BoxScreenType, a as CrudiaAutoGenerate, i as CrudiaAutoGenerateProps, b as CrudiaFileField, n as CrudiaFileFieldDeletionHandlers, j as CrudiaFileFieldProps, c as CrudiaMarkdownField, k as CrudiaMarkdownFieldProps, C as CrudifyLogin, e as CrudifyLoginProps, f as CrudifyLoginTranslations, L as LoginComponent, l as POLICY_ACTIONS, m as PREFERRED_POLICY_ORDER, P as Policies, h as PolicyAction, S as SessionStatus, g as UserLoginData, U as UserProfileDisplay } from './CrudiaMarkdownField-Dy2dVkBO.js';
|
|
6
6
|
import React, { ReactNode } from 'react';
|
|
7
7
|
export { A as ApiError, C as CrudifyApiResponse, d as CrudifyOperationOptions, e as CrudifyRequestOptions, a as CrudifyTransactionResponse, F as ForgotPasswordRequest, J as JwtPayload, b as LoginRequest, L as LoginResponse, R as ResetPasswordRequest, g as TransactionInput, f as TransactionOperation, T as TransactionResponseData, U as UserProfile, V as ValidateCodeRequest, c as ValidationError } from './api-B4uXiHF0.js';
|
|
8
|
-
export { F as FileItem, v as FileStatus, L as LoginResult, N as NotificationOptions, a as SessionConfig, g as SessionDebugInfo, S as SessionManager, e as SessionProvider, h as SessionProviderProps, d as SessionState, c as StorageType, b as TokenData, T as TokenStorage, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, f as useSessionContext, i as useUserData, q as useUserProfile } from './index-
|
|
8
|
+
export { F as FileItem, v as FileStatus, L as LoginResult, N as NotificationOptions, a as SessionConfig, g as SessionDebugInfo, S as SessionManager, e as SessionProvider, h as SessionProviderProps, d as SessionState, c as StorageType, b as TokenData, T as TokenStorage, n as UseAuthReturn, p as UseDataReturn, s as UseFileUploadOptions, t as UseFileUploadReturn, U as UseSessionOptions, k as UseUserDataOptions, j as UseUserDataReturn, l as UserData, m as useAuth, w as useCrudifyWithNotifications, o as useData, r as useFileUpload, u as useSession, f as useSessionContext, i as useUserData, q as useUserProfile } from './index-BaP3eAZd.js';
|
|
9
9
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
10
10
|
import { ThemeOptions } from '@mui/material';
|
|
11
11
|
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';
|
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
|
|
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 _chunk4R472VF6js = require('./chunk-4R472VF6.js');var _chunkBBA4D4JYjs = require('./chunk-BBA4D4JY.js');var _chunk4AEUOTN2js = require('./chunk-4AEUOTN2.js');var _chunk5HFI5CZ5js = require('./chunk-5HFI5CZ5.js');var _chunkNSV6ECYOjs = require('./chunk-NSV6ECYO.js');var _chunkMFYHD6S5js = require('./chunk-MFYHD6S5.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 _e=(e={})=>{try{let r=_chunkMFYHD6S5js.b.call(void 0, "theme");if(r){let o=JSON.parse(decodeURIComponent(r));return{...e,...o}}}catch(r){_chunkMFYHD6S5js.a.warn("Error parsing theme from cookie",r instanceof Error?{errorMessage:r.message}:{message:String(r)})}return e};function Be({children:e,defaultTheme:r={},disableCssBaseline:o=!1}){let t=_react.useMemo.call(void 0, ()=>{let a=_e(r);return _material.createTheme.call(void 0, a)},[r]);return _jsxruntime.jsxs.call(void 0, _material.ThemeProvider,{theme:t,children:[!o&&_jsxruntime.jsx.call(void 0, _material.CssBaseline,{}),e]})}var _reactrouterdom = require('react-router-dom');var We={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},Je=()=>_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 E({stage:e="loading",message:r}){let t=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, $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:We}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:t})]})]})}var Ye=/^[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]/,/\\/],T= exports.validateInternalRedirect =(e,r="/")=>{if(!e||typeof e!="string")return r;let o=e.trim();if(!o)return r;if(!o.startsWith("/"))return _chunkMFYHD6S5js.a.warn("Open redirect blocked (relative path)",{path:e}),r;if(!Ye.test(o))return _chunkMFYHD6S5js.a.warn("Open redirect blocked (invalid characters)",{path:e}),r;let t=o.toLowerCase();for(let n of Ze)if(n.test(t))return _chunkMFYHD6S5js.a.warn("Open redirect blocked (dangerous pattern)",{path:e}),r;let a=o.split("?")[0].split("/").filter(Boolean);if(a.length===0)return o;for(let n of a)if(n===".."||n.includes(":")||n.length>100)return _chunkMFYHD6S5js.a.warn("Open redirect blocked (suspicious path part)",{part:n}),r;return o},M= exports.extractSafeRedirectFromUrl =(e,r="/")=>{try{let t=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!t)return r;let a=decodeURIComponent(t);return T(a,r)}catch(o){return _chunkMFYHD6S5js.a.warn("Error parsing redirect parameter",o instanceof Error?{errorMessage:o.message}:{message:String(o)}),r}};function F({children:e,loadingComponent:r,loginPath:o="/login"}){let{isAuthenticated:t,isLoading:a,isLoggingOut:n,isInitialized:f,tokens:c,error:d}=_chunkYWIPJYNHjs.j.call(void 0, ),u=_reactrouterdom.useLocation.call(void 0, );if(console.error("[ProtectedRoute] Render - state:",{isAuthenticated:t,isLoading:a,isLoggingOut:n,isInitialized:f,hasTokens:!!c,error:d,locationPathname:u.pathname}),!f||a&&!n)return console.error("[ProtectedRoute] Showing loading screen"),_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:r||_jsxruntime.jsx.call(void 0, E,{stage:"validating-session"})});let R=t&&_optionalChain([c, 'optionalAccess', _2 => _2.accessToken])&&c.accessToken.length>0;if(d||!t||!R){if(c&&(!c.accessToken||c.accessToken.length===0)&&localStorage.removeItem("crudify_tokens"),n)return console.error("[ProtectedRoute] isLoggingOut=true -> Navigating to",o,"WITHOUT redirect param"),_jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:o,replace:!0});let x=u.pathname+u.search,C=T(x),I=encodeURIComponent(C);return console.error("[ProtectedRoute] isLoggingOut=false -> Navigating to",`${o}?redirect=${I}`),_jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${o}?redirect=${I}`,replace:!0})}return console.error("[ProtectedRoute] User authenticated - rendering children"),_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function D({children:e,redirectTo:r="/"}){let{isAuthenticated:o}=_chunkYWIPJYNHjs.j.call(void 0, ),t=_reactrouterdom.useLocation.call(void 0, );if(o){let a=new URLSearchParams(t.search),n=M(a,r);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:n,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var V=_react.createContext.call(void 0, void 0),ir= exports.CrudifyInitializer =({config:e,children:r,fallback:o=null,onInitialized:t,onError:a})=>{let[n,f]=_react.useState.call(void 0, !1),[c,d]=_react.useState.call(void 0, !1),[u,R]=_react.useState.call(void 0, null),x=_react.useRef.call(void 0, !1),C=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{x.current||(_chunkYWIPJYNHjs.o.registerHighPriorityInitializer(),x.current=!0),C.current||(C.current=!0,(async()=>{d(!0),R(null);try{let l=_chunkMFYHD6S5js.c.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(!l.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");let h=l.env||"prod";_chunkMFYHD6S5js.a.setEnvironment(h),await _chunkYWIPJYNHjs.o.initialize({priority:"HIGH",publicApiKey:l.publicApiKey,env:l.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _6 => _6.enableLogging]),requestedBy:"CrudifyInitializer"}),f(!0),d(!1),t&&t()}catch(l){let h=l instanceof Error?l:new Error(String(l));R(h),d(!1),a&&a(h)}})())},[_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),_optionalChain([e, 'optionalAccess', _8 => _8.env]),_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging]),t,a]);let I={isInitialized:n,isInitializing:c,error:u};return c&&o?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:o}):(u&&_chunkMFYHD6S5js.a.error("[CrudifyInitializer] Initialization failed",u),_jsxruntime.jsx.call(void 0, V.Provider,{value:I,children:r}))},nr= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, V);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadmin = require('@nocios/crudify-admin'); var _crudifyadmin2 = _interopRequireDefault(_crudifyadmin);var _=!1,A=null,P=null;async function ar(){let r=await _chunkYWIPJYNHjs.b.getInstance().getTokenInfo(),o=_optionalChain([r, 'optionalAccess', _10 => _10.apiEndpointAdmin]),t=_optionalChain([r, 'optionalAccess', _11 => _11.apiKeyEndpointAdmin]);return o&&t?{apiUrl:o,apiKey:t}:_chunkYWIPJYNHjs.f.waitForCredentials()}async function pr(){if(!_)return A||(A=(async()=>{try{let e=_chunkYWIPJYNHjs.b.getInstance(),{apiUrl:r,apiKey:o}=await ar();P=await _asyncOptionalChain([(await e.getTokenInfo()), 'optionalAccess', async _12 => _12.crudifyTokens, 'optionalAccess', async _13 => _13.accessToken])||null,_crudifyadmin2.default.init({url:r,apiKey:o,getAdditionalHeaders:()=>P?{Authorization:`Bearer ${P}`}:{}}),_=!0}catch(e){throw A=null,_chunkMFYHD6S5js.a.error("[crudifyAdminWrapper] Initialization failed",e instanceof Error?e:{message:String(e)}),e}})(),A)}async function s(e){try{await pr();let r=_chunkYWIPJYNHjs.b.getInstance();P=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _14 => _14.crudifyTokens, 'optionalAccess', async _15 => _15.accessToken])||null;let t=await e(),a=t.errors&&(typeof t.errors=="string"&&t.errors.includes("401")||Array.isArray(t.errors)&&t.errors.some(n=>typeof n=="string"&&n.includes("401")));return!t.success&&a?await r.refreshTokens()?(P=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _16 => _16.crudifyTokens, 'optionalAccess', async _17 => _17.accessToken])||null,await e()):(_chunkMFYHD6S5js.a.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),t):t}catch(r){return _chunkMFYHD6S5js.a.error("[crudifyAdmin] Operation error",r instanceof Error?r:{message:String(r)}),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var cr={listModules:()=>s(()=>_crudifyadmin2.default.listModules()),getModule:e=>s(()=>_crudifyadmin2.default.getModule(e)),createModule:e=>s(()=>_crudifyadmin2.default.createModule(e)),editModule:(e,r)=>s(()=>_crudifyadmin2.default.editModule(e,r)),deleteModule:e=>s(()=>_crudifyadmin2.default.deleteModule(e)),activateModule:e=>s(()=>_crudifyadmin2.default.activateModule(e)),deactivateModule:e=>s(()=>_crudifyadmin2.default.deactivateModule(e)),getModuleVersions:e=>s(()=>_crudifyadmin2.default.getModuleVersions(e)),listActions:e=>s(()=>_crudifyadmin2.default.listActions(e)),getAction:e=>s(()=>_crudifyadmin2.default.getAction(e)),createAction:e=>s(()=>_crudifyadmin2.default.createAction(e)),editAction:(e,r)=>s(()=>_crudifyadmin2.default.editAction(e,r)),deleteAction:e=>s(()=>_crudifyadmin2.default.deleteAction(e)),activateAction:e=>s(()=>_crudifyadmin2.default.activateAction(e)),deactivateAction:e=>s(()=>_crudifyadmin2.default.deactivateAction(e)),getActionVersions:e=>s(()=>_crudifyadmin2.default.getActionVersions(e)),getActionsByProfile:e=>s(()=>_crudifyadmin2.default.getActionsByProfile(e)),updateActionsProfiles:e=>s(()=>_crudifyadmin2.default.updateActionsProfiles(e)),calculatePermissions:e=>s(()=>_crudifyadmin2.default.calculatePermissions(e))};exports.AuthRoute = D; exports.CRITICAL_TRANSLATIONS = _chunkOK5STXOAjs.a; exports.CrudiaAutoGenerate = _chunkOK5STXOAjs.o; exports.CrudiaFileField = _chunkOK5STXOAjs.p; exports.CrudiaMarkdownField = _chunkOK5STXOAjs.q; exports.CrudifyInitializationManager = _chunkYWIPJYNHjs.n; exports.CrudifyInitializer = ir; exports.CrudifyLogin = _chunkOK5STXOAjs.h; exports.CrudifyProvider = _chunkYWIPJYNHjs.g; exports.CrudifyThemeProvider = Be; exports.ERROR_CODES = _chunkNSV6ECYOjs.a; exports.ERROR_SEVERITY_MAP = _chunkNSV6ECYOjs.b; exports.GlobalNotificationProvider = _chunkYWIPJYNHjs.d; exports.LoginComponent = _chunkOK5STXOAjs.m; exports.POLICY_ACTIONS = _chunkOK5STXOAjs.j; exports.PREFERRED_POLICY_ORDER = _chunkOK5STXOAjs.k; exports.Policies = _chunkOK5STXOAjs.l; exports.ProtectedRoute = F; exports.SessionDebugInfo = _chunkYWIPJYNHjs.k; exports.SessionLoadingScreen = E; exports.SessionManager = _chunkYWIPJYNHjs.b; exports.SessionProvider = _chunkYWIPJYNHjs.i; exports.SessionStatus = _chunkOK5STXOAjs.n; exports.TokenStorage = _chunkYWIPJYNHjs.a; exports.TranslationService = _chunkOK5STXOAjs.d; exports.TranslationsProvider = _chunkOK5STXOAjs.f; exports.UserProfileDisplay = _chunkOK5STXOAjs.i; exports.createErrorTranslator = _chunkMFYHD6S5js.o; exports.crudify = _crudifybrowser2.default; exports.crudifyAdmin = cr; exports.crudifyInitManager = _chunkYWIPJYNHjs.o; exports.decodeJwtSafely = _chunkMFYHD6S5js.q; exports.extractSafeRedirectFromUrl = M; exports.getCookie = _chunkMFYHD6S5js.b; exports.getCriticalLanguages = _chunkOK5STXOAjs.b; exports.getCriticalTranslations = _chunkOK5STXOAjs.c; exports.getCurrentUserEmail = _chunkMFYHD6S5js.r; exports.getErrorMessage = _chunkNSV6ECYOjs.e; exports.handleCrudifyError = _chunkNSV6ECYOjs.g; exports.isTokenExpired = _chunkMFYHD6S5js.s; exports.logger = _chunkMFYHD6S5js.a; exports.parseApiError = _chunkNSV6ECYOjs.c; exports.parseJavaScriptError = _chunkNSV6ECYOjs.f; exports.parseTransactionError = _chunkNSV6ECYOjs.d; exports.secureLocalStorage = _chunk5HFI5CZ5js.b; exports.secureSessionStorage = _chunk5HFI5CZ5js.a; exports.translateError = _chunkMFYHD6S5js.n; exports.translateErrorCode = _chunkMFYHD6S5js.l; exports.translateErrorCodes = _chunkMFYHD6S5js.m; exports.translationService = _chunkOK5STXOAjs.e; exports.useAuth = _chunkOZDU2F2Ljs.b; exports.useAutoGenerate = _chunkYWIPJYNHjs.m; exports.useCrudify = _chunkYWIPJYNHjs.h; exports.useCrudifyInitializer = nr; exports.useCrudifyWithNotifications = _chunkOZDU2F2Ljs.d; exports.useData = _chunkOZDU2F2Ljs.c; exports.useFileUpload = _chunkYWIPJYNHjs.p; exports.useGlobalNotification = _chunkYWIPJYNHjs.e; exports.useSession = _chunkYWIPJYNHjs.c; exports.useSessionContext = _chunkYWIPJYNHjs.j; exports.useTranslations = _chunkOK5STXOAjs.g; exports.useUserData = _chunkOZDU2F2Ljs.a; exports.useUserProfile = _chunkYWIPJYNHjs.l; exports.validateInternalRedirect = T;
|
|
6
|
+
`});function E({stage:e="loading",message:r}){let t=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, Je,{}),_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:We}),_jsxruntime.jsx.call(void 0, "p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:t})]})]})}var Ye=/^[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]/,/\\/],v= exports.validateInternalRedirect =(e,r="/")=>{if(!e||typeof e!="string")return r;let o=e.trim();if(!o)return r;if(!o.startsWith("/"))return _chunkMFYHD6S5js.a.warn("Open redirect blocked (relative path)",{path:e}),r;if(!Ye.test(o))return _chunkMFYHD6S5js.a.warn("Open redirect blocked (invalid characters)",{path:e}),r;let t=o.toLowerCase();for(let s of Ze)if(s.test(t))return _chunkMFYHD6S5js.a.warn("Open redirect blocked (dangerous pattern)",{path:e}),r;let a=o.split("?")[0].split("/").filter(Boolean);if(a.length===0)return o;for(let s of a)if(s===".."||s.includes(":")||s.length>100)return _chunkMFYHD6S5js.a.warn("Open redirect blocked (suspicious path part)",{part:s}),r;return o},M= exports.extractSafeRedirectFromUrl =(e,r="/")=>{try{let t=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!t)return r;let a=decodeURIComponent(t);return v(a,r)}catch(o){return _chunkMFYHD6S5js.a.warn("Error parsing redirect parameter",o instanceof Error?{errorMessage:o.message}:{message:String(o)}),r}};function F({children:e,loadingComponent:r,loginPath:o="/login"}){let{isAuthenticated:t,isLoading:a,isLoggingOut:s,isInitialized:x,tokens:c,error:f}=_chunk4AEUOTN2js.j.call(void 0, ),l=_reactrouterdom.useLocation.call(void 0, );if(!x||a&&!s)return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:r||_jsxruntime.jsx.call(void 0, E,{stage:"validating-session"})});let C=t&&_optionalChain([c, 'optionalAccess', _2 => _2.accessToken])&&c.accessToken.length>0;if(f||!t||!C){if(c&&(!c.accessToken||c.accessToken.length===0)&&localStorage.removeItem("crudify_tokens"),s)return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:o,replace:!0});let R=l.pathname+l.search;if(l.pathname===o||l.pathname.startsWith(o))return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:o,replace:!0});let P=v(R),T=encodeURIComponent(P);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:`${o}?redirect=${T}`,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}function D({children:e,redirectTo:r="/"}){let{isAuthenticated:o}=_chunk4AEUOTN2js.j.call(void 0, ),t=_reactrouterdom.useLocation.call(void 0, );if(o){let a=new URLSearchParams(t.search),s=M(a,r);return _jsxruntime.jsx.call(void 0, _reactrouterdom.Navigate,{to:s,replace:!0})}return _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:e})}var V=_react.createContext.call(void 0, void 0),ir= exports.CrudifyInitializer =({config:e,children:r,fallback:o=null,onInitialized:t,onError:a})=>{let[s,x]=_react.useState.call(void 0, !1),[c,f]=_react.useState.call(void 0, !1),[l,C]=_react.useState.call(void 0, null),R=_react.useRef.call(void 0, !1),P=_react.useRef.call(void 0, !1);_react.useEffect.call(void 0, ()=>{R.current||(_chunk4AEUOTN2js.o.registerHighPriorityInitializer(),R.current=!0),P.current||(P.current=!0,(async()=>{f(!0),C(null);try{let u=_chunkMFYHD6S5js.c.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(!u.publicApiKey)throw new Error("Crudify configuration missing. Please provide publicApiKey via props or ensure cookies are set by Lambda.");let I=u.env||"prod";_chunkMFYHD6S5js.a.setEnvironment(I),await _chunk4AEUOTN2js.o.initialize({priority:"HIGH",publicApiKey:u.publicApiKey,env:u.env||"prod",enableLogging:_optionalChain([e, 'optionalAccess', _6 => _6.enableLogging]),requestedBy:"CrudifyInitializer"}),x(!0),f(!1),t&&t()}catch(u){let I=u instanceof Error?u:new Error(String(u));C(I),f(!1),a&&a(I)}})())},[_optionalChain([e, 'optionalAccess', _7 => _7.publicApiKey]),_optionalChain([e, 'optionalAccess', _8 => _8.env]),_optionalChain([e, 'optionalAccess', _9 => _9.enableLogging]),t,a]);let T={isInitialized:s,isInitializing:c,error:l};return c&&o?_jsxruntime.jsx.call(void 0, _jsxruntime.Fragment,{children:o}):(l&&_chunkMFYHD6S5js.a.error("[CrudifyInitializer] Initialization failed",l),_jsxruntime.jsx.call(void 0, V.Provider,{value:T,children:r}))},nr= exports.useCrudifyInitializer =()=>{let e=_react.useContext.call(void 0, V);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};var _crudifyadmin = require('@nocios/crudify-admin'); var _crudifyadmin2 = _interopRequireDefault(_crudifyadmin);var _=!1,y=null,A=null;async function ar(){let r=await _chunk4AEUOTN2js.b.getInstance().getTokenInfo(),o=_optionalChain([r, 'optionalAccess', _10 => _10.apiEndpointAdmin]),t=_optionalChain([r, 'optionalAccess', _11 => _11.apiKeyEndpointAdmin]);return o&&t?{apiUrl:o,apiKey:t}:_chunk4AEUOTN2js.f.waitForCredentials()}async function pr(){if(!_)return y||(y=(async()=>{try{let e=_chunk4AEUOTN2js.b.getInstance(),{apiUrl:r,apiKey:o}=await ar();A=await _asyncOptionalChain([(await e.getTokenInfo()), 'optionalAccess', async _12 => _12.crudifyTokens, 'optionalAccess', async _13 => _13.accessToken])||null,_crudifyadmin2.default.init({url:r,apiKey:o,getAdditionalHeaders:()=>A?{Authorization:`Bearer ${A}`}:{}}),_=!0}catch(e){throw y=null,_chunkMFYHD6S5js.a.error("[crudifyAdminWrapper] Initialization failed",e instanceof Error?e:{message:String(e)}),e}})(),y)}async function n(e){try{await pr();let r=_chunk4AEUOTN2js.b.getInstance();A=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _14 => _14.crudifyTokens, 'optionalAccess', async _15 => _15.accessToken])||null;let t=await e(),a=t.errors&&(typeof t.errors=="string"&&t.errors.includes("401")||Array.isArray(t.errors)&&t.errors.some(s=>typeof s=="string"&&s.includes("401")));return!t.success&&a?await r.refreshTokens()?(A=await _asyncOptionalChain([(await r.getTokenInfo()), 'optionalAccess', async _16 => _16.crudifyTokens, 'optionalAccess', async _17 => _17.accessToken])||null,await e()):(_chunkMFYHD6S5js.a.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),t):t}catch(r){return _chunkMFYHD6S5js.a.error("[crudifyAdmin] Operation error",r instanceof Error?r:{message:String(r)}),{success:!1,errors:r instanceof Error?r.message:"Unknown error"}}}var cr={listModules:()=>n(()=>_crudifyadmin2.default.listModules()),getModule:e=>n(()=>_crudifyadmin2.default.getModule(e)),createModule:e=>n(()=>_crudifyadmin2.default.createModule(e)),editModule:(e,r)=>n(()=>_crudifyadmin2.default.editModule(e,r)),deleteModule:e=>n(()=>_crudifyadmin2.default.deleteModule(e)),activateModule:e=>n(()=>_crudifyadmin2.default.activateModule(e)),deactivateModule:e=>n(()=>_crudifyadmin2.default.deactivateModule(e)),getModuleVersions:e=>n(()=>_crudifyadmin2.default.getModuleVersions(e)),listActions:e=>n(()=>_crudifyadmin2.default.listActions(e)),getAction:e=>n(()=>_crudifyadmin2.default.getAction(e)),createAction:e=>n(()=>_crudifyadmin2.default.createAction(e)),editAction:(e,r)=>n(()=>_crudifyadmin2.default.editAction(e,r)),deleteAction:e=>n(()=>_crudifyadmin2.default.deleteAction(e)),activateAction:e=>n(()=>_crudifyadmin2.default.activateAction(e)),deactivateAction:e=>n(()=>_crudifyadmin2.default.deactivateAction(e)),getActionVersions:e=>n(()=>_crudifyadmin2.default.getActionVersions(e)),getActionsByProfile:e=>n(()=>_crudifyadmin2.default.getActionsByProfile(e)),updateActionsProfiles:e=>n(()=>_crudifyadmin2.default.updateActionsProfiles(e)),calculatePermissions:e=>n(()=>_crudifyadmin2.default.calculatePermissions(e))};exports.AuthRoute = D; exports.CRITICAL_TRANSLATIONS = _chunk4R472VF6js.a; exports.CrudiaAutoGenerate = _chunk4R472VF6js.o; exports.CrudiaFileField = _chunk4R472VF6js.p; exports.CrudiaMarkdownField = _chunk4R472VF6js.q; exports.CrudifyInitializationManager = _chunk4AEUOTN2js.n; exports.CrudifyInitializer = ir; exports.CrudifyLogin = _chunk4R472VF6js.h; exports.CrudifyProvider = _chunk4AEUOTN2js.g; exports.CrudifyThemeProvider = Be; exports.ERROR_CODES = _chunkNSV6ECYOjs.a; exports.ERROR_SEVERITY_MAP = _chunkNSV6ECYOjs.b; exports.GlobalNotificationProvider = _chunk4AEUOTN2js.d; exports.LoginComponent = _chunk4R472VF6js.m; exports.POLICY_ACTIONS = _chunk4R472VF6js.j; exports.PREFERRED_POLICY_ORDER = _chunk4R472VF6js.k; exports.Policies = _chunk4R472VF6js.l; exports.ProtectedRoute = F; exports.SessionDebugInfo = _chunk4AEUOTN2js.k; exports.SessionLoadingScreen = E; exports.SessionManager = _chunk4AEUOTN2js.b; exports.SessionProvider = _chunk4AEUOTN2js.i; exports.SessionStatus = _chunk4R472VF6js.n; exports.TokenStorage = _chunk4AEUOTN2js.a; exports.TranslationService = _chunk4R472VF6js.d; exports.TranslationsProvider = _chunk4R472VF6js.f; exports.UserProfileDisplay = _chunk4R472VF6js.i; exports.createErrorTranslator = _chunkMFYHD6S5js.o; exports.crudify = _crudifybrowser2.default; exports.crudifyAdmin = cr; exports.crudifyInitManager = _chunk4AEUOTN2js.o; exports.decodeJwtSafely = _chunkMFYHD6S5js.q; exports.extractSafeRedirectFromUrl = M; exports.getCookie = _chunkMFYHD6S5js.b; exports.getCriticalLanguages = _chunk4R472VF6js.b; exports.getCriticalTranslations = _chunk4R472VF6js.c; exports.getCurrentUserEmail = _chunkMFYHD6S5js.r; exports.getErrorMessage = _chunkNSV6ECYOjs.e; exports.handleCrudifyError = _chunkNSV6ECYOjs.g; exports.isTokenExpired = _chunkMFYHD6S5js.s; exports.logger = _chunkMFYHD6S5js.a; exports.parseApiError = _chunkNSV6ECYOjs.c; exports.parseJavaScriptError = _chunkNSV6ECYOjs.f; exports.parseTransactionError = _chunkNSV6ECYOjs.d; exports.secureLocalStorage = _chunk5HFI5CZ5js.b; exports.secureSessionStorage = _chunk5HFI5CZ5js.a; exports.translateError = _chunkMFYHD6S5js.n; exports.translateErrorCode = _chunkMFYHD6S5js.l; exports.translateErrorCodes = _chunkMFYHD6S5js.m; exports.translationService = _chunk4R472VF6js.e; exports.useAuth = _chunkBBA4D4JYjs.b; exports.useAutoGenerate = _chunk4AEUOTN2js.m; exports.useCrudify = _chunk4AEUOTN2js.h; exports.useCrudifyInitializer = nr; exports.useCrudifyWithNotifications = _chunkBBA4D4JYjs.d; exports.useData = _chunkBBA4D4JYjs.c; exports.useFileUpload = _chunk4AEUOTN2js.p; exports.useGlobalNotification = _chunk4AEUOTN2js.e; exports.useSession = _chunk4AEUOTN2js.c; exports.useSessionContext = _chunk4AEUOTN2js.j; exports.useTranslations = _chunk4R472VF6js.g; exports.useUserData = _chunkBBA4D4JYjs.a; exports.useUserProfile = _chunk4AEUOTN2js.l; exports.validateInternalRedirect = v;
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{a as B,b as H,c as q,d as W,e as
|
|
1
|
+
import{a as B,b as H,c as q,d as W,e as J,f as $,g as Y,h as xe,i as Re,j as Pe,k as Ie,l as he,m as Se,n as ve,o as ke,p as ze,q as we}from"./chunk-WVEMQ7DL.mjs";import{a as Le,b as be,c as Ue,d as Ne}from"./chunk-I2GWDIIJ.mjs";import{a as Z,b as m,c as re,d as ne,e as se,f as b,g as ae,h as pe,i as ce,j as g,k as le,l as Ce,m as Te,n as Ee,o as h,p as Me}from"./chunk-Z2GYZNAL.mjs";import{a as Oe,b as Fe}from"./chunk-JNEWPO2J.mjs";import{a as ue,b as de,c as fe,d as me,e as ge,f as ye,g as Ae}from"./chunk-JAPL7EZJ.mjs";import{a as p,b as k,c as L,l as Q,m as X,n as j,o as ee,q as oe,r as te,s as ie}from"./chunk-MGJZTOEM.mjs";import{default as Qr}from"@nocios/crudify-browser";export*from"@nocios/crudify-browser";import{useMemo as De}from"react";import{ThemeProvider as Ge,createTheme as Ke,CssBaseline as Ve}from"@mui/material";import{jsx as He,jsxs as qe}from"react/jsx-runtime";var _e=(e={})=>{try{let r=k("theme");if(r){let o=JSON.parse(decodeURIComponent(r));return{...e,...o}}}catch(r){p.warn("Error parsing theme from cookie",r instanceof Error?{errorMessage:r.message}:{message:String(r)})}return e};function Be({children:e,defaultTheme:r={},disableCssBaseline:o=!1}){let t=De(()=>{let a=_e(r);return Ke(a)},[r]);return qe(Ge,{theme:t,children:[!o&&He(Ve,{}),e]})}import{Navigate as z,useLocation as Qe}from"react-router-dom";import{Fragment as $e,jsx as S,jsxs as U}from"react/jsx-runtime";var We={border:"5px solid rgba(0, 0, 0, 0.1)",borderTopColor:"#3B82F6",borderRadius:"50%",width:"50px",height:"50px",animation:"spin 1s linear infinite"},Je=()=>S("style",{children:`
|
|
2
2
|
@keyframes spin {
|
|
3
3
|
0% { transform: rotate(0deg); }
|
|
4
4
|
100% { transform: rotate(360deg); }
|
|
5
5
|
}
|
|
6
|
-
`});function E({stage:e="loading",message:r}){let t=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return
|
|
6
|
+
`});function E({stage:e="loading",message:r}){let t=r||{initializing:"Initializing application...","validating-session":"Validating session...",loading:"Loading..."}[e];return U($e,{children:[S(Je,{}),U("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:[S("div",{style:We}),S("p",{style:{fontSize:"1.25em",fontWeight:"500",marginTop:"24px",color:"#1f2937"},children:t})]})]})}var Ye=/^[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]/,/\\/],v=(e,r="/")=>{if(!e||typeof e!="string")return r;let o=e.trim();if(!o)return r;if(!o.startsWith("/"))return p.warn("Open redirect blocked (relative path)",{path:e}),r;if(!Ye.test(o))return p.warn("Open redirect blocked (invalid characters)",{path:e}),r;let t=o.toLowerCase();for(let s of Ze)if(s.test(t))return p.warn("Open redirect blocked (dangerous pattern)",{path:e}),r;let a=o.split("?")[0].split("/").filter(Boolean);if(a.length===0)return o;for(let s of a)if(s===".."||s.includes(":")||s.length>100)return p.warn("Open redirect blocked (suspicious path part)",{part:s}),r;return o},M=(e,r="/")=>{try{let t=(typeof e=="string"?new URLSearchParams(e):e).get("redirect");if(!t)return r;let a=decodeURIComponent(t);return v(a,r)}catch(o){return p.warn("Error parsing redirect parameter",o instanceof Error?{errorMessage:o.message}:{message:String(o)}),r}};import{Fragment as O,jsx as d}from"react/jsx-runtime";function F({children:e,loadingComponent:r,loginPath:o="/login"}){let{isAuthenticated:t,isLoading:a,isLoggingOut:s,isInitialized:x,tokens:c,error:f}=g(),l=Qe();if(!x||a&&!s)return d(O,{children:r||d(E,{stage:"validating-session"})});let C=t&&c?.accessToken&&c.accessToken.length>0;if(f||!t||!C){if(c&&(!c.accessToken||c.accessToken.length===0)&&localStorage.removeItem("crudify_tokens"),s)return d(z,{to:o,replace:!0});let R=l.pathname+l.search;if(l.pathname===o||l.pathname.startsWith(o))return d(z,{to:o,replace:!0});let P=v(R),T=encodeURIComponent(P);return d(z,{to:`${o}?redirect=${T}`,replace:!0})}return d(O,{children:e})}import{Navigate as Xe,useLocation as je}from"react-router-dom";import{Fragment as er,jsx as N}from"react/jsx-runtime";function D({children:e,redirectTo:r="/"}){let{isAuthenticated:o}=g(),t=je();if(o){let a=new URLSearchParams(t.search),s=M(a,r);return N(Xe,{to:s,replace:!0})}return N(er,{children:e})}import{createContext as rr,useContext as or,useEffect as tr,useRef as G,useState as w}from"react";import{Fragment as sr,jsx as K}from"react/jsx-runtime";var V=rr(void 0),ir=({config:e,children:r,fallback:o=null,onInitialized:t,onError:a})=>{let[s,x]=w(!1),[c,f]=w(!1),[l,C]=w(null),R=G(!1),P=G(!1);tr(()=>{R.current||(h.registerHighPriorityInitializer(),R.current=!0),P.current||(P.current=!0,(async()=>{f(!0),C(null);try{let u=L({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.");let I=u.env||"prod";p.setEnvironment(I),await h.initialize({priority:"HIGH",publicApiKey:u.publicApiKey,env:u.env||"prod",enableLogging:e?.enableLogging,requestedBy:"CrudifyInitializer"}),x(!0),f(!1),t&&t()}catch(u){let I=u instanceof Error?u:new Error(String(u));C(I),f(!1),a&&a(I)}})())},[e?.publicApiKey,e?.env,e?.enableLogging,t,a]);let T={isInitialized:s,isInitializing:c,error:l};return c&&o?K(sr,{children:o}):(l&&p.error("[CrudifyInitializer] Initialization failed",l),K(V.Provider,{value:T,children:r}))},nr=()=>{let e=or(V);if(!e)throw new Error("useCrudifyInitializer must be used within CrudifyInitializer");return e};import i from"@nocios/crudify-admin";var _=!1,y=null,A=null;async function ar(){let r=await m.getInstance().getTokenInfo(),o=r?.apiEndpointAdmin,t=r?.apiKeyEndpointAdmin;return o&&t?{apiUrl:o,apiKey:t}:b.waitForCredentials()}async function pr(){if(!_)return y||(y=(async()=>{try{let e=m.getInstance(),{apiUrl:r,apiKey:o}=await ar();A=(await e.getTokenInfo())?.crudifyTokens?.accessToken||null,i.init({url:r,apiKey:o,getAdditionalHeaders:()=>A?{Authorization:`Bearer ${A}`}:{}}),_=!0}catch(e){throw y=null,p.error("[crudifyAdminWrapper] Initialization failed",e instanceof Error?e:{message:String(e)}),e}})(),y)}async function n(e){try{await pr();let r=m.getInstance();A=(await r.getTokenInfo())?.crudifyTokens?.accessToken||null;let t=await e(),a=t.errors&&(typeof t.errors=="string"&&t.errors.includes("401")||Array.isArray(t.errors)&&t.errors.some(s=>typeof s=="string"&&s.includes("401")));return!t.success&&a?await r.refreshTokens()?(A=(await r.getTokenInfo())?.crudifyTokens?.accessToken||null,await e()):(p.error("[crudifyAdmin] Token refresh failed"),typeof window<"u"&&(window.location.href="/login"),t):t}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 cr={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{D as AuthRoute,B as CRITICAL_TRANSLATIONS,ke as CrudiaAutoGenerate,ze as CrudiaFileField,we as CrudiaMarkdownField,Ee as CrudifyInitializationManager,ir as CrudifyInitializer,xe as CrudifyLogin,ae as CrudifyProvider,Be as CrudifyThemeProvider,ue as ERROR_CODES,de as ERROR_SEVERITY_MAP,ne as GlobalNotificationProvider,Se as LoginComponent,Pe as POLICY_ACTIONS,Ie as PREFERRED_POLICY_ORDER,he as Policies,F as ProtectedRoute,le as SessionDebugInfo,E as SessionLoadingScreen,m as SessionManager,ce as SessionProvider,ve as SessionStatus,Z as TokenStorage,W as TranslationService,$ as TranslationsProvider,Re as UserProfileDisplay,ee as createErrorTranslator,Qr as crudify,cr as crudifyAdmin,h as crudifyInitManager,oe as decodeJwtSafely,M as extractSafeRedirectFromUrl,k as getCookie,H as getCriticalLanguages,q as getCriticalTranslations,te as getCurrentUserEmail,ge as getErrorMessage,Ae as handleCrudifyError,ie as isTokenExpired,p as logger,fe as parseApiError,ye as parseJavaScriptError,me as parseTransactionError,Fe as secureLocalStorage,Oe as secureSessionStorage,j as translateError,Q as translateErrorCode,X as translateErrorCodes,J as translationService,be as useAuth,Te as useAutoGenerate,pe as useCrudify,nr as useCrudifyInitializer,Ne as useCrudifyWithNotifications,Ue as useData,Me as useFileUpload,se as useGlobalNotification,re as useSession,g as useSessionContext,Y as useTranslations,Le as useUserData,Ce as useUserProfile,v as validateInternalRedirect};
|
package/package.json
CHANGED
package/vitest.config.ts
CHANGED
|
@@ -17,7 +17,7 @@ export default defineConfig({
|
|
|
17
17
|
coverage: {
|
|
18
18
|
provider: "v8",
|
|
19
19
|
reporter: ["text", "json", "html"],
|
|
20
|
-
exclude: ["node_modules/", "src/__tests__/", "dist/", "**/*.d.ts", "**/*.config.*", "**/mockData.ts"],
|
|
20
|
+
exclude: ["node_modules/", "src/__tests__/", "dist/", "**/*.d.ts", "**/*.config.*", "**/mockData.ts", "**/testUtils.tsx", "**/testUtils.ts"],
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
resolve: {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":false},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":false},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":false},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":false},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":false}]},{"scriptId":"1561","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/hooks/__tests__/useAutoGenerate.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":40741,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":40741,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":352,"endOffset":409,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":830,"endOffset":12867,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":937,"endOffset":972,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":987,"endOffset":1022,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1054,"endOffset":2532,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1131,"endOffset":1431,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1200,"endOffset":1274,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1494,"endOffset":2091,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1679,"endOffset":1752,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1847,"endOffset":1914,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2159,"endOffset":2526,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2323,"endOffset":2397,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2443,"endOffset":2518,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2560,"endOffset":4974,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2630,"endOffset":3014,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2813,"endOffset":2886,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2932,"endOffset":3006,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3067,"endOffset":3552,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3354,"endOffset":3426,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3472,"endOffset":3544,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3607,"endOffset":4092,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3895,"endOffset":3967,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4013,"endOffset":4084,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4151,"endOffset":4541,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4339,"endOffset":4412,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4458,"endOffset":4533,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4586,"endOffset":4968,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4767,"endOffset":4840,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4886,"endOffset":4960,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5006,"endOffset":7400,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5048,"endOffset":5574,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5263,"endOffset":5336,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5382,"endOffset":5449,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5615,"endOffset":6060,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5763,"endOffset":5836,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5882,"endOffset":5949,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6117,"endOffset":6823,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6314,"endOffset":6387,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6433,"endOffset":6500,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6647,"endOffset":6711,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6869,"endOffset":7394,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7067,"endOffset":7140,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7186,"endOffset":7258,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7287,"endOffset":7339,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7428,"endOffset":10009,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7483,"endOffset":8172,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7755,"endOffset":7828,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7874,"endOffset":7948,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7983,"endOffset":8047,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8236,"endOffset":8678,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8433,"endOffset":8545,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8591,"endOffset":8670,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8727,"endOffset":9463,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9028,"endOffset":9140,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9186,"endOffset":9265,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9329,"endOffset":9393,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9511,"endOffset":10003,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9718,"endOffset":9830,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9876,"endOffset":9947,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10043,"endOffset":10637,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10103,"endOffset":10631,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10296,"endOffset":10369,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10415,"endOffset":10489,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10546,"endOffset":10623,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10668,"endOffset":11777,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10726,"endOffset":11331,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10800,"endOffset":10856,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10972,"endOffset":11045,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11136,"endOffset":11273,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11384,"endOffset":11771,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11577,"endOffset":11650,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11696,"endOffset":11763,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11813,"endOffset":12863,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11873,"endOffset":12857,"count":1},{"startOffset":12292,"endOffset":12851,"count":5}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12603,"endOffset":12669,"count":15}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12719,"endOffset":12800,"count":10}],"isBlockCoverage":true}]},{"scriptId":"1562","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/hooks/useAutoGenerate.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11027,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11027,"count":1}],"isBlockCoverage":true},{"functionName":"useAutoGenerate","ranges":[{"startOffset":511,"endOffset":2536,"count":73}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":979,"endOffset":1133,"count":19}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1235,"endOffset":1975,"count":25},{"startOffset":1384,"endOffset":1454,"count":24},{"startOffset":1454,"endOffset":1476,"count":19},{"startOffset":1478,"endOffset":1618,"count":19},{"startOffset":1592,"endOffset":1609,"count":3},{"startOffset":1618,"endOffset":1774,"count":5},{"startOffset":1680,"endOffset":1708,"count":0},{"startOffset":1753,"endOffset":1765,"count":0},{"startOffset":1781,"endOffset":1930,"count":1},{"startOffset":1853,"endOffset":1870,"count":0},{"startOffset":1911,"endOffset":1923,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2075,"endOffset":2123,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2202,"endOffset":2233,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2274,"endOffset":2411,"count":43},{"startOffset":2300,"endOffset":2309,"count":41},{"startOffset":2310,"endOffset":2335,"count":22},{"startOffset":2337,"endOffset":2407,"count":22}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":2641,"endOffset":2672,"count":73}],"isBlockCoverage":true}]}]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":35}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":35}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":false},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":false},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":false},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":false},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":false}]},{"scriptId":"1565","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/components/__tests__/CrudiaAutoGenerate.test.tsx","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":64734,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":64734,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":356,"endOffset":522,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":390,"endOffset":518,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1089,"endOffset":26412,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1196,"endOffset":1231,"count":35}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1281,"count":35}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1308,"endOffset":4327,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1371,"endOffset":2100,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2143,"endOffset":2838,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2901,"endOffset":3608,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3640,"endOffset":4321,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4358,"endOffset":5938,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4418,"endOffset":5124,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5185,"endOffset":5932,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5970,"endOffset":9107,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6016,"endOffset":6698,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6740,"endOffset":7457,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7516,"endOffset":8299,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8361,"endOffset":9101,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9150,"endOffset":12251,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9727,"endOffset":10636,"count":7}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9809,"endOffset":10628,"count":7}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10708,"endOffset":11440,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11514,"endOffset":12245,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12286,"endOffset":15672,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12350,"endOffset":13197,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13117,"endOffset":13189,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13253,"endOffset":14006,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14079,"endOffset":14811,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14865,"endOffset":15666,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15707,"endOffset":19022,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15763,"endOffset":16529,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16586,"endOffset":17415,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16671,"endOffset":16974,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":17483,"endOffset":18230,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":18293,"endOffset":19016,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19057,"endOffset":24866,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":19111,"endOffset":19960,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20018,"endOffset":20912,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":20973,"endOffset":21807,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":21874,"endOffset":22720,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":22773,"endOffset":23608,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":23668,"endOffset":24860,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24898,"endOffset":26408,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":24968,"endOffset":25661,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":25720,"endOffset":26402,"count":1}],"isBlockCoverage":true}]},{"scriptId":"1570","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/components/CrudiaAutoGenerate.tsx","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":16827,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":16827,"count":1}],"isBlockCoverage":true},{"functionName":"sanitizeHelperText","ranges":[{"startOffset":1198,"endOffset":1416,"count":24}],"isBlockCoverage":true},{"functionName":"SafeHtmlSpan","ranges":[{"startOffset":1439,"endOffset":1761,"count":24}],"isBlockCoverage":true},{"functionName":"CrudiaAutoGenerate","ranges":[{"startOffset":1790,"endOffset":6063,"count":35},{"startOffset":2246,"endOffset":2263,"count":33},{"startOffset":2290,"endOffset":2305,"count":12},{"startOffset":2341,"endOffset":2354,"count":32},{"startOffset":2392,"endOffset":2407,"count":24},{"startOffset":2408,"endOffset":2996,"count":24},{"startOffset":2461,"endOffset":2512,"count":16},{"startOffset":2513,"endOffset":2564,"count":15},{"startOffset":2565,"endOffset":2613,"count":15},{"startOffset":2614,"endOffset":2661,"count":14},{"startOffset":2662,"endOffset":2709,"count":12},{"startOffset":2710,"endOffset":2773,"count":12},{"startOffset":2774,"endOffset":2821,"count":12},{"startOffset":2822,"endOffset":2894,"count":12},{"startOffset":2895,"endOffset":2946,"count":11},{"startOffset":2947,"endOffset":2995,"count":10},{"startOffset":3322,"endOffset":3620,"count":24},{"startOffset":3621,"endOffset":3626,"count":11},{"startOffset":3748,"endOffset":4393,"count":2},{"startOffset":4394,"endOffset":4402,"count":33},{"startOffset":4512,"endOffset":4523,"count":14},{"startOffset":4524,"endOffset":5812,"count":13},{"startOffset":5813,"endOffset":5821,"count":22}],"isBlockCoverage":true},{"functionName":"onSuccess","ranges":[{"startOffset":2161,"endOffset":2202,"count":1}],"isBlockCoverage":true},{"functionName":"handleRegenerate","ranges":[{"startOffset":3025,"endOffset":3107,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":6171,"endOffset":6205,"count":35}],"isBlockCoverage":true}]}]}
|