@jmruthers/pace-core 0.5.185 → 0.5.187

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.
Files changed (300) hide show
  1. package/dist/{DataTable-Z9NLVJh0.d.ts → DataTable-IVYljGJ6.d.ts} +1 -1
  2. package/dist/{DataTable-IX2NBUTP.js → DataTable-K3RJRSOX.js} +7 -7
  3. package/dist/{PublicPageProvider-BABf6JCh.d.ts → PublicPageProvider-DrLDztHt.d.ts} +214 -107
  4. package/dist/{UnifiedAuthProvider-A4BCQRJY.js → UnifiedAuthProvider-B76OWOAT.js} +2 -2
  5. package/dist/{api-BMFCXVQX.js → api-YP7XD5L6.js} +3 -3
  6. package/dist/{audit-WRS3KJKI.js → audit-B5P6FFIR.js} +2 -2
  7. package/dist/{chunk-445GEP27.js → chunk-3IC5WCMO.js} +33 -8
  8. package/dist/chunk-3IC5WCMO.js.map +1 -0
  9. package/dist/{chunk-OKI34GZD.js → chunk-3NFNJOO7.js} +8 -8
  10. package/dist/chunk-3NFNJOO7.js.map +1 -0
  11. package/dist/{chunk-FSFQFJCU.js → chunk-63FOKYGO.js} +174 -6
  12. package/dist/chunk-63FOKYGO.js.map +1 -0
  13. package/dist/{chunk-MX3EIJGQ.js → chunk-C4OYJOV4.js} +631 -97
  14. package/dist/chunk-C4OYJOV4.js.map +1 -0
  15. package/dist/{chunk-HGPQUCBC.js → chunk-FMTK4XNN.js} +3 -3
  16. package/dist/{chunk-U6WNSFX5.js → chunk-HEHYGYOX.js} +279 -44
  17. package/dist/chunk-HEHYGYOX.js.map +1 -0
  18. package/dist/{chunk-XAUHJD3L.js → chunk-K2JGDXGU.js} +2 -2
  19. package/dist/{chunk-HC67NW5K.js → chunk-LBBUPSSC.js} +863 -552
  20. package/dist/chunk-LBBUPSSC.js.map +1 -0
  21. package/dist/{chunk-IXSNYUCT.js → chunk-SAUPYVLF.js} +1 -1
  22. package/dist/chunk-SAUPYVLF.js.map +1 -0
  23. package/dist/{chunk-AISXLWGZ.js → chunk-T6ZJVI3A.js} +27 -23
  24. package/dist/chunk-T6ZJVI3A.js.map +1 -0
  25. package/dist/{chunk-STTZQK2I.js → chunk-ULX5FYEM.js} +9 -7
  26. package/dist/chunk-ULX5FYEM.js.map +1 -0
  27. package/dist/{chunk-FXFJRTKI.js → chunk-WK2Y6TGA.js} +3 -3
  28. package/dist/chunk-WK2Y6TGA.js.map +1 -0
  29. package/dist/chunk-YHCN776L.js +447 -0
  30. package/dist/chunk-YHCN776L.js.map +1 -0
  31. package/dist/components.d.ts +4 -4
  32. package/dist/components.js +12 -10
  33. package/dist/components.js.map +1 -1
  34. package/dist/{database.generated-CBmg2950.d.ts → database.generated-DI89OQeI.d.ts} +63 -9
  35. package/dist/{file-reference-BjR39ktt.d.ts → file-reference-D037xOFK.d.ts} +3 -1
  36. package/dist/hooks.d.ts +265 -6
  37. package/dist/hooks.js +148 -49
  38. package/dist/hooks.js.map +1 -1
  39. package/dist/index.d.ts +25 -10
  40. package/dist/index.js +65 -30
  41. package/dist/index.js.map +1 -1
  42. package/dist/providers.js +1 -1
  43. package/dist/rbac/index.d.ts +125 -8
  44. package/dist/rbac/index.js +27 -7
  45. package/dist/{types-DUyCRSTj.d.ts → types-Bwgl--Xo.d.ts} +162 -1
  46. package/dist/types.d.ts +2 -2
  47. package/dist/types.js +1 -1
  48. package/dist/{usePublicRouteParams-CvnC3d-e.d.ts → usePublicRouteParams-CTDELQ7H.d.ts} +3 -3
  49. package/dist/utils.d.ts +214 -4
  50. package/dist/utils.js +22 -2
  51. package/dist/utils.js.map +1 -1
  52. package/docs/api/classes/ColumnFactory.md +1 -1
  53. package/docs/api/classes/ErrorBoundary.md +1 -1
  54. package/docs/api/classes/InvalidScopeError.md +1 -1
  55. package/docs/api/classes/Logger.md +1 -1
  56. package/docs/api/classes/MissingUserContextError.md +1 -1
  57. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  58. package/docs/api/classes/PermissionDeniedError.md +1 -1
  59. package/docs/api/classes/RBACAuditManager.md +21 -17
  60. package/docs/api/classes/RBACCache.md +31 -23
  61. package/docs/api/classes/RBACEngine.md +6 -6
  62. package/docs/api/classes/RBACError.md +1 -1
  63. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  64. package/docs/api/classes/SecureSupabaseClient.md +5 -5
  65. package/docs/api/classes/StorageUtils.md +1 -1
  66. package/docs/api/enums/FileCategory.md +1 -1
  67. package/docs/api/enums/LogLevel.md +1 -1
  68. package/docs/api/enums/RBACErrorCode.md +1 -1
  69. package/docs/api/enums/RPCFunction.md +1 -1
  70. package/docs/api/interfaces/AddressFieldProps.md +241 -0
  71. package/docs/api/interfaces/AddressFieldRef.md +94 -0
  72. package/docs/api/interfaces/AggregateConfig.md +1 -1
  73. package/docs/api/interfaces/AutocompleteOptions.md +75 -0
  74. package/docs/api/interfaces/BadgeProps.md +1 -1
  75. package/docs/api/interfaces/ButtonProps.md +1 -1
  76. package/docs/api/interfaces/CalendarProps.md +1 -1
  77. package/docs/api/interfaces/CardProps.md +1 -1
  78. package/docs/api/interfaces/ColorPalette.md +1 -1
  79. package/docs/api/interfaces/ColorShade.md +1 -1
  80. package/docs/api/interfaces/ComplianceResult.md +1 -1
  81. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  82. package/docs/api/interfaces/DataRecord.md +1 -1
  83. package/docs/api/interfaces/DataTableAction.md +1 -1
  84. package/docs/api/interfaces/DataTableColumn.md +1 -1
  85. package/docs/api/interfaces/DataTableProps.md +1 -1
  86. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  87. package/docs/api/interfaces/DatabaseComplianceResult.md +1 -1
  88. package/docs/api/interfaces/DatabaseIssue.md +1 -1
  89. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  90. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  91. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  92. package/docs/api/interfaces/ExportColumn.md +1 -1
  93. package/docs/api/interfaces/ExportOptions.md +1 -1
  94. package/docs/api/interfaces/FileDisplayProps.md +15 -15
  95. package/docs/api/interfaces/FileMetadata.md +1 -1
  96. package/docs/api/interfaces/FileReference.md +1 -1
  97. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  98. package/docs/api/interfaces/FileUploadOptions.md +33 -9
  99. package/docs/api/interfaces/FileUploadProps.md +36 -14
  100. package/docs/api/interfaces/FooterProps.md +1 -1
  101. package/docs/api/interfaces/FormFieldProps.md +1 -1
  102. package/docs/api/interfaces/FormProps.md +1 -1
  103. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  104. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  105. package/docs/api/interfaces/InputProps.md +1 -1
  106. package/docs/api/interfaces/LabelProps.md +1 -1
  107. package/docs/api/interfaces/LoggerConfig.md +1 -1
  108. package/docs/api/interfaces/LoginFormProps.md +1 -1
  109. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  110. package/docs/api/interfaces/NavigationContextType.md +1 -1
  111. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  112. package/docs/api/interfaces/NavigationItem.md +1 -1
  113. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  114. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  115. package/docs/api/interfaces/Organisation.md +1 -1
  116. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  117. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  118. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  119. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  120. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  121. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  122. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  123. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  124. package/docs/api/interfaces/PagePermissionGuardProps.md +11 -11
  125. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  126. package/docs/api/interfaces/PaletteData.md +1 -1
  127. package/docs/api/interfaces/ParsedAddress.md +120 -0
  128. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  129. package/docs/api/interfaces/ProgressProps.md +1 -1
  130. package/docs/api/interfaces/ProtectedRouteProps.md +6 -6
  131. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  132. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  133. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  134. package/docs/api/interfaces/QuickFix.md +1 -1
  135. package/docs/api/interfaces/RBACAccessValidateParams.md +1 -1
  136. package/docs/api/interfaces/RBACAccessValidateResult.md +1 -1
  137. package/docs/api/interfaces/RBACAuditLogParams.md +1 -1
  138. package/docs/api/interfaces/RBACAuditLogResult.md +1 -1
  139. package/docs/api/interfaces/RBACConfig.md +27 -4
  140. package/docs/api/interfaces/RBACContext.md +1 -1
  141. package/docs/api/interfaces/RBACLogger.md +5 -5
  142. package/docs/api/interfaces/RBACPageAccessCheckParams.md +1 -1
  143. package/docs/api/interfaces/RBACPerformanceMetrics.md +138 -0
  144. package/docs/api/interfaces/RBACPermissionCheckParams.md +1 -1
  145. package/docs/api/interfaces/RBACPermissionCheckResult.md +1 -1
  146. package/docs/api/interfaces/RBACPermissionsGetParams.md +1 -1
  147. package/docs/api/interfaces/RBACPermissionsGetResult.md +1 -1
  148. package/docs/api/interfaces/RBACResult.md +1 -1
  149. package/docs/api/interfaces/RBACRoleGrantParams.md +1 -1
  150. package/docs/api/interfaces/RBACRoleGrantResult.md +1 -1
  151. package/docs/api/interfaces/RBACRoleRevokeParams.md +1 -1
  152. package/docs/api/interfaces/RBACRoleRevokeResult.md +1 -1
  153. package/docs/api/interfaces/RBACRoleValidateParams.md +1 -1
  154. package/docs/api/interfaces/RBACRoleValidateResult.md +1 -1
  155. package/docs/api/interfaces/RBACRolesListParams.md +1 -1
  156. package/docs/api/interfaces/RBACRolesListResult.md +1 -1
  157. package/docs/api/interfaces/RBACSessionTrackParams.md +1 -1
  158. package/docs/api/interfaces/RBACSessionTrackResult.md +1 -1
  159. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  160. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  161. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  162. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  163. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  164. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  165. package/docs/api/interfaces/RouteConfig.md +1 -1
  166. package/docs/api/interfaces/RuntimeComplianceResult.md +1 -1
  167. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  168. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  169. package/docs/api/interfaces/SessionRestorationLoaderProps.md +1 -1
  170. package/docs/api/interfaces/SetupIssue.md +1 -1
  171. package/docs/api/interfaces/StorageConfig.md +1 -1
  172. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  173. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  174. package/docs/api/interfaces/StorageListOptions.md +1 -1
  175. package/docs/api/interfaces/StorageListResult.md +1 -1
  176. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  177. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  178. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  179. package/docs/api/interfaces/StyleImport.md +1 -1
  180. package/docs/api/interfaces/SwitchProps.md +1 -1
  181. package/docs/api/interfaces/TabsContentProps.md +1 -1
  182. package/docs/api/interfaces/TabsListProps.md +1 -1
  183. package/docs/api/interfaces/TabsProps.md +1 -1
  184. package/docs/api/interfaces/TabsTriggerProps.md +1 -1
  185. package/docs/api/interfaces/TextareaProps.md +1 -1
  186. package/docs/api/interfaces/ToastActionElement.md +1 -1
  187. package/docs/api/interfaces/ToastProps.md +1 -1
  188. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  189. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  190. package/docs/api/interfaces/UseFormDialogOptions.md +1 -1
  191. package/docs/api/interfaces/UseFormDialogReturn.md +1 -1
  192. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  193. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  194. package/docs/api/interfaces/UsePublicEventLogoOptions.md +2 -2
  195. package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
  196. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  197. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  198. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +2 -2
  199. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  200. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  201. package/docs/api/interfaces/UseResolvedScopeOptions.md +2 -2
  202. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  203. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  204. package/docs/api/interfaces/UserEventAccess.md +1 -1
  205. package/docs/api/interfaces/UserMenuProps.md +1 -1
  206. package/docs/api/interfaces/UserProfile.md +1 -1
  207. package/docs/api/modules.md +328 -69
  208. package/docs/api-reference/components.md +26 -12
  209. package/docs/best-practices/performance.md +11 -0
  210. package/docs/implementation-guides/file-reference-system.md +24 -2
  211. package/docs/implementation-guides/file-upload-storage.md +38 -1
  212. package/docs/rbac/README.md +2 -1
  213. package/docs/rbac/api-reference.md +11 -0
  214. package/docs/rbac/performance.md +320 -0
  215. package/docs/standards/01-architecture-standard.md +5 -0
  216. package/docs/standards/05-security-standard.md +12 -0
  217. package/package.json +1 -1
  218. package/scripts/check-pace-core-compliance.js +512 -0
  219. package/src/components/AddressField/AddressField.test.tsx +411 -0
  220. package/src/components/AddressField/AddressField.tsx +323 -0
  221. package/src/components/AddressField/README.md +336 -0
  222. package/src/components/AddressField/index.ts +10 -0
  223. package/src/components/AddressField/types.ts +65 -0
  224. package/src/components/FileDisplay/FileDisplay.test.tsx +454 -0
  225. package/src/components/FileDisplay/FileDisplay.tsx +28 -1
  226. package/src/components/FileUpload/FileUpload.test.tsx +2 -0
  227. package/src/components/FileUpload/FileUpload.tsx +7 -1
  228. package/src/components/Header/Header.tsx +2 -5
  229. package/src/components/ProtectedRoute/ProtectedRoute.tsx +134 -1
  230. package/src/components/index.ts +2 -0
  231. package/src/hooks/__tests__/useFileDisplay.unit.test.ts +30 -5
  232. package/src/hooks/__tests__/useOrganisationSecurity.unit.test.tsx +11 -10
  233. package/src/hooks/__tests__/usePublicFileDisplay.test.ts +31 -6
  234. package/src/hooks/index.ts +9 -0
  235. package/src/hooks/public/usePublicFileDisplay.ts +8 -10
  236. package/src/hooks/useAddressAutocomplete.test.ts +318 -0
  237. package/src/hooks/useAddressAutocomplete.ts +268 -0
  238. package/src/hooks/useFileDisplay.ts +3 -15
  239. package/src/hooks/useFileReference.test.ts +21 -3
  240. package/src/hooks/useFileReference.ts +3 -24
  241. package/src/hooks/useFileUrlCache.ts +246 -0
  242. package/src/hooks/useInactivityTracker.ts +31 -20
  243. package/src/hooks/useOrganisationSecurity.test.ts +10 -7
  244. package/src/hooks/useOrganisationSecurity.ts +3 -3
  245. package/src/hooks/usePreventTabReload.ts +106 -0
  246. package/src/hooks/useQueryCache.ts +315 -0
  247. package/src/hooks/useSecureDataAccess.ts +2 -2
  248. package/src/index.ts +2 -0
  249. package/src/providers/services/EventServiceProvider.tsx +4 -1
  250. package/src/rbac/__tests__/rbac-role-isolation.test.ts +456 -0
  251. package/src/rbac/api.test.ts +21 -6
  252. package/src/rbac/api.ts +32 -11
  253. package/src/rbac/audit-batched.ts +223 -0
  254. package/src/rbac/audit-enhanced.ts +2 -2
  255. package/src/rbac/audit.test.ts +6 -5
  256. package/src/rbac/audit.ts +34 -6
  257. package/src/rbac/cache-invalidation.ts +63 -12
  258. package/src/rbac/cache.test.ts +2 -2
  259. package/src/rbac/cache.ts +61 -14
  260. package/src/rbac/components/PagePermissionGuard.tsx +19 -10
  261. package/src/rbac/components/__tests__/PagePermissionGuard.performance.test.tsx +248 -0
  262. package/src/rbac/config.ts +9 -0
  263. package/src/rbac/engine.ts +2 -21
  264. package/src/rbac/hooks/usePermissions.ts +21 -5
  265. package/src/rbac/index.ts +19 -0
  266. package/src/rbac/performance.ts +210 -0
  267. package/src/rbac/request-deduplication.ts +87 -0
  268. package/src/rbac/utils/deep-equal.ts +93 -0
  269. package/src/styles/core.css +5 -5
  270. package/src/types/database.generated.ts +63 -9
  271. package/src/types/file-reference.ts +3 -1
  272. package/src/utils/file-reference/__tests__/file-reference.test.ts +89 -8
  273. package/src/utils/file-reference/index.ts +56 -17
  274. package/src/utils/google-places/googlePlacesUtils.test.ts +403 -0
  275. package/src/utils/google-places/googlePlacesUtils.ts +475 -0
  276. package/src/utils/google-places/index.ts +26 -0
  277. package/src/utils/google-places/loadGoogleMapsScript.ts +207 -0
  278. package/src/utils/google-places/types.ts +94 -0
  279. package/src/utils/index.ts +23 -0
  280. package/src/utils/request-deduplication.ts +165 -0
  281. package/src/utils/security/secureDataAccess.ts +1 -1
  282. package/src/utils/storage/helpers.ts +211 -4
  283. package/dist/chunk-445GEP27.js.map +0 -1
  284. package/dist/chunk-AISXLWGZ.js.map +0 -1
  285. package/dist/chunk-FMUCXFII.js +0 -76
  286. package/dist/chunk-FMUCXFII.js.map +0 -1
  287. package/dist/chunk-FSFQFJCU.js.map +0 -1
  288. package/dist/chunk-FXFJRTKI.js.map +0 -1
  289. package/dist/chunk-HC67NW5K.js.map +0 -1
  290. package/dist/chunk-IXSNYUCT.js.map +0 -1
  291. package/dist/chunk-MX3EIJGQ.js.map +0 -1
  292. package/dist/chunk-OKI34GZD.js.map +0 -1
  293. package/dist/chunk-STTZQK2I.js.map +0 -1
  294. package/dist/chunk-U6WNSFX5.js.map +0 -1
  295. /package/dist/{DataTable-IX2NBUTP.js.map → DataTable-K3RJRSOX.js.map} +0 -0
  296. /package/dist/{UnifiedAuthProvider-A4BCQRJY.js.map → UnifiedAuthProvider-B76OWOAT.js.map} +0 -0
  297. /package/dist/{api-BMFCXVQX.js.map → api-YP7XD5L6.js.map} +0 -0
  298. /package/dist/{audit-WRS3KJKI.js.map → audit-B5P6FFIR.js.map} +0 -0
  299. /package/dist/{chunk-HGPQUCBC.js.map → chunk-FMTK4XNN.js.map} +0 -0
  300. /package/dist/{chunk-XAUHJD3L.js.map → chunk-K2JGDXGU.js.map} +0 -0
@@ -1,6 +1,167 @@
1
1
  import React__default from 'react';
2
2
  import { ColumnDef, SortingState, ColumnFiltersState, GroupingState } from '@tanstack/react-table';
3
3
 
4
+ /**
5
+ * @file Google Places API Types
6
+ * @package @jmruthers/pace-core
7
+ * @module Utils/GooglePlaces
8
+ * @since 0.1.0
9
+ */
10
+ /**
11
+ * Google Places Autocomplete API response prediction
12
+ */
13
+ interface GooglePlaceAutocompletePrediction {
14
+ description: string;
15
+ place_id: string;
16
+ structured_formatting?: {
17
+ main_text: string;
18
+ secondary_text: string;
19
+ };
20
+ types?: string[];
21
+ }
22
+ /**
23
+ * Parsed address matching pace_address table structure
24
+ */
25
+ interface ParsedAddress {
26
+ place_id: string;
27
+ full_address: string | null;
28
+ street_number: string | null;
29
+ route: string | null;
30
+ suburb: string | null;
31
+ state: string | null;
32
+ postcode: string | null;
33
+ country: string | null;
34
+ lat: number | null;
35
+ lng: number | null;
36
+ }
37
+ /**
38
+ * Options for Google Places Autocomplete API
39
+ */
40
+ interface AutocompleteOptions {
41
+ /** Restrict results to specific countries (ISO 3166-1 Alpha-2 country codes) */
42
+ components?: string;
43
+ /** Location bias (lat,lng) */
44
+ location?: string;
45
+ /** Radius in meters for location bias */
46
+ radius?: number;
47
+ /** Restrict results to specific place types */
48
+ types?: string;
49
+ /** Language code for results */
50
+ language?: string;
51
+ }
52
+
53
+ /**
54
+ * @file Google Maps Script Loader
55
+ * @package @jmruthers/pace-core
56
+ * @module Utils/GooglePlaces
57
+ * @since 0.1.0
58
+ *
59
+ * Utility to dynamically load the Google Maps JavaScript API.
60
+ * This is required because the REST API doesn't support CORS from browsers.
61
+ */
62
+ declare global {
63
+ interface Window {
64
+ google?: {
65
+ maps: {
66
+ places: {
67
+ AutocompleteSuggestion: {
68
+ fetchAutocompleteSuggestions: (request: {
69
+ input: string;
70
+ includedRegionCodes?: string[];
71
+ locationBias?: {
72
+ circle?: {
73
+ center: {
74
+ latitude: number;
75
+ longitude: number;
76
+ };
77
+ radius: number;
78
+ };
79
+ };
80
+ includedPrimaryTypes?: string[];
81
+ languageCode?: string;
82
+ }) => Promise<{
83
+ suggestions: Array<{
84
+ placePrediction?: {
85
+ placeId: string;
86
+ text: {
87
+ text: string;
88
+ matches: Array<{
89
+ endOffset: number;
90
+ startOffset: number;
91
+ }>;
92
+ };
93
+ structuredFormat?: {
94
+ mainText: {
95
+ text: string;
96
+ };
97
+ secondaryText: {
98
+ text: string;
99
+ };
100
+ };
101
+ };
102
+ }>;
103
+ }>;
104
+ };
105
+ AutocompleteService: new () => {
106
+ getPlacePredictions: (request: {
107
+ input: string;
108
+ componentRestrictions?: {
109
+ country: string | string[];
110
+ };
111
+ location?: {
112
+ lat: () => number;
113
+ lng: () => number;
114
+ };
115
+ radius?: number;
116
+ types?: string[];
117
+ language?: string;
118
+ }, callback: (predictions: Array<{
119
+ description: string;
120
+ place_id: string;
121
+ structured_formatting: {
122
+ main_text: string;
123
+ secondary_text: string;
124
+ };
125
+ }> | null, status: string) => void) => void;
126
+ };
127
+ PlacesService: new (element: HTMLElement) => {
128
+ getDetails: (request: {
129
+ placeId: string;
130
+ fields?: string[];
131
+ }, callback: (place: {
132
+ place_id: string;
133
+ formatted_address?: string;
134
+ address_components?: Array<{
135
+ long_name: string;
136
+ short_name: string;
137
+ types: string[];
138
+ }>;
139
+ geometry?: {
140
+ location?: {
141
+ lat: () => number;
142
+ lng: () => number;
143
+ };
144
+ };
145
+ } | null, status: string) => void) => void;
146
+ };
147
+ PlacesServiceStatus: {
148
+ OK: string;
149
+ ZERO_RESULTS: string;
150
+ NOT_FOUND: string;
151
+ REQUEST_DENIED: string;
152
+ INVALID_REQUEST: string;
153
+ OVER_QUERY_LIMIT: string;
154
+ };
155
+ };
156
+ LatLng: new (lat: number, lng: number) => {
157
+ lat: () => number;
158
+ lng: () => number;
159
+ };
160
+ };
161
+ };
162
+ }
163
+ }
164
+
4
165
  /**
5
166
  * @file DataTable Type Definitions
6
167
  * @package @jmruthers/pace-core
@@ -457,4 +618,4 @@ interface ExportOptions<TData extends DataRecord> {
457
618
  table: unknown;
458
619
  }
459
620
 
460
- export type { AggregateConfig as A, ChunkingConfig as C, DataTableColumn as D, EmptyStateConfig as E, GetRowId as G, HierarchicalConfig as H, PerformanceConfig as P, ServerSideConfig as S, DataTableAction as a, DataTableToolbarButton as b, DataRecord as c, DataTableRBACConfig as d, DataTableFeatureConfig as e, PaginationMode as f, SearchIndexConfig as g, ExportOptions as h, ServerSideParams as i, ServerSideResponse as j };
621
+ export type { AutocompleteOptions as A, ChunkingConfig as C, DataTableColumn as D, EmptyStateConfig as E, GetRowId as G, HierarchicalConfig as H, ParsedAddress as P, ServerSideConfig as S, DataTableAction as a, DataTableToolbarButton as b, AggregateConfig as c, DataRecord as d, DataTableRBACConfig as e, DataTableFeatureConfig as f, PerformanceConfig as g, PaginationMode as h, SearchIndexConfig as i, ExportOptions as j, ServerSideParams as k, ServerSideResponse as l, GooglePlaceAutocompletePrediction as m };
package/dist/types.d.ts CHANGED
@@ -3,10 +3,10 @@ export { A as AppId, D as DataRecord, E as EventId, O as OrganisationId, P as Pa
3
3
  import { U as User, a as Session } from './auth-BZOJqrdd.js';
4
4
  export { S as SessionRestorationState } from './auth-BZOJqrdd.js';
5
5
  export { E as Event, c as EventContextType, b as EventTheme, k as ORGANISATION_ROLE_PERMISSIONS, O as Organisation, n as OrganisationAccessLog, h as OrganisationContextType, j as OrganisationHierarchy, e as OrganisationInvitation, a as OrganisationMembership, m as OrganisationPermission, i as OrganisationProviderProps, l as OrganisationRole, f as OrganisationRoleDefinition, g as OrganisationSecurityError, d as OrganisationSettings, o as SecureQueryOptions, S as SuperAdminContext, T as ThemeColors, U as UserProfile } from './event-CW5YB_2p.js';
6
- export { g as BucketInfo, B as BulkUploadResult, F as FileCategory, b as FileMetadata, a as FileReference, d as FileReferenceService, f as FileReferenceWithUrl, c as FileUploadOptions, e as FileUploadResult, h as FileUrlInfo, S as StorageUploadOptions, U as UploadProgress } from './file-reference-BjR39ktt.js';
6
+ export { g as BucketInfo, B as BulkUploadResult, F as FileCategory, b as FileMetadata, a as FileReference, d as FileReferenceService, f as FileReferenceWithUrl, c as FileUploadOptions, e as FileUploadResult, h as FileUrlInfo, S as StorageUploadOptions, U as UploadProgress } from './file-reference-D037xOFK.js';
7
7
  export { C as ChangePasswordFormValues, o as ContactFormData, F as FormData, k as LoginFormData, L as LoginFormValues, P as ProfileFormData, m as RegistrationFormData, R as RegistrationFormValues, S as SecureLoginFormValues, j as SecureRegistrationFormValues, U as UserProfileFormValues, V as ValidationError, a as ValidationResult, g as changePasswordSchema, t as combineSchemas, i as contactFormSchema, d as dateSchema, e as emailSchema, l as loginSchema, n as nameSchema, f as passwordResetSchema, b as passwordSchema, p as phoneSchema, q as pickSchema, r as registrationSchema, c as secureLoginSchema, s as securePasswordSchema, u as urlSchema, h as userProfileSchema } from './validation-643vUDZW.js';
8
8
  import { SupabaseClient } from '@supabase/supabase-js';
9
- export { D as Database, J as Json } from './database.generated-CBmg2950.js';
9
+ export { D as Database, J as Json } from './database.generated-DI89OQeI.js';
10
10
  export { A as AccessLevelContext, s as AuditEventType, P as PermissionSource, d as RBACAccessValidateParams, e as RBACAccessValidateResult, q as RBACAuditLogParams, r as RBACAuditLogResult, t as RBACContext, w as RBACErrorCode, v as RBACFunctionResponse, f as RBACPageAccessCheckParams, R as RBACPermissionCheckParams, a as RBACPermissionCheckResult, b as RBACPermissionsGetParams, c as RBACPermissionsGetResult, u as RBACResult, g as RBACRoleGrantParams, h as RBACRoleGrantResult, i as RBACRoleRevokeParams, j as RBACRoleRevokeResult, m as RBACRoleValidateParams, n as RBACRoleValidateResult, k as RBACRolesListParams, l as RBACRolesListResult, o as RBACSessionTrackParams, p as RBACSessionTrackResult, S as SessionType } from './functions-D_kgHktt.js';
11
11
  import 'zod';
12
12
  import './types-UU913iLA.js';
package/dist/types.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FileCategory
3
- } from "./chunk-IXSNYUCT.js";
3
+ } from "./chunk-SAUPYVLF.js";
4
4
  import {
5
5
  AuthErrorCode,
6
6
  PermissionErrorCode,
@@ -2,8 +2,8 @@ import * as react_hook_form from 'react-hook-form';
2
2
  import { z } from 'zod';
3
3
  import { l as OrganisationRole, m as OrganisationPermission, S as SuperAdminContext, E as Event } from './event-CW5YB_2p.js';
4
4
  import { SupabaseClient } from '@supabase/supabase-js';
5
- import { D as Database } from './database.generated-CBmg2950.js';
6
- import { F as FileCategory, a as FileReference } from './file-reference-BjR39ktt.js';
5
+ import { D as Database } from './database.generated-DI89OQeI.js';
6
+ import { F as FileCategory, a as FileReference } from './file-reference-D037xOFK.js';
7
7
 
8
8
  interface UseZodFormProps<T extends z.ZodTypeAny> {
9
9
  schema: T;
@@ -845,4 +845,4 @@ declare function generatePublicRoutePath(eventCode: string, pageName?: string):
845
845
  */
846
846
  declare function extractEventCodeFromPath(path: string): string | null;
847
847
 
848
- export { type UsePublicEventReturn as A, type UsePublicEventOptions as B, type UsePublicFileDisplayReturn as C, type UsePublicFileDisplayOptions as D, type UsePublicEventLogoReturn as E, type UsePublicEventLogoOptions as F, type UsePublicRouteParamsReturn as G, type FileSizeLimits as H, type StorageConfig as I, type StorageFileMetadata as J, type StorageUrlOptions as K, type OrganisationSecurityHook as O, type StorageUploadOptions as S, type UseOrganisationPermissionsReturn as U, type StorageUploadResult as a, type StorageListOptions as b, type StorageListResult as c, type StorageFileInfo as d, useOrganisationPermissions as e, useOrganisationSecurity as f, useZodForm as g, useFormDialog as h, type UseFormDialogOptions as i, type UseFormDialogReturn as j, useAppConfig as k, type UseAppConfigReturn as l, usePublicEvent as m, clearPublicEventCache as n, getPublicEventCacheStats as o, usePublicFileDisplay as p, clearPublicFileDisplayCache as q, getPublicFileDisplayCacheStats as r, usePublicEventLogo as s, clearPublicLogoCache as t, useEventTheme as u, getPublicLogoCacheStats as v, usePublicRouteParams as w, usePublicEventCode as x, generatePublicRoutePath as y, extractEventCodeFromPath as z };
848
+ export { extractEventCodeFromPath as A, type UsePublicEventReturn as B, type UsePublicEventOptions as C, type UsePublicFileDisplayReturn as D, type UsePublicFileDisplayOptions as E, type FileSizeLimits as F, type UsePublicEventLogoReturn as G, type UsePublicEventLogoOptions as H, type UsePublicRouteParamsReturn as I, type UseOrganisationPermissionsReturn as J, type UseAppConfigReturn as K, type OrganisationSecurityHook as O, type StorageConfig as S, type UseFormDialogOptions as U, type StorageUploadOptions as a, type StorageFileMetadata as b, type StorageUploadResult as c, type StorageUrlOptions as d, type StorageListOptions as e, type StorageListResult as f, useFormDialog as g, type UseFormDialogReturn as h, useOrganisationPermissions as i, useOrganisationSecurity as j, useAppConfig as k, useEventTheme as l, type StorageFileInfo as m, usePublicEvent as n, clearPublicEventCache as o, getPublicEventCacheStats as p, usePublicFileDisplay as q, clearPublicFileDisplayCache as r, getPublicFileDisplayCacheStats as s, usePublicEventLogo as t, useZodForm as u, clearPublicLogoCache as v, getPublicLogoCacheStats as w, usePublicRouteParams as x, usePublicEventCode as y, generatePublicRoutePath as z };
package/dist/utils.d.ts CHANGED
@@ -1,17 +1,134 @@
1
1
  export { K as DateTimeFormatOptions, j as LogLevel, L as Logger, k as LoggerConfig, S as SecureDataAccess, N as calculatePasswordStrength, d as cn, i as createLogger, M as dateSchema, e as emailSchema, w as formatCompactNumber, r as formatCurrency, m as formatDate, H as formatDateOnlyForDisplay, q as formatDateTime, G as formatDateTimeForDisplay, J as formatDateTimeForMap, I as formatDateTimeForTable, x as formatFileSize, y as formatInTimeZone, t as formatNumber, v as formatPercent, o as formatTime, A as formatTimeInTimeZone, D as fromZonedTime, g as getAppConfig, h as getCurrentAppId, F as getTimeZoneDifference, z as getTimezoneAbbreviation, B as getUserTimeZone, l as logger, n as nameSchema, b as passwordSchema, p as phoneSchema, E as roundToNearestMinutes, s as setAppConfig, C as toZonedTime, a as urlSchema, u as useSessionTracking } from './timezone-_pgH8qrY.js';
2
2
  import { SupabaseClient } from '@supabase/supabase-js';
3
- import { D as Database } from './database.generated-CBmg2950.js';
3
+ import { D as Database } from './database.generated-DI89OQeI.js';
4
4
  export { g as changePasswordSchema, t as combineSchemas, i as contactFormSchema, l as loginSchema, f as passwordResetSchema, q as pickSchema, r as registrationSchema, c as secureLoginSchema, s as securePasswordSchema, h as userProfileSchema } from './validation-643vUDZW.js';
5
5
  import { z } from 'zod';
6
6
  export { u as useComponentPerformance } from './useComponentPerformance-DE9l5RkL.js';
7
7
  import * as date_fns from 'date-fns';
8
- import { D as DataTable } from './DataTable-Z9NLVJh0.js';
9
- import './types-DUyCRSTj.js';
8
+ import { D as DataTable } from './DataTable-IVYljGJ6.js';
9
+ import { A as AutocompleteOptions, m as GooglePlaceAutocompletePrediction, P as ParsedAddress } from './types-Bwgl--Xo.js';
10
10
  import React__default, { ComponentType } from 'react';
11
11
  import 'clsx';
12
12
  import 'react/jsx-runtime';
13
13
  import '@tanstack/react-table';
14
14
 
15
+ /**
16
+ * @file Google Places API Utilities
17
+ * @package @jmruthers/pace-core
18
+ * @module Utils/GooglePlaces
19
+ * @since 0.1.0
20
+ *
21
+ * Utility functions for interacting with Google Places API.
22
+ * Uses the Google Maps JavaScript API to avoid CORS issues.
23
+ *
24
+ * Features:
25
+ * - Places Autocomplete Service integration
26
+ * - Places Service integration
27
+ * - Address component parsing
28
+ * - Error handling
29
+ * - Request deduplication
30
+ */
31
+
32
+ /**
33
+ * Fetch place autocomplete predictions using Google Maps JavaScript API
34
+ *
35
+ * @param query - Search query string
36
+ * @param apiKey - Google Places API key
37
+ * @param options - Optional autocomplete options
38
+ * @returns Promise resolving to array of predictions
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const predictions = await fetchPlaceAutocomplete(
43
+ * '123 Main St',
44
+ * 'your-api-key',
45
+ * { components: 'country:au' }
46
+ * );
47
+ * ```
48
+ */
49
+ declare function fetchPlaceAutocomplete(query: string, apiKey: string, options?: AutocompleteOptions): Promise<GooglePlaceAutocompletePrediction[]>;
50
+ /**
51
+ * Fetch place details from Google Places API
52
+ *
53
+ * @param placeId - Google Place ID
54
+ * @param apiKey - Google Places API key
55
+ * @returns Promise resolving to place details
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const place = await fetchPlaceDetails('ChIJ...', 'your-api-key');
60
+ * ```
61
+ */
62
+ declare function fetchPlaceDetails(placeId: string, apiKey: string): Promise<{
63
+ place_id: string;
64
+ formatted_address?: string;
65
+ address_components?: Array<{
66
+ long_name: string;
67
+ short_name: string;
68
+ types: string[];
69
+ }>;
70
+ geometry?: {
71
+ location?: {
72
+ lat: () => number;
73
+ lng: () => number;
74
+ };
75
+ };
76
+ }>;
77
+ /**
78
+ * Parse address components from Google Places API response
79
+ *
80
+ * @param components - Array of address components from Google API
81
+ * @returns Parsed address components
82
+ */
83
+ declare function parseAddressComponents(components: Array<{
84
+ long_name: string;
85
+ short_name: string;
86
+ types: string[];
87
+ }> | undefined): {
88
+ street_number: string | null;
89
+ route: string | null;
90
+ suburb: string | null;
91
+ state: string | null;
92
+ postcode: string | null;
93
+ country: string | null;
94
+ };
95
+ /**
96
+ * Create parsed address from Google Places API place result
97
+ *
98
+ * @param place - Place result from Google Places Details API
99
+ * @returns Parsed address matching pace_address table structure
100
+ */
101
+ declare function createAddressFromPlaceResult(place: {
102
+ place_id: string;
103
+ formatted_address?: string;
104
+ address_components?: Array<{
105
+ long_name: string;
106
+ short_name: string;
107
+ types: string[];
108
+ }>;
109
+ geometry?: {
110
+ location?: {
111
+ lat: () => number;
112
+ lng: () => number;
113
+ };
114
+ };
115
+ }): ParsedAddress;
116
+ /**
117
+ * Get full address details by place_id
118
+ * Useful for retrieving address from stored place_id without autocomplete search
119
+ *
120
+ * @param placeId - Google Place ID
121
+ * @param apiKey - Google Places API key
122
+ * @returns Promise resolving to parsed address
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * const address = await getAddressByPlaceId('ChIJ...', 'your-api-key');
127
+ * // Returns: { place_id: 'ChIJ...', full_address: '...', ... }
128
+ * ```
129
+ */
130
+ declare function getAddressByPlaceId(placeId: string, apiKey: string): Promise<ParsedAddress | null>;
131
+
15
132
  /**
16
133
  * @file Debug Logger Utility
17
134
  * @package @jmruthers/pace-core
@@ -889,4 +1006,97 @@ declare function areCoordinatesEqual(coords1: Coordinates | null | undefined, co
889
1006
  */
890
1007
  declare function getGoogleMapsUrl(coords?: Coordinates): string;
891
1008
 
892
- export { type CSRFTokenData, CachedAppIdResolver, type Coordinates, DebugLogger, LazyDataTable, PERFORMANCE_BUDGETS, PERFORMANCE_THRESHOLDS, type PerformanceMetrics$1 as PerformanceMetrics, PermissionType, type SafeQueryParams, type SanitizationOptions, type SecurityEvent$1 as SecurityEvent, areCoordinatesEqual, auditLog, auditLogger, buildSafeQueryParams, bundleAnalyzer, cachedAppIdResolver, clearOrganisationContext, createLazyComponent, createLazyUtility, createPerformanceBenchmark, csrfManager, deepMerge, detectSQLInjection, escapeLikeQuery, formatCoordinates, generateCSRFToken, generateDeviceFingerprint, getAppId, getAppIds, getAppNameFromBuildTime, getAppNameFromEnvironment, getAppNameFromGlobal, getAppNameFromPackageJson, getCSRFToken, getCurrentAppName, getCurrentAppNameWithFallback, getGoogleMapsUrl, getOrganisationContext, getSecurityHeaders, hasAllPermissions, hasAnyPermission, hasPermission, hasValidCoordinates, isEmpty, isObject, isOrganisationContextAvailable, isStrongPassword, isValidDate, isValidEmail, isValidUrl, isWithinRange, lazyCSVUtils, lazyChartUtils, lazyDateUtils, lazyFormUtils, lazyLodash, limitOffsetSchema, loadCSVUtils, loadChartUtils, loadDateUtils, loadFormUtils, loadLodash, logAuditEvent, logAuthEvent, logPermissionEvent, logSecurityEvent, matchesPattern, measureRenderPerformance, orderBySchema, parsePermission, performanceBudgetMonitor, renderSafeHtml, sanitizeFilters, sanitizeFormData, sanitizeHtml, sanitizeSearchQuery, sanitizeUserInput, searchQuerySchema, securityMonitor, setOrganisationContext, setRBACAppName, sqlIdentifierSchema, trackDynamicImport, transformPermissionMapToBoolean, userPreferencesSchema, userSettingsSchema, usernameSchema, validateCSRFToken, validateDeviceFingerprint, validateHtml, validateImportPattern, validateSecurityHeaders, validateUserInput };
1009
+ /**
1010
+ * Request Deduplication Utility
1011
+ * @package @jmruthers/pace-core
1012
+ * @module Utils/RequestDeduplication
1013
+ * @since 2.0.0
1014
+ *
1015
+ * Provides request deduplication to prevent duplicate in-flight requests.
1016
+ * When multiple components request the same data simultaneously, only one
1017
+ * request is made and all callers share the same promise.
1018
+ */
1019
+ /**
1020
+ * Generate a request key from request parameters
1021
+ *
1022
+ * @param method - HTTP method (GET, POST, etc.)
1023
+ * @param table - Table name
1024
+ * @param filters - Filter object
1025
+ * @param select - Select columns
1026
+ * @returns Request key string
1027
+ */
1028
+ declare function generateRequestKey(method: string, table: string, filters?: Record<string, any>, select?: string): string;
1029
+ /**
1030
+ * Get or create a request
1031
+ *
1032
+ * If a request with the same key is already in-flight, returns the existing promise.
1033
+ * Otherwise, creates a new request and stores it for deduplication.
1034
+ *
1035
+ * @param key - Request key
1036
+ * @param requestFn - Function that performs the actual request
1037
+ * @returns Promise that resolves to the request result
1038
+ *
1039
+ * @example
1040
+ * ```ts
1041
+ * const data = await getOrCreateRequest(
1042
+ * 'GET:pace_person:{"user_id":"123"}',
1043
+ * async () => {
1044
+ * const { data } = await supabase
1045
+ * .from('pace_person')
1046
+ * .select('id, first_name')
1047
+ * .eq('user_id', '123')
1048
+ * .single();
1049
+ * return data;
1050
+ * }
1051
+ * );
1052
+ * ```
1053
+ */
1054
+ declare function getOrCreateRequest<T>(key: string, requestFn: () => Promise<T>): Promise<T>;
1055
+ /**
1056
+ * Clear all in-flight requests
1057
+ *
1058
+ * Useful for cleanup or testing.
1059
+ */
1060
+ declare function clearInFlightRequests(): void;
1061
+ /**
1062
+ * Get statistics about in-flight requests
1063
+ *
1064
+ * @returns Statistics object
1065
+ */
1066
+ declare function getInFlightRequestStats(): {
1067
+ count: number;
1068
+ keys: string[];
1069
+ };
1070
+ /**
1071
+ * Supabase query wrapper with automatic deduplication
1072
+ *
1073
+ * Wraps a Supabase query to automatically deduplicate identical requests.
1074
+ *
1075
+ * @param supabase - Supabase client
1076
+ * @param table - Table name
1077
+ * @param filters - Filter object (e.g., { user_id: '123' })
1078
+ * @param select - Select columns (default: '*')
1079
+ * @param requestFn - Function that performs the query
1080
+ * @returns Promise that resolves to query result
1081
+ *
1082
+ * @example
1083
+ * ```ts
1084
+ * const person = await deduplicatedQuery(
1085
+ * supabase,
1086
+ * 'pace_person',
1087
+ * { user_id: userId },
1088
+ * 'id, first_name, last_name',
1089
+ * async () => {
1090
+ * const { data } = await supabase
1091
+ * .from('pace_person')
1092
+ * .select('id, first_name, last_name')
1093
+ * .eq('user_id', userId)
1094
+ * .single();
1095
+ * return data;
1096
+ * }
1097
+ * );
1098
+ * ```
1099
+ */
1100
+ declare function deduplicatedQuery<T>(supabase: any, table: string, filters: Record<string, any>, select: string, requestFn: () => Promise<T>): Promise<T>;
1101
+
1102
+ export { AutocompleteOptions, type CSRFTokenData, CachedAppIdResolver, type Coordinates, DebugLogger, GooglePlaceAutocompletePrediction, LazyDataTable, PERFORMANCE_BUDGETS, PERFORMANCE_THRESHOLDS, ParsedAddress, type PerformanceMetrics$1 as PerformanceMetrics, PermissionType, type SafeQueryParams, type SanitizationOptions, type SecurityEvent$1 as SecurityEvent, areCoordinatesEqual, auditLog, auditLogger, buildSafeQueryParams, bundleAnalyzer, cachedAppIdResolver, clearInFlightRequests, clearOrganisationContext, createAddressFromPlaceResult, createLazyComponent, createLazyUtility, createPerformanceBenchmark, csrfManager, deduplicatedQuery, deepMerge, detectSQLInjection, escapeLikeQuery, fetchPlaceAutocomplete, fetchPlaceDetails, formatCoordinates, generateCSRFToken, generateDeviceFingerprint, generateRequestKey, getAddressByPlaceId, getAppId, getAppIds, getAppNameFromBuildTime, getAppNameFromEnvironment, getAppNameFromGlobal, getAppNameFromPackageJson, getCSRFToken, getCurrentAppName, getCurrentAppNameWithFallback, getGoogleMapsUrl, getInFlightRequestStats, getOrCreateRequest, getOrganisationContext, getSecurityHeaders, hasAllPermissions, hasAnyPermission, hasPermission, hasValidCoordinates, isEmpty, isObject, isOrganisationContextAvailable, isStrongPassword, isValidDate, isValidEmail, isValidUrl, isWithinRange, lazyCSVUtils, lazyChartUtils, lazyDateUtils, lazyFormUtils, lazyLodash, limitOffsetSchema, loadCSVUtils, loadChartUtils, loadDateUtils, loadFormUtils, loadLodash, logAuditEvent, logAuthEvent, logPermissionEvent, logSecurityEvent, matchesPattern, measureRenderPerformance, orderBySchema, parseAddressComponents, parsePermission, performanceBudgetMonitor, renderSafeHtml, sanitizeFilters, sanitizeFormData, sanitizeHtml, sanitizeSearchQuery, sanitizeUserInput, searchQuerySchema, securityMonitor, setOrganisationContext, setRBACAppName, sqlIdentifierSchema, trackDynamicImport, transformPermissionMapToBoolean, userPreferencesSchema, userSettingsSchema, usernameSchema, validateCSRFToken, validateDeviceFingerprint, validateHtml, validateImportPattern, validateSecurityHeaders, validateUserInput };
package/dist/utils.js CHANGED
@@ -58,8 +58,18 @@ import {
58
58
  } from "./chunk-E66EQZE6.js";
59
59
  import {
60
60
  PERFORMANCE_BUDGETS,
61
+ clearInFlightRequests,
62
+ createAddressFromPlaceResult,
63
+ deduplicatedQuery,
64
+ fetchPlaceAutocomplete,
65
+ fetchPlaceDetails,
66
+ generateRequestKey,
67
+ getAddressByPlaceId,
68
+ getInFlightRequestStats,
69
+ getOrCreateRequest,
70
+ parseAddressComponents,
61
71
  performanceBudgetMonitor
62
- } from "./chunk-FMUCXFII.js";
72
+ } from "./chunk-YHCN776L.js";
63
73
  import {
64
74
  clearOrganisationContext,
65
75
  getOrganisationContext,
@@ -941,7 +951,7 @@ function createLazyComponent(importFn, componentName, options = {}) {
941
951
  return WrappedComponent;
942
952
  }
943
953
  var LazyDataTable = createLazyComponent(
944
- () => import("./DataTable-IX2NBUTP.js").then((module) => ({ default: module.DataTable })),
954
+ () => import("./DataTable-K3RJRSOX.js").then((module) => ({ default: module.DataTable })),
945
955
  "DataTable"
946
956
  );
947
957
 
@@ -1271,20 +1281,25 @@ export {
1271
1281
  cachedAppIdResolver,
1272
1282
  calculatePasswordStrength,
1273
1283
  changePasswordSchema,
1284
+ clearInFlightRequests,
1274
1285
  clearOrganisationContext,
1275
1286
  cn,
1276
1287
  combineSchemas,
1277
1288
  contactFormSchema,
1289
+ createAddressFromPlaceResult,
1278
1290
  createLazyComponent,
1279
1291
  createLazyUtility,
1280
1292
  createLogger,
1281
1293
  createPerformanceBenchmark,
1282
1294
  csrfManager,
1283
1295
  dateSchema,
1296
+ deduplicatedQuery,
1284
1297
  deepMerge,
1285
1298
  detectSQLInjection,
1286
1299
  emailSchema,
1287
1300
  escapeLikeQuery,
1301
+ fetchPlaceAutocomplete,
1302
+ fetchPlaceDetails,
1288
1303
  formatCompactNumber,
1289
1304
  formatCoordinates,
1290
1305
  formatCurrency,
@@ -1303,6 +1318,8 @@ export {
1303
1318
  fromZonedTime,
1304
1319
  generateCSRFToken,
1305
1320
  generateDeviceFingerprint,
1321
+ generateRequestKey,
1322
+ getAddressByPlaceId,
1306
1323
  getAppConfig,
1307
1324
  getAppId,
1308
1325
  getAppIds,
@@ -1315,6 +1332,8 @@ export {
1315
1332
  getCurrentAppName,
1316
1333
  getCurrentAppNameWithFallback,
1317
1334
  getGoogleMapsUrl,
1335
+ getInFlightRequestStats,
1336
+ getOrCreateRequest,
1318
1337
  getOrganisationContext,
1319
1338
  getSecurityHeaders,
1320
1339
  getTimeZoneDifference,
@@ -1353,6 +1372,7 @@ export {
1353
1372
  measureRenderPerformance,
1354
1373
  nameSchema,
1355
1374
  orderBySchema,
1375
+ parseAddressComponents,
1356
1376
  parsePermission,
1357
1377
  passwordResetSchema,
1358
1378
  passwordSchema,