@jmruthers/pace-core 0.5.136 → 0.5.139
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/{DataTable-CYOHOX3O.js → DataTable-JXFCA2BJ.js} +10 -9
- package/dist/{EventLogo-801uofbR.d.ts → EventLogo-rFL_kRjk.d.ts} +73 -1
- package/dist/{UnifiedAuthProvider-5E5TUNMS.js → UnifiedAuthProvider-XIQQ7LVU.js} +4 -5
- package/dist/{chunk-YLKIDTUK.js → chunk-22WKWKRX.js} +4 -4
- package/dist/{chunk-TVYPTYOY.js → chunk-4C7EXCAR.js} +60 -24
- package/dist/chunk-4C7EXCAR.js.map +1 -0
- package/dist/{chunk-NOHEVYVX.js → chunk-5JMOHWDI.js} +417 -319
- package/dist/chunk-5JMOHWDI.js.map +1 -0
- package/dist/{chunk-FHWWBIHA.js → chunk-6DXZ6V5Q.js} +5 -5
- package/dist/{chunk-2TWNJ46Y.js → chunk-6LAAY47Q.js} +2 -2
- package/dist/{chunk-444EZN6N.js → chunk-7QCC6MCP.js} +88 -1
- package/dist/chunk-7QCC6MCP.js.map +1 -0
- package/dist/chunk-BJPBT3CU.js +21 -0
- package/dist/chunk-BJPBT3CU.js.map +1 -0
- package/dist/{chunk-L6PGMCMD.js → chunk-BOOI7GK2.js} +38 -12
- package/dist/chunk-BOOI7GK2.js.map +1 -0
- package/dist/{chunk-XARJS7CD.js → chunk-INQLMHPF.js} +2 -2
- package/dist/chunk-JISYG63F.js +70 -0
- package/dist/chunk-JISYG63F.js.map +1 -0
- package/dist/{chunk-SL2YQDR6.js → chunk-MA6EPSGZ.js} +2 -2
- package/dist/{chunk-5DPZ5EAT.js → chunk-OWAG3GSU.js} +1 -3
- package/dist/{chunk-LTV3XIJJ.js → chunk-T6JN6LH6.js} +4 -4
- package/dist/{chunk-HJGGOMQ6.js → chunk-TLT2ZR3L.js} +147 -103
- package/dist/chunk-TLT2ZR3L.js.map +1 -0
- package/dist/{chunk-4MT5BGGL.js → chunk-YCWDTTUK.js} +4 -6
- package/dist/{chunk-4MT5BGGL.js.map → chunk-YCWDTTUK.js.map} +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/components.js +12 -11
- package/dist/components.js.map +1 -1
- package/dist/hooks.js +8 -9
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/providers.js +3 -4
- package/dist/rbac/index.js +8 -9
- package/dist/schema-DTDZQe2u.d.ts +28 -0
- package/dist/types.d.ts +152 -3
- package/dist/types.js +51 -16
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +89 -4
- package/dist/utils.js +214 -96
- package/dist/utils.js.map +1 -1
- package/dist/validation.d.ts +1 -343
- package/dist/validation.js +3 -100
- package/docs/api/classes/ColumnFactory.md +1 -1
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +1 -1
- package/docs/api/classes/MissingUserContextError.md +1 -1
- package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
- package/docs/api/classes/PermissionDeniedError.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +1 -1
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +1 -1
- package/docs/api/classes/RBACError.md +1 -1
- package/docs/api/classes/RBACNotInitializedError.md +1 -1
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/classes/StorageUtils.md +1 -1
- package/docs/api/enums/FileCategory.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- package/docs/api/interfaces/BadgeProps.md +27 -0
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +1 -1
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventAppRoleData.md +1 -1
- package/docs/api/interfaces/EventLogoProps.md +1 -1
- package/docs/api/interfaces/ExportColumn.md +1 -1
- package/docs/api/interfaces/ExportOptions.md +1 -1
- package/docs/api/interfaces/FileDisplayProps.md +1 -1
- package/docs/api/interfaces/FileMetadata.md +1 -1
- package/docs/api/interfaces/FileReference.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadOptions.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +1 -1
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RoleManagementResult.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/SessionRestorationLoaderProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/SwitchProps.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
- package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +84 -15
- package/docs/architecture/README.md +0 -1
- package/docs/styles/README.md +0 -2
- package/examples/RBAC/CompleteRBACExample.tsx +324 -0
- package/examples/RBAC/EventBasedApp.tsx +239 -0
- package/examples/RBAC/PermissionExample.tsx +151 -0
- package/examples/RBAC/index.ts +13 -0
- package/examples/public-pages/CorrectPublicPageImplementation.tsx +301 -0
- package/examples/public-pages/PublicEventPage.tsx +274 -0
- package/examples/public-pages/PublicPageApp.tsx +308 -0
- package/examples/public-pages/PublicPageUsageExample.tsx +216 -0
- package/examples/public-pages/index.ts +14 -0
- package/package.json +1 -10
- package/src/__tests__/TEST_STANDARD.md +92 -0
- package/src/components/Badge/Badge.test.tsx +314 -0
- package/src/components/Badge/Badge.tsx +304 -0
- package/src/components/Badge/index.ts +3 -0
- package/src/components/DataTable/__tests__/DataTableCore.test-setup.ts +217 -0
- package/src/components/DataTable/__tests__/styles.test.ts +1 -1
- package/src/components/DataTable/components/ColumnFilter.tsx +8 -4
- package/src/components/DataTable/components/DataTableBody.tsx +461 -0
- package/src/components/DataTable/components/DraggableColumnHeader.tsx +144 -0
- package/src/components/DataTable/components/FilterRow.tsx +9 -3
- package/src/components/DataTable/components/PaginationControls.tsx +1 -0
- package/src/components/DataTable/components/VirtualizedDataTable.tsx +513 -0
- package/src/components/DataTable/components/__tests__/AccessDeniedPage.test.tsx +14 -68
- package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +62 -0
- package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +43 -0
- package/src/components/DataTable/core/ActionManager.ts +235 -0
- package/src/components/DataTable/core/ColumnManager.ts +205 -0
- package/src/components/DataTable/core/DataManager.ts +188 -0
- package/src/components/DataTable/core/DataTableContext.tsx +181 -0
- package/src/components/DataTable/core/LocalDataAdapter.ts +273 -0
- package/src/components/DataTable/core/PluginRegistry.ts +229 -0
- package/src/components/DataTable/core/StateManager.ts +311 -0
- package/src/components/DataTable/core/interfaces.ts +338 -0
- package/src/components/DataTable/styles.ts +27 -6
- package/src/components/DataTable/utils/__tests__/columnUtils.test.ts +94 -0
- package/src/components/DataTable/utils/columnUtils.ts +40 -0
- package/src/components/DataTable/utils/debugTools.ts +609 -0
- package/src/components/DataTable/utils/index.ts +1 -0
- package/src/components/Dialog/README.md +804 -0
- package/src/components/Dialog/utils/__tests__/safeHtml.unit.test.ts +611 -0
- package/src/components/Dialog/utils/safeHtml.ts +185 -0
- package/src/components/Footer/Footer.test.tsx +1 -1
- package/src/components/Form/Form.test.tsx +1 -1
- package/src/components/Form/FormErrorSummary.tsx +113 -0
- package/src/components/Form/FormFieldset.tsx +127 -0
- package/src/components/Form/FormLiveRegion.tsx +198 -0
- package/src/components/LoginForm/LoginForm.test.tsx +1 -1
- package/src/components/PaceAppLayout/__tests__/PaceAppLayout.performance.test.tsx +76 -10
- package/src/components/PaceLoginPage/PaceLoginPage.tsx +1 -1
- package/src/components/PasswordReset/PasswordResetForm.test.tsx +597 -0
- package/src/components/PasswordReset/PasswordResetForm.tsx +201 -0
- package/src/components/PublicLayout/PublicPageDebugger.tsx +104 -0
- package/src/components/PublicLayout/PublicPageDiagnostic.tsx +162 -0
- package/src/components/PublicLayout/__tests__/PublicPageFooter.test.tsx +1 -1
- package/src/components/Select/Select.test.tsx +1 -1
- package/src/components/Select/Select.tsx +20 -8
- package/src/components/Table/__tests__/Table.test.tsx +1 -1
- package/src/components/index.ts +3 -0
- package/src/hooks/__tests__/useFileUrl.unit.test.ts +83 -85
- package/src/index.ts +4 -0
- package/src/rbac/hooks/useCan.test.ts +24 -0
- package/src/rbac/hooks/usePermissions.ts +49 -12
- package/src/styles/core.css +3 -0
- package/src/utils/appConfig.ts +47 -0
- package/src/utils/appIdResolver.test.ts +499 -0
- package/src/utils/appIdResolver.ts +130 -0
- package/src/utils/appNameResolver.simple.test.ts +212 -0
- package/src/utils/appNameResolver.test.ts +121 -0
- package/src/utils/appNameResolver.ts +191 -0
- package/src/utils/audit.ts +127 -0
- package/src/utils/auth-utils.ts +96 -0
- package/src/utils/bundleAnalysis.ts +129 -0
- package/src/utils/cn.ts +7 -0
- package/src/utils/debugLogger.ts +67 -0
- package/src/utils/deviceFingerprint.ts +215 -0
- package/src/utils/dynamicUtils.ts +105 -0
- package/src/utils/file-reference.test.ts +788 -0
- package/src/utils/file-reference.ts +519 -0
- package/src/utils/formatDate.test.ts +237 -0
- package/src/utils/formatting.ts +133 -0
- package/src/utils/index.ts +7 -0
- package/src/utils/lazyLoad.tsx +44 -0
- package/src/utils/logger.ts +179 -0
- package/src/utils/organisationContext.test.ts +322 -0
- package/src/utils/organisationContext.ts +153 -0
- package/src/utils/performanceBenchmark.ts +64 -0
- package/src/utils/performanceBudgets.ts +110 -0
- package/src/utils/permissionTypes.ts +37 -0
- package/src/utils/permissionUtils.test.ts +393 -0
- package/src/utils/permissionUtils.ts +34 -0
- package/src/utils/sanitization.ts +264 -0
- package/src/utils/schemaUtils.ts +37 -0
- package/src/utils/secureDataAccess.test.ts +711 -0
- package/src/utils/secureDataAccess.ts +377 -0
- package/src/utils/secureErrors.ts +79 -0
- package/src/utils/secureStorage.ts +244 -0
- package/src/utils/security.ts +156 -0
- package/src/utils/securityMonitor.ts +45 -0
- package/src/utils/sessionTracking.ts +126 -0
- package/src/utils/validation.ts +111 -0
- package/src/utils/validationUtils.ts +120 -0
- package/src/validation/index.ts +2 -2
- package/dist/chunk-444EZN6N.js.map +0 -1
- package/dist/chunk-APIBCTL2.js +0 -670
- package/dist/chunk-APIBCTL2.js.map +0 -1
- package/dist/chunk-HJGGOMQ6.js.map +0 -1
- package/dist/chunk-K2WWTH7O.js +0 -94
- package/dist/chunk-K2WWTH7O.js.map +0 -1
- package/dist/chunk-L6PGMCMD.js.map +0 -1
- package/dist/chunk-LMC26NLJ.js +0 -84
- package/dist/chunk-LMC26NLJ.js.map +0 -1
- package/dist/chunk-NOHEVYVX.js.map +0 -1
- package/dist/chunk-TVYPTYOY.js.map +0 -1
- package/dist/validation-8npbysjg.d.ts +0 -177
- /package/dist/{DataTable-CYOHOX3O.js.map → DataTable-JXFCA2BJ.js.map} +0 -0
- /package/dist/{UnifiedAuthProvider-5E5TUNMS.js.map → UnifiedAuthProvider-XIQQ7LVU.js.map} +0 -0
- /package/dist/{chunk-YLKIDTUK.js.map → chunk-22WKWKRX.js.map} +0 -0
- /package/dist/{chunk-FHWWBIHA.js.map → chunk-6DXZ6V5Q.js.map} +0 -0
- /package/dist/{chunk-2TWNJ46Y.js.map → chunk-6LAAY47Q.js.map} +0 -0
- /package/dist/{chunk-XARJS7CD.js.map → chunk-INQLMHPF.js.map} +0 -0
- /package/dist/{chunk-SL2YQDR6.js.map → chunk-MA6EPSGZ.js.map} +0 -0
- /package/dist/{chunk-5DPZ5EAT.js.map → chunk-OWAG3GSU.js.map} +0 -0
- /package/dist/{chunk-LTV3XIJJ.js.map → chunk-T6JN6LH6.js.map} +0 -0
- /package/examples/{components → components 2}/DataTable/HierarchicalActionsExample.tsx +0 -0
- /package/examples/{components → components 2}/DataTable/HierarchicalExample.tsx +0 -0
- /package/examples/{components → components 2}/DataTable/InitialPageSizeExample.tsx +0 -0
- /package/examples/{components → components 2}/DataTable/PerformanceExample.tsx +0 -0
- /package/examples/{components → components 2}/DataTable/index.ts +0 -0
- /package/examples/{components → components 2}/Dialog/BasicHtmlTest.tsx +0 -0
- /package/examples/{components → components 2}/Dialog/DebugHtmlExample.tsx +0 -0
- /package/examples/{components → components 2}/Dialog/HtmlDialogExample.tsx +0 -0
- /package/examples/{components → components 2}/Dialog/ScrollableDialogExample.tsx +0 -0
- /package/examples/{components → components 2}/Dialog/SimpleHtmlTest.tsx +0 -0
- /package/examples/{components → components 2}/Dialog/SmartDialogExample.tsx +0 -0
- /package/examples/{components → components 2}/Dialog/index.ts +0 -0
- /package/examples/{components → components 2}/index.ts +0 -0
package/dist/utils.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export { S as SecureDataAccess, a as cn, j as formatCompactNumber, e as formatCurrency, f as formatDate, k as formatFileSize, h as formatNumber, i as formatPercent, g as getAppConfig, d as getCurrentAppId, s as setAppConfig, u as useSessionTracking } from './formatting-CvUXy2mF.js';
|
|
2
2
|
import { SupabaseClient } from '@supabase/supabase-js';
|
|
3
3
|
import { D as Database } from './database-C6jy7EOu.js';
|
|
4
|
-
export {
|
|
5
|
-
|
|
4
|
+
export { deepMerge, isEmpty, isObject, isStrongPassword, isValidDate, isValidEmail, isValidUrl, isWithinRange, matchesPattern } from './validation.js';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export { c as combineSchemas, p as pickSchema } from './schema-DTDZQe2u.js';
|
|
6
7
|
export { u as useComponentPerformance } from './useComponentPerformance-DE9l5RkL.js';
|
|
7
8
|
import * as date_fns from 'date-fns';
|
|
8
9
|
import { D as DataTable } from './DataTable-CWAZZcXC.js';
|
|
9
10
|
import './types-Dfz9dmVH.js';
|
|
10
11
|
import React__default, { ComponentType } from 'react';
|
|
11
12
|
import 'clsx';
|
|
12
|
-
import 'zod';
|
|
13
13
|
import 'react/jsx-runtime';
|
|
14
14
|
import '@tanstack/react-table';
|
|
15
15
|
|
|
@@ -239,6 +239,91 @@ declare class CachedAppIdResolver {
|
|
|
239
239
|
}
|
|
240
240
|
declare const cachedAppIdResolver: CachedAppIdResolver;
|
|
241
241
|
|
|
242
|
+
/**
|
|
243
|
+
* @file Input Sanitization Layer
|
|
244
|
+
* @package @jmruthers/pace-core
|
|
245
|
+
* @module Utils/Validation/Sanitization
|
|
246
|
+
* @since 0.1.0
|
|
247
|
+
*
|
|
248
|
+
* Comprehensive input sanitization utilities to prevent XSS, injection attacks,
|
|
249
|
+
* and other security vulnerabilities.
|
|
250
|
+
*/
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Sanitization options for different contexts
|
|
254
|
+
*/
|
|
255
|
+
interface SanitizationOptions {
|
|
256
|
+
allowHtml?: boolean;
|
|
257
|
+
allowedTags?: string[];
|
|
258
|
+
maxLength?: number;
|
|
259
|
+
trim?: boolean;
|
|
260
|
+
removeScripts?: boolean;
|
|
261
|
+
removeEvents?: boolean;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Sanitizes user input by removing potentially dangerous characters and patterns
|
|
265
|
+
*/
|
|
266
|
+
declare function sanitizeUserInput(input: string, options?: SanitizationOptions): string;
|
|
267
|
+
/**
|
|
268
|
+
* Validates and sanitizes form data using Zod schemas
|
|
269
|
+
*/
|
|
270
|
+
declare function sanitizeFormData<T>(data: unknown, schema: z.ZodSchema<T>, sanitizationRules?: Record<string, SanitizationOptions>): {
|
|
271
|
+
success: boolean;
|
|
272
|
+
data?: T;
|
|
273
|
+
error?: string;
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* @file Validation utilities
|
|
278
|
+
*
|
|
279
|
+
* Shared validation utilities with enhanced security
|
|
280
|
+
*/
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Validates user input against a schema with automatic sanitization
|
|
284
|
+
*/
|
|
285
|
+
declare function validateUserInput<T>(schema: z.ZodSchema<T>, data: unknown, sanitizationRules?: Record<string, SanitizationOptions>): {
|
|
286
|
+
success: boolean;
|
|
287
|
+
data?: T;
|
|
288
|
+
error?: string;
|
|
289
|
+
};
|
|
290
|
+
/**
|
|
291
|
+
* Username validation with sanitization
|
|
292
|
+
*/
|
|
293
|
+
declare const usernameSchema: z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodString>;
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* @file Common validation schemas
|
|
297
|
+
* @description Reusable validation schemas for common data types
|
|
298
|
+
*/
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Email validation schema
|
|
302
|
+
*/
|
|
303
|
+
declare const emailSchema: z.ZodString;
|
|
304
|
+
/**
|
|
305
|
+
* Name validation schema
|
|
306
|
+
*/
|
|
307
|
+
declare const nameSchema: z.ZodString;
|
|
308
|
+
/**
|
|
309
|
+
* Phone number validation schema
|
|
310
|
+
*/
|
|
311
|
+
declare const phoneSchema: z.ZodString;
|
|
312
|
+
/**
|
|
313
|
+
* URL validation schema
|
|
314
|
+
*/
|
|
315
|
+
declare const urlSchema: z.ZodString;
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* @file Enhanced Password Schema with Security Validations
|
|
319
|
+
* @description Comprehensive password validation with security checks
|
|
320
|
+
*/
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Basic password schema for less strict requirements
|
|
324
|
+
*/
|
|
325
|
+
declare const passwordSchema: z.ZodString;
|
|
326
|
+
|
|
242
327
|
interface SecurityEvent$1 {
|
|
243
328
|
type: string;
|
|
244
329
|
timestamp: Date;
|
|
@@ -560,4 +645,4 @@ declare function getOrganisationContext(supabase: SupabaseClient): Promise<strin
|
|
|
560
645
|
*/
|
|
561
646
|
declare function isOrganisationContextAvailable(supabase: SupabaseClient): Promise<boolean>;
|
|
562
647
|
|
|
563
|
-
export { CachedAppIdResolver, DebugLogger, LazyDataTable, LogLevel, Logger, type LoggerConfig, PERFORMANCE_BUDGETS, PERFORMANCE_THRESHOLDS, type PerformanceMetrics$1 as PerformanceMetrics, PermissionType, type SecurityEvent$1 as SecurityEvent, auditLog, auditLogger, bundleAnalyzer, cachedAppIdResolver, clearOrganisationContext, createLazyComponent, createLazyUtility, createLogger, createPerformanceBenchmark, generateDeviceFingerprint, getAppId, getAppIds, getAppNameFromBuildTime, getAppNameFromEnvironment, getAppNameFromGlobal, getAppNameFromPackageJson, getCurrentAppName, getCurrentAppNameWithFallback, getOrganisationContext, getSecurityHeaders, hasAllPermissions, hasAnyPermission, hasPermission, isOrganisationContextAvailable, lazyCSVUtils, lazyChartUtils, lazyDateUtils, lazyFormUtils, lazyLodash, loadCSVUtils, loadChartUtils, loadDateUtils, loadFormUtils, loadLodash, logAuditEvent, logAuthEvent, logPermissionEvent, logSecurityEvent, logger, measureRenderPerformance, parsePermission, performanceBudgetMonitor, securityMonitor, setOrganisationContext, setRBACAppName, trackDynamicImport, transformPermissionMapToBoolean, validateDeviceFingerprint, validateImportPattern, validateSecurityHeaders };
|
|
648
|
+
export { CachedAppIdResolver, DebugLogger, LazyDataTable, LogLevel, Logger, type LoggerConfig, PERFORMANCE_BUDGETS, PERFORMANCE_THRESHOLDS, type PerformanceMetrics$1 as PerformanceMetrics, PermissionType, type SecurityEvent$1 as SecurityEvent, auditLog, auditLogger, bundleAnalyzer, cachedAppIdResolver, clearOrganisationContext, createLazyComponent, createLazyUtility, createLogger, createPerformanceBenchmark, emailSchema, generateDeviceFingerprint, getAppId, getAppIds, getAppNameFromBuildTime, getAppNameFromEnvironment, getAppNameFromGlobal, getAppNameFromPackageJson, getCurrentAppName, getCurrentAppNameWithFallback, getOrganisationContext, getSecurityHeaders, hasAllPermissions, hasAnyPermission, hasPermission, isOrganisationContextAvailable, lazyCSVUtils, lazyChartUtils, lazyDateUtils, lazyFormUtils, lazyLodash, loadCSVUtils, loadChartUtils, loadDateUtils, loadFormUtils, loadLodash, logAuditEvent, logAuthEvent, logPermissionEvent, logSecurityEvent, logger, measureRenderPerformance, nameSchema, parsePermission, passwordSchema, performanceBudgetMonitor, phoneSchema, sanitizeFormData, sanitizeUserInput, securityMonitor, setOrganisationContext, setRBACAppName, trackDynamicImport, transformPermissionMapToBoolean, urlSchema, usernameSchema, validateDeviceFingerprint, validateImportPattern, validateSecurityHeaders, validateUserInput };
|
package/dist/utils.js
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
getAppId,
|
|
18
18
|
getAppIds
|
|
19
19
|
} from "./chunk-S5OFRT4M.js";
|
|
20
|
+
import "./chunk-OWAG3GSU.js";
|
|
20
21
|
import {
|
|
21
22
|
getAppNameFromBuildTime,
|
|
22
23
|
getAppNameFromEnvironment,
|
|
@@ -27,17 +28,7 @@ import {
|
|
|
27
28
|
setRBACAppName
|
|
28
29
|
} from "./chunk-Q5QRDWKI.js";
|
|
29
30
|
import {
|
|
30
|
-
buildSafeQueryParams,
|
|
31
|
-
calculatePasswordStrength,
|
|
32
|
-
csrfManager,
|
|
33
|
-
dateSchema,
|
|
34
31
|
deepMerge,
|
|
35
|
-
detectSQLInjection,
|
|
36
|
-
emailSchema,
|
|
37
|
-
emailSchema2,
|
|
38
|
-
escapeLikeQuery,
|
|
39
|
-
generateCSRFToken,
|
|
40
|
-
getCSRFToken,
|
|
41
32
|
isEmpty,
|
|
42
33
|
isObject,
|
|
43
34
|
isStrongPassword,
|
|
@@ -45,35 +36,8 @@ import {
|
|
|
45
36
|
isValidEmail,
|
|
46
37
|
isValidUrl,
|
|
47
38
|
isWithinRange,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
nameSchema,
|
|
51
|
-
nameSchema2,
|
|
52
|
-
orderBySchema,
|
|
53
|
-
passwordSchema,
|
|
54
|
-
passwordSchema2,
|
|
55
|
-
phoneSchema,
|
|
56
|
-
phoneSchema2,
|
|
57
|
-
sanitizeFilters,
|
|
58
|
-
sanitizeFormData,
|
|
59
|
-
sanitizeSearchQuery,
|
|
60
|
-
sanitizeUserInput,
|
|
61
|
-
sanitizeUserInput_deprecated,
|
|
62
|
-
searchQuerySchema,
|
|
63
|
-
sqlIdentifierSchema,
|
|
64
|
-
urlSchema,
|
|
65
|
-
urlSchema2,
|
|
66
|
-
userPreferencesSchema,
|
|
67
|
-
userSettingsSchema,
|
|
68
|
-
usernameSchema,
|
|
69
|
-
validateCSRFToken,
|
|
70
|
-
validateUserInput
|
|
71
|
-
} from "./chunk-APIBCTL2.js";
|
|
72
|
-
import {
|
|
73
|
-
renderSafeHtml,
|
|
74
|
-
sanitizeHtml,
|
|
75
|
-
validateHtml
|
|
76
|
-
} from "./chunk-5DPZ5EAT.js";
|
|
39
|
+
matchesPattern
|
|
40
|
+
} from "./chunk-JISYG63F.js";
|
|
77
41
|
import {
|
|
78
42
|
useComponentPerformance
|
|
79
43
|
} from "./chunk-ANBQRTPX.js";
|
|
@@ -88,25 +52,15 @@ import {
|
|
|
88
52
|
clearOrganisationContext,
|
|
89
53
|
getOrganisationContext,
|
|
90
54
|
init_organisationContext,
|
|
55
|
+
init_secureStorage,
|
|
91
56
|
isOrganisationContextAvailable,
|
|
57
|
+
secureStorage,
|
|
92
58
|
setOrganisationContext
|
|
93
|
-
} from "./chunk-
|
|
94
|
-
import {
|
|
95
|
-
init_secureStorage,
|
|
96
|
-
secureStorage
|
|
97
|
-
} from "./chunk-444EZN6N.js";
|
|
59
|
+
} from "./chunk-7QCC6MCP.js";
|
|
98
60
|
import {
|
|
99
|
-
changePasswordSchema,
|
|
100
61
|
combineSchemas,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
passwordResetSchema,
|
|
104
|
-
pickSchema,
|
|
105
|
-
registrationSchema,
|
|
106
|
-
secureLoginSchema,
|
|
107
|
-
securePasswordSchema,
|
|
108
|
-
userProfileSchema
|
|
109
|
-
} from "./chunk-LMC26NLJ.js";
|
|
62
|
+
pickSchema
|
|
63
|
+
} from "./chunk-BJPBT3CU.js";
|
|
110
64
|
import {
|
|
111
65
|
LogLevel,
|
|
112
66
|
Logger,
|
|
@@ -169,11 +123,210 @@ var DebugLogger = class {
|
|
|
169
123
|
// src/utils/index.ts
|
|
170
124
|
init_logger();
|
|
171
125
|
|
|
126
|
+
// src/utils/validation/validationUtils.ts
|
|
127
|
+
import { z as z2 } from "zod";
|
|
128
|
+
|
|
129
|
+
// src/utils/validation/sanitization.ts
|
|
130
|
+
import { z } from "zod";
|
|
131
|
+
var DEFAULT_OPTIONS = {
|
|
132
|
+
allowHtml: false,
|
|
133
|
+
allowedTags: [],
|
|
134
|
+
maxLength: 1e3,
|
|
135
|
+
trim: true,
|
|
136
|
+
removeScripts: true,
|
|
137
|
+
removeEvents: true
|
|
138
|
+
};
|
|
139
|
+
function sanitizeUserInput(input, options = {}) {
|
|
140
|
+
if (typeof input !== "string") {
|
|
141
|
+
return "";
|
|
142
|
+
}
|
|
143
|
+
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
144
|
+
let sanitized = input;
|
|
145
|
+
if (opts.trim) {
|
|
146
|
+
sanitized = sanitized.trim();
|
|
147
|
+
}
|
|
148
|
+
if (opts.maxLength && sanitized.length > opts.maxLength) {
|
|
149
|
+
sanitized = sanitized.substring(0, opts.maxLength);
|
|
150
|
+
}
|
|
151
|
+
if (!opts.allowHtml) {
|
|
152
|
+
sanitized = sanitized.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/");
|
|
153
|
+
} else if (opts.allowedTags && opts.allowedTags.length > 0) {
|
|
154
|
+
const allowedTagsRegex = new RegExp(`<(?!/?(?:${opts.allowedTags.join("|")})s*/?>)[^>]+>`, "gi");
|
|
155
|
+
sanitized = sanitized.replace(allowedTagsRegex, "");
|
|
156
|
+
}
|
|
157
|
+
if (opts.removeScripts) {
|
|
158
|
+
sanitized = sanitized.replace(/<script[^>]*>.*?<\/script>/gi, "").replace(/javascript:/gi, "").replace(/vbscript:/gi, "").replace(/data:/gi, "");
|
|
159
|
+
}
|
|
160
|
+
if (opts.removeEvents) {
|
|
161
|
+
sanitized = sanitized.replace(/on\w+\s*=/gi, "");
|
|
162
|
+
}
|
|
163
|
+
return sanitized;
|
|
164
|
+
}
|
|
165
|
+
function sanitizeEmail(email) {
|
|
166
|
+
if (typeof email !== "string") {
|
|
167
|
+
return "";
|
|
168
|
+
}
|
|
169
|
+
return email.trim().toLowerCase().replace(/[^\w@.-]/g, "");
|
|
170
|
+
}
|
|
171
|
+
function sanitizeFormData(data, schema, sanitizationRules) {
|
|
172
|
+
try {
|
|
173
|
+
if (sanitizationRules && typeof data === "object" && data !== null) {
|
|
174
|
+
const sanitizedData = { ...data };
|
|
175
|
+
Object.entries(sanitizationRules).forEach(([field, options]) => {
|
|
176
|
+
if (typeof sanitizedData[field] === "string") {
|
|
177
|
+
sanitizedData[field] = sanitizeUserInput(sanitizedData[field], options);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
data = sanitizedData;
|
|
181
|
+
}
|
|
182
|
+
const result = schema.parse(data);
|
|
183
|
+
return { success: true, data: result };
|
|
184
|
+
} catch (error) {
|
|
185
|
+
if (error instanceof z.ZodError) {
|
|
186
|
+
return {
|
|
187
|
+
success: false,
|
|
188
|
+
error: error.errors.map((e) => e.message).join(", ")
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
success: false,
|
|
193
|
+
error: "Validation failed"
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
var secureEmailSchema = z.string().min(1, "Email is required").email("Invalid email format").max(254, "Email too long").refine(
|
|
198
|
+
(email) => {
|
|
199
|
+
if (!email || typeof email !== "string") return false;
|
|
200
|
+
const domain = email.split("@")[1];
|
|
201
|
+
return domain && domain.includes(".") && domain.length > 3;
|
|
202
|
+
},
|
|
203
|
+
"Invalid email domain"
|
|
204
|
+
).transform((email) => sanitizeEmail(email));
|
|
205
|
+
var emailSchema = z.string().min(1, "Email is required").email("Invalid email format");
|
|
206
|
+
var nameSchema = z.string().min(1, "Name is required").max(100, "Name too long").regex(/^[a-zA-Z\s'-]+$/, "Name contains invalid characters");
|
|
207
|
+
var phoneSchema = z.string().regex(/^[\+]?[1-9][\d]{0,15}$/, "Invalid phone number format");
|
|
208
|
+
var urlSchema = z.string().url("Invalid URL format");
|
|
209
|
+
var dateSchema = z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Invalid date format (YYYY-MM-DD)");
|
|
210
|
+
var secureLoginSchema = z.object({
|
|
211
|
+
email: secureEmailSchema,
|
|
212
|
+
password: z.string().min(1, "Password is required")
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
// src/utils/validation/validationUtils.ts
|
|
216
|
+
init_logger();
|
|
217
|
+
var log = createLogger("ValidationUtils");
|
|
218
|
+
function validateUserInput(schema, data, sanitizationRules) {
|
|
219
|
+
return sanitizeFormData(data, schema, sanitizationRules);
|
|
220
|
+
}
|
|
221
|
+
var emailSchema2 = z2.string().transform((email) => email.toLowerCase().trim()).pipe(z2.string().min(1, "Email is required").email("Invalid email format").max(254, "Email too long"));
|
|
222
|
+
var passwordSchema = z2.string().min(8, "Password must be at least 8 characters").max(128, "Password too long").regex(/[A-Z]/, "Password must contain at least one uppercase letter").regex(/[a-z]/, "Password must contain at least one lowercase letter").regex(/[0-9]/, "Password must contain at least one number").regex(/[^A-Za-z0-9]/, "Password must contain at least one special character");
|
|
223
|
+
var usernameSchema = z2.string().transform((username) => username.toLowerCase().trim()).pipe(z2.string().min(3, "Username must be at least 3 characters").max(30, "Username too long").regex(/^[a-zA-Z0-9_-]+$/, "Username can only contain letters, numbers, hyphens, and underscores"));
|
|
224
|
+
var nameSchema2 = z2.string().min(1, "Name is required").max(100, "Name too long").refine((name) => {
|
|
225
|
+
const dangerousPatterns = [
|
|
226
|
+
/<script/i,
|
|
227
|
+
/<img/i,
|
|
228
|
+
/on\w+\s*=/i,
|
|
229
|
+
/javascript:/i,
|
|
230
|
+
/data:/i,
|
|
231
|
+
/vbscript:/i
|
|
232
|
+
];
|
|
233
|
+
return !dangerousPatterns.some((pattern) => pattern.test(name));
|
|
234
|
+
}, "Name contains invalid characters").transform((name) => sanitizeUserInput(name, {
|
|
235
|
+
allowHtml: false,
|
|
236
|
+
maxLength: 100,
|
|
237
|
+
trim: true
|
|
238
|
+
}));
|
|
239
|
+
var phoneSchema2 = z2.string().min(10, "Phone number must be at least 10 digits").max(20, "Phone number too long").regex(/^[\+]?[0-9\s\-\(\)\.]+$/, "Invalid phone number format").refine((phone) => {
|
|
240
|
+
const digitsOnly = phone.replace(/\D/g, "");
|
|
241
|
+
return digitsOnly.length >= 10 && digitsOnly.length <= 15;
|
|
242
|
+
}, "Phone number must be between 10 and 15 digits");
|
|
243
|
+
var urlSchema2 = z2.string().min(1, "URL is required").max(2048, "URL too long").refine((url) => {
|
|
244
|
+
try {
|
|
245
|
+
const parsed = new URL(url);
|
|
246
|
+
return ["http:", "https:"].includes(parsed.protocol);
|
|
247
|
+
} catch {
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
}, "Invalid URL format").refine((url) => {
|
|
251
|
+
const dangerousPatterns = [
|
|
252
|
+
/javascript:/i,
|
|
253
|
+
/data:/i,
|
|
254
|
+
/vbscript:/i,
|
|
255
|
+
/file:/i,
|
|
256
|
+
/mailto:/i
|
|
257
|
+
];
|
|
258
|
+
return !dangerousPatterns.some((pattern) => pattern.test(url));
|
|
259
|
+
}, "URL contains invalid protocol");
|
|
260
|
+
|
|
261
|
+
// src/utils/validation/common.ts
|
|
262
|
+
import { z as z3 } from "zod";
|
|
263
|
+
var emailSchema3 = z3.string().min(1, "Email is required").email("Invalid email format").max(254, "Email too long");
|
|
264
|
+
var nameSchema3 = z3.string().min(1, "Name is required").max(100, "Name too long").regex(/^[a-zA-Z\s'-]+$/, "Name contains invalid characters");
|
|
265
|
+
var phoneSchema3 = z3.string().regex(/^\+?[\d\s\-\(\)]+$/, "Invalid phone number format").min(10, "Phone number too short").max(20, "Phone number too long");
|
|
266
|
+
var urlSchema3 = z3.string().url("Invalid URL format").max(2048, "URL too long");
|
|
267
|
+
var dateSchema2 = z3.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Date must be in YYYY-MM-DD format").refine((date) => {
|
|
268
|
+
const parsed = new Date(date);
|
|
269
|
+
return !isNaN(parsed.getTime());
|
|
270
|
+
}, "Invalid date");
|
|
271
|
+
|
|
272
|
+
// src/utils/validation/passwordSchema.ts
|
|
273
|
+
import { z as z4 } from "zod";
|
|
274
|
+
var COMMON_PASSWORDS = /* @__PURE__ */ new Set([
|
|
275
|
+
"password",
|
|
276
|
+
"123456",
|
|
277
|
+
"123456789",
|
|
278
|
+
"qwerty",
|
|
279
|
+
"abc123",
|
|
280
|
+
"password123",
|
|
281
|
+
"admin",
|
|
282
|
+
"letmein",
|
|
283
|
+
"welcome",
|
|
284
|
+
"monkey",
|
|
285
|
+
"1234567890",
|
|
286
|
+
"password1"
|
|
287
|
+
]);
|
|
288
|
+
var WEAK_PATTERNS = [
|
|
289
|
+
/^(.)\1+$/,
|
|
290
|
+
// All same character
|
|
291
|
+
/^(012|123|234|345|456|567|678|789|890|987|876|765|654|543|432|321|210)+/,
|
|
292
|
+
// Sequential numbers
|
|
293
|
+
/^(abc|bcd|cde|def|efg|fgh|ghi|hij|ijk|jkl|klm|lmn|mno|nop|opq|pqr|qrs|rst|stu|tuv|uvw|vwx|wxy|xyz)+/i
|
|
294
|
+
// Sequential letters
|
|
295
|
+
];
|
|
296
|
+
var securePasswordSchema = z4.string().min(8, "Password must be at least 8 characters long").max(128, "Password must not exceed 128 characters").refine(
|
|
297
|
+
(password) => /[a-z]/.test(password),
|
|
298
|
+
"Password must contain at least one lowercase letter"
|
|
299
|
+
).refine(
|
|
300
|
+
(password) => /[A-Z]/.test(password),
|
|
301
|
+
"Password must contain at least one uppercase letter"
|
|
302
|
+
).refine(
|
|
303
|
+
(password) => /\d/.test(password),
|
|
304
|
+
"Password must contain at least one number"
|
|
305
|
+
).refine(
|
|
306
|
+
(password) => /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password),
|
|
307
|
+
"Password must contain at least one special character"
|
|
308
|
+
).refine(
|
|
309
|
+
(password) => !COMMON_PASSWORDS.has(password.toLowerCase()),
|
|
310
|
+
"Password is too common. Please choose a stronger password"
|
|
311
|
+
).refine(
|
|
312
|
+
(password) => !WEAK_PATTERNS.some((pattern) => pattern.test(password)),
|
|
313
|
+
"Password contains weak patterns. Please choose a more complex password"
|
|
314
|
+
).refine(
|
|
315
|
+
(password) => {
|
|
316
|
+
const keyboardPatterns = ["qwerty", "asdfgh", "zxcvbn", "1234567890"];
|
|
317
|
+
return !keyboardPatterns.some(
|
|
318
|
+
(pattern) => password.toLowerCase().includes(pattern)
|
|
319
|
+
);
|
|
320
|
+
},
|
|
321
|
+
"Password contains keyboard patterns. Please choose a more secure password"
|
|
322
|
+
);
|
|
323
|
+
var passwordSchema2 = z4.string().min(6, "Password must be at least 6 characters long").max(128, "Password must not exceed 128 characters");
|
|
324
|
+
|
|
172
325
|
// src/utils/security/security.ts
|
|
173
326
|
init_logger();
|
|
174
|
-
var
|
|
327
|
+
var log2 = createLogger("Security");
|
|
175
328
|
function logSecurityEvent(event) {
|
|
176
|
-
|
|
329
|
+
log2.warn("Security event:", {
|
|
177
330
|
...event,
|
|
178
331
|
timestamp: event.timestamp.toISOString()
|
|
179
332
|
});
|
|
@@ -449,7 +602,7 @@ function createLazyComponent(importFn, componentName, options = {}) {
|
|
|
449
602
|
return WrappedComponent;
|
|
450
603
|
}
|
|
451
604
|
var LazyDataTable = createLazyComponent(
|
|
452
|
-
() => import("./DataTable-
|
|
605
|
+
() => import("./DataTable-JXFCA2BJ.js").then((module) => ({ default: module.DataTable })),
|
|
453
606
|
"DataTable"
|
|
454
607
|
);
|
|
455
608
|
|
|
@@ -726,37 +879,23 @@ export {
|
|
|
726
879
|
PermissionType,
|
|
727
880
|
auditLog,
|
|
728
881
|
auditLogger,
|
|
729
|
-
buildSafeQueryParams,
|
|
730
882
|
bundleAnalyzer,
|
|
731
883
|
cachedAppIdResolver,
|
|
732
|
-
calculatePasswordStrength,
|
|
733
|
-
changePasswordSchema,
|
|
734
884
|
clearOrganisationContext,
|
|
735
885
|
cn,
|
|
736
886
|
combineSchemas,
|
|
737
|
-
contactFormSchema,
|
|
738
887
|
createLazyComponent,
|
|
739
888
|
createLazyUtility,
|
|
740
889
|
createLogger,
|
|
741
890
|
createPerformanceBenchmark,
|
|
742
|
-
csrfManager,
|
|
743
|
-
dateSchema,
|
|
744
891
|
deepMerge,
|
|
745
|
-
|
|
746
|
-
emailSchema2 as emailSchema,
|
|
747
|
-
emailSchema as enhancedEmailSchema,
|
|
748
|
-
nameSchema as enhancedNameSchema,
|
|
749
|
-
passwordSchema as enhancedPasswordSchema,
|
|
750
|
-
phoneSchema as enhancedPhoneSchema,
|
|
751
|
-
urlSchema as enhancedUrlSchema,
|
|
752
|
-
escapeLikeQuery,
|
|
892
|
+
emailSchema3 as emailSchema,
|
|
753
893
|
formatCompactNumber,
|
|
754
894
|
formatCurrency,
|
|
755
895
|
formatDate,
|
|
756
896
|
formatFileSize,
|
|
757
897
|
formatNumber,
|
|
758
898
|
formatPercent,
|
|
759
|
-
generateCSRFToken,
|
|
760
899
|
generateDeviceFingerprint,
|
|
761
900
|
getAppConfig,
|
|
762
901
|
getAppId,
|
|
@@ -765,7 +904,6 @@ export {
|
|
|
765
904
|
getAppNameFromEnvironment,
|
|
766
905
|
getAppNameFromGlobal,
|
|
767
906
|
getAppNameFromPackageJson,
|
|
768
|
-
getCSRFToken,
|
|
769
907
|
getCurrentAppId,
|
|
770
908
|
getCurrentAppName,
|
|
771
909
|
getCurrentAppNameWithFallback,
|
|
@@ -787,7 +925,6 @@ export {
|
|
|
787
925
|
lazyDateUtils,
|
|
788
926
|
lazyFormUtils,
|
|
789
927
|
lazyLodash,
|
|
790
|
-
limitOffsetSchema,
|
|
791
928
|
loadCSVUtils,
|
|
792
929
|
loadChartUtils,
|
|
793
930
|
loadDateUtils,
|
|
@@ -798,46 +935,27 @@ export {
|
|
|
798
935
|
logPermissionEvent,
|
|
799
936
|
logSecurityEvent2 as logSecurityEvent,
|
|
800
937
|
logger,
|
|
801
|
-
loginSchema,
|
|
802
938
|
matchesPattern,
|
|
803
939
|
measureRenderPerformance,
|
|
804
|
-
|
|
805
|
-
orderBySchema,
|
|
940
|
+
nameSchema3 as nameSchema,
|
|
806
941
|
parsePermission,
|
|
807
|
-
passwordResetSchema,
|
|
808
942
|
passwordSchema2 as passwordSchema,
|
|
809
943
|
performanceBudgetMonitor,
|
|
810
|
-
|
|
944
|
+
phoneSchema3 as phoneSchema,
|
|
811
945
|
pickSchema,
|
|
812
|
-
registrationSchema,
|
|
813
|
-
renderSafeHtml,
|
|
814
|
-
sanitizeFilters,
|
|
815
946
|
sanitizeFormData,
|
|
816
|
-
sanitizeHtml,
|
|
817
|
-
sanitizeHtml as sanitizeHtmlAdvanced,
|
|
818
|
-
sanitizeSearchQuery,
|
|
819
947
|
sanitizeUserInput,
|
|
820
|
-
sanitizeUserInput_deprecated,
|
|
821
|
-
searchQuerySchema,
|
|
822
|
-
secureLoginSchema,
|
|
823
|
-
securePasswordSchema,
|
|
824
948
|
securityMonitor,
|
|
825
949
|
setAppConfig,
|
|
826
950
|
setOrganisationContext,
|
|
827
951
|
setRBACAppName,
|
|
828
|
-
sqlIdentifierSchema,
|
|
829
952
|
trackDynamicImport,
|
|
830
953
|
transformPermissionMapToBoolean,
|
|
831
|
-
|
|
954
|
+
urlSchema3 as urlSchema,
|
|
832
955
|
useComponentPerformance,
|
|
833
956
|
useSessionTracking,
|
|
834
|
-
userPreferencesSchema,
|
|
835
|
-
userProfileSchema,
|
|
836
|
-
userSettingsSchema,
|
|
837
957
|
usernameSchema,
|
|
838
|
-
validateCSRFToken,
|
|
839
958
|
validateDeviceFingerprint,
|
|
840
|
-
validateHtml,
|
|
841
959
|
validateImportPattern,
|
|
842
960
|
validateSecurityHeaders,
|
|
843
961
|
validateUserInput
|