@jmruthers/pace-core 0.5.86 → 0.5.88

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 (248) hide show
  1. package/dist/{AuthService-Df3IozMG.d.ts → AuthService-DcTI5Ov4.d.ts} +9 -0
  2. package/dist/{DataTable-DKGTBLWT.js → DataTable-PWBMKMOG.js} +8 -8
  3. package/dist/{PublicLoadingSpinner-CnUaz0vG.d.ts → PublicLoadingSpinner-BQXD1fbO.d.ts} +161 -131
  4. package/dist/{UnifiedAuthProvider-K2IZAY5F.js → UnifiedAuthProvider-5D3HEQND.js} +4 -4
  5. package/dist/{UnifiedAuthProvider-B391Aqum.d.ts → UnifiedAuthProvider-BVKmQd9u.d.ts} +4 -0
  6. package/dist/auth-DReDSLq9.d.ts +16 -0
  7. package/dist/{chunk-CBSD3BZ3.js → chunk-3RZBKQ5Y.js} +2 -6
  8. package/dist/{chunk-CBSD3BZ3.js.map → chunk-3RZBKQ5Y.js.map} +1 -1
  9. package/dist/{chunk-NTW3KGS4.js → chunk-6UHXQH7P.js} +5 -5
  10. package/dist/{chunk-YVUZWLQG.js → chunk-AQGF5OG7.js} +3 -3
  11. package/dist/{chunk-CVMVPYAL.js → chunk-BDZUMRBD.js} +3 -5
  12. package/dist/chunk-BDZUMRBD.js.map +1 -0
  13. package/dist/{chunk-QCCJ3P4W.js → chunk-BNXBJOGL.js} +5 -5
  14. package/dist/{chunk-IBMPGOCN.js → chunk-CJIZS3UE.js} +1430 -783
  15. package/dist/chunk-CJIZS3UE.js.map +1 -0
  16. package/dist/{chunk-S3JKDMD5.js → chunk-CXKMRKRF.js} +4 -4
  17. package/dist/{chunk-5BN3YGNK.js → chunk-DP5X5ORK.js} +217 -27
  18. package/dist/chunk-DP5X5ORK.js.map +1 -0
  19. package/dist/{chunk-KUYWZVR2.js → chunk-H3P2RGKZ.js} +353 -9
  20. package/dist/chunk-H3P2RGKZ.js.map +1 -0
  21. package/dist/{chunk-RIXPZJUB.js → chunk-KTPG5VCH.js} +2 -2
  22. package/dist/{chunk-YCKPEMJA.js → chunk-QPCAGLUS.js} +2 -3
  23. package/dist/chunk-QPCAGLUS.js.map +1 -0
  24. package/dist/{chunk-WUXCWRL6.js → chunk-XJ2HZOBU.js} +6 -1
  25. package/dist/chunk-XJ2HZOBU.js.map +1 -0
  26. package/dist/{chunk-V5SWX6KL.js → chunk-XXVM53P4.js} +4 -4
  27. package/dist/{chunk-I2VVV5PQ.js → chunk-YY4YYM3E.js} +2 -2
  28. package/dist/components.d.ts +6 -55
  29. package/dist/components.js +25 -206
  30. package/dist/components.js.map +1 -1
  31. package/dist/{file-reference-9xUOnwyt.d.ts → file-reference-C9isKNPn.d.ts} +67 -2
  32. package/dist/hooks.js +10 -9
  33. package/dist/hooks.js.map +1 -1
  34. package/dist/index.d.ts +152 -26
  35. package/dist/index.js +65 -195
  36. package/dist/index.js.map +1 -1
  37. package/dist/providers.d.ts +5 -3
  38. package/dist/providers.js +3 -3
  39. package/dist/rbac/index.js +8 -8
  40. package/dist/types.d.ts +2 -1
  41. package/dist/types.js +3 -3
  42. package/dist/utils.js +2 -2
  43. package/docs/DOCUMENTATION_AUDIT.md +6 -6
  44. package/docs/DOCUMENTATION_STANDARD.md +137 -0
  45. package/docs/README.md +1 -1
  46. package/docs/api/classes/ColumnFactory.md +1 -1
  47. package/docs/api/classes/ErrorBoundary.md +1 -1
  48. package/docs/api/classes/InvalidScopeError.md +1 -1
  49. package/docs/api/classes/MissingUserContextError.md +1 -1
  50. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  51. package/docs/api/classes/PermissionDeniedError.md +1 -1
  52. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  53. package/docs/api/classes/RBACAuditManager.md +1 -1
  54. package/docs/api/classes/RBACCache.md +1 -1
  55. package/docs/api/classes/RBACEngine.md +1 -1
  56. package/docs/api/classes/RBACError.md +1 -1
  57. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  58. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  59. package/docs/api/classes/StorageUtils.md +83 -40
  60. package/docs/api/enums/FileCategory.md +56 -1
  61. package/docs/api/interfaces/AggregateConfig.md +1 -1
  62. package/docs/api/interfaces/ButtonProps.md +1 -1
  63. package/docs/api/interfaces/CardProps.md +1 -1
  64. package/docs/api/interfaces/ColorPalette.md +1 -1
  65. package/docs/api/interfaces/ColorShade.md +1 -1
  66. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  67. package/docs/api/interfaces/DataRecord.md +1 -1
  68. package/docs/api/interfaces/DataTableAction.md +1 -1
  69. package/docs/api/interfaces/DataTableColumn.md +1 -1
  70. package/docs/api/interfaces/DataTableProps.md +1 -1
  71. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  72. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  73. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  74. package/docs/api/interfaces/EventLogoProps.md +11 -11
  75. package/docs/api/interfaces/FileDisplayProps.md +10 -10
  76. package/docs/api/interfaces/FileMetadata.md +1 -1
  77. package/docs/api/interfaces/FileReference.md +1 -1
  78. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  79. package/docs/api/interfaces/FileUploadOptions.md +8 -8
  80. package/docs/api/interfaces/FileUploadProps.md +137 -42
  81. package/docs/api/interfaces/FooterProps.md +1 -1
  82. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  83. package/docs/api/interfaces/InputProps.md +1 -1
  84. package/docs/api/interfaces/LabelProps.md +1 -1
  85. package/docs/api/interfaces/LoginFormProps.md +1 -1
  86. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  87. package/docs/api/interfaces/NavigationContextType.md +1 -1
  88. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  89. package/docs/api/interfaces/NavigationItem.md +1 -1
  90. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  91. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  92. package/docs/api/interfaces/Organisation.md +1 -1
  93. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  94. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  95. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  96. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  97. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  98. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  99. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  100. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  101. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  102. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  103. package/docs/api/interfaces/PaletteData.md +1 -1
  104. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  105. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  106. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  107. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  108. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  109. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  110. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  111. package/docs/api/interfaces/RBACConfig.md +1 -1
  112. package/docs/api/interfaces/RBACLogger.md +1 -1
  113. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  114. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  115. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  116. package/docs/api/interfaces/RouteConfig.md +1 -1
  117. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  118. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  119. package/docs/api/interfaces/StorageConfig.md +1 -1
  120. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  121. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  122. package/docs/api/interfaces/StorageListOptions.md +1 -1
  123. package/docs/api/interfaces/StorageListResult.md +1 -1
  124. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  125. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  126. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  127. package/docs/api/interfaces/StyleImport.md +1 -1
  128. package/docs/api/interfaces/SwitchProps.md +1 -1
  129. package/docs/api/interfaces/ToastActionElement.md +1 -1
  130. package/docs/api/interfaces/ToastProps.md +1 -1
  131. package/docs/api/interfaces/UnifiedAuthContextType.md +83 -50
  132. package/docs/api/interfaces/UnifiedAuthProviderProps.md +13 -13
  133. package/docs/api/interfaces/UseEventLogoOptions.md +74 -0
  134. package/docs/api/interfaces/UseEventLogoReturn.md +81 -0
  135. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  136. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  137. package/docs/api/interfaces/UsePublicEventLogoOptions.md +6 -6
  138. package/docs/api/interfaces/UsePublicEventLogoReturn.md +6 -6
  139. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  140. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  141. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  142. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  143. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  144. package/docs/api/interfaces/UserEventAccess.md +11 -11
  145. package/docs/api/interfaces/UserMenuProps.md +1 -1
  146. package/docs/api/interfaces/UserProfile.md +1 -1
  147. package/docs/api/modules.md +292 -97
  148. package/docs/api-reference/components.md +1 -18
  149. package/docs/api-reference/hooks.md +1 -4
  150. package/docs/best-practices/testing.md +2 -0
  151. package/docs/documentation-index.md +1 -1
  152. package/docs/getting-started/faq.md +1 -1
  153. package/docs/implementation-guides/file-reference-system.md +592 -58
  154. package/docs/implementation-guides/file-upload-storage.md +137 -73
  155. package/docs/rbac/super-admin-guide.md +18 -70
  156. package/docs/testing/README.md +2 -0
  157. package/package.json +1 -1
  158. package/src/__tests__/TEST_STANDARD.md +674 -0
  159. package/src/__tests__/helpers/test-utils.tsx +3 -2
  160. package/src/components/DataTable/__tests__/{DataTable.comprehensive.test.tsx.skip → DataTable.comprehensive.test.tsx} +17 -18
  161. package/src/components/DataTable/__tests__/{DataTable.test.tsx.skip → DataTable.test.tsx} +14 -22
  162. package/src/components/DataTable/__tests__/{ssr.strict-mode.test.tsx.skip → ssr.strict-mode.test.tsx} +42 -47
  163. package/src/components/DataTable/components/__tests__/COVERAGE_NOTE.md +1 -1
  164. package/src/components/DataTable/examples/__tests__/PerformanceExample.test.tsx +13 -4
  165. package/src/components/DataTable/utils/__tests__/COVERAGE_NOTE.md +1 -1
  166. package/src/components/DataTable/utils/__tests__/performanceUtils.test.ts +10 -6
  167. package/src/components/DataTable/utils/performanceUtils.ts +12 -3
  168. package/src/components/FileDisplay/FileDisplay.test.tsx +257 -0
  169. package/src/components/{FileDisplay.tsx → FileDisplay/FileDisplay.tsx} +111 -10
  170. package/src/components/FileDisplay/index.tsx +4 -0
  171. package/src/components/FileUpload/FileUpload.test.tsx +171 -621
  172. package/src/components/FileUpload/FileUpload.tsx +512 -168
  173. package/src/components/FileUpload/index.tsx +4 -0
  174. package/src/components/Progress/Progress.test.tsx +38 -0
  175. package/src/components/PublicLayout/EventLogo.tsx +220 -39
  176. package/src/components/PublicLayout/PublicPageProvider.tsx +1 -1
  177. package/src/components/Select/Select.test.tsx +1 -1
  178. package/src/components/SessionRestorationLoader.tsx +48 -0
  179. package/src/components/Toast/Toast.tsx +13 -8
  180. package/src/components/index.ts +16 -16
  181. package/src/hooks/__tests__/ServiceHooks.test.tsx +615 -0
  182. package/src/hooks/public/usePublicEventLogo.ts +17 -7
  183. package/src/hooks/useDataTablePerformance.ts +4 -0
  184. package/src/hooks/useEventLogo.ts +316 -0
  185. package/src/hooks/useEvents.ts +0 -5
  186. package/src/hooks/useFileReference.test.ts +659 -0
  187. package/src/hooks/useFileReference.ts +207 -3
  188. package/src/hooks/useSessionRestoration.ts +64 -0
  189. package/src/index.ts +17 -5
  190. package/src/providers/{UnifiedAuthProvider.test.simple.tsx → UnifiedAuthProvider.smoke.test.tsx} +81 -60
  191. package/src/providers/services/AuthServiceProvider.tsx +27 -3
  192. package/src/providers/services/UnifiedAuthProvider.tsx +34 -5
  193. package/src/rbac/{engine.test.simple.ts → RBACEngine.smoke.test.ts} +17 -12
  194. package/src/services/AuthService.ts +142 -20
  195. package/src/services/EventService.ts +0 -4
  196. package/src/types/auth.ts +15 -0
  197. package/src/types/file-reference.ts +73 -1
  198. package/src/types/index.ts +1 -0
  199. package/src/utils/__tests__/organisationContext.unit.test.ts +2 -4
  200. package/src/utils/appNameResolver.simple.test.ts +99 -29
  201. package/src/utils/file-reference.test.ts +535 -0
  202. package/src/utils/file-reference.ts +200 -30
  203. package/src/utils/organisationContext.test.ts +5 -19
  204. package/src/utils/organisationContext.ts +3 -5
  205. package/src/utils/storage/README.md +269 -262
  206. package/src/utils/storage/config.ts +9 -0
  207. package/src/utils/storage/helpers.test.ts +631 -0
  208. package/src/utils/storage/helpers.ts +112 -14
  209. package/src/utils/storage/index.ts +3 -0
  210. package/src/validation/__tests__/sanitization.unit.test.ts +1 -1
  211. package/src/validation/__tests__/schemaUtils.unit.test.ts +1 -1
  212. package/src/validation/__tests__/user.unit.test.ts +1 -1
  213. package/dist/chunk-5BN3YGNK.js.map +0 -1
  214. package/dist/chunk-CVMVPYAL.js.map +0 -1
  215. package/dist/chunk-IBMPGOCN.js.map +0 -1
  216. package/dist/chunk-KUYWZVR2.js.map +0 -1
  217. package/dist/chunk-WUXCWRL6.js.map +0 -1
  218. package/dist/chunk-YCKPEMJA.js.map +0 -1
  219. package/docs/CONTENT_AUDIT_REPORT.md +0 -253
  220. package/docs/STYLE_GUIDE.md +0 -37
  221. package/examples/RBAC/__tests__/PermissionExample.test.tsx +0 -150
  222. package/examples/public-pages/__tests__/PublicPageUsageExample.test.tsx +0 -159
  223. package/src/__tests__/TEST_GUIDE_CURSOR.md +0 -1605
  224. package/src/__tests__/TEST_GUIDE_HUMAN.md +0 -103
  225. package/src/components/FileUpload/FileUpload.example.tsx +0 -218
  226. package/src/components/FileUpload/index.ts +0 -6
  227. package/src/components/FileUpload.tsx +0 -176
  228. package/src/components/Progress/index.ts +0 -3
  229. package/src/components/PublicLayout/__tests__/EventLogo.test.tsx +0 -666
  230. package/src/components/SuperAdminGuard.tsx +0 -116
  231. package/src/components/__tests__/FileDisplay.test.tsx +0 -575
  232. package/src/components/__tests__/FileUpload.test.tsx +0 -446
  233. package/src/components/__tests__/SuperAdminGuard.test.tsx +0 -627
  234. package/src/components/examples/PermissionExample.tsx +0 -173
  235. package/src/hooks/__tests__/usePublicEvent.unit.test.ts +0 -583
  236. package/src/hooks/__tests__/usePublicEventLogo.unit.test.ts +0 -640
  237. package/src/types/__tests__/file-reference.test.ts +0 -447
  238. package/src/utils/__tests__/file-reference.test.ts +0 -383
  239. /package/dist/{DataTable-DKGTBLWT.js.map → DataTable-PWBMKMOG.js.map} +0 -0
  240. /package/dist/{UnifiedAuthProvider-K2IZAY5F.js.map → UnifiedAuthProvider-5D3HEQND.js.map} +0 -0
  241. /package/dist/{chunk-NTW3KGS4.js.map → chunk-6UHXQH7P.js.map} +0 -0
  242. /package/dist/{chunk-YVUZWLQG.js.map → chunk-AQGF5OG7.js.map} +0 -0
  243. /package/dist/{chunk-QCCJ3P4W.js.map → chunk-BNXBJOGL.js.map} +0 -0
  244. /package/dist/{chunk-S3JKDMD5.js.map → chunk-CXKMRKRF.js.map} +0 -0
  245. /package/dist/{chunk-RIXPZJUB.js.map → chunk-KTPG5VCH.js.map} +0 -0
  246. /package/dist/{chunk-V5SWX6KL.js.map → chunk-XXVM53P4.js.map} +0 -0
  247. /package/dist/{chunk-I2VVV5PQ.js.map → chunk-YY4YYM3E.js.map} +0 -0
  248. /package/src/providers/{OrganisationProvider.test.simple.tsx → OrganisationProvider.context.test.tsx} +0 -0
@@ -30,7 +30,7 @@ import {
30
30
  withAccessLevelGuard,
31
31
  withPermissionGuard,
32
32
  withRoleGuard
33
- } from "../chunk-NTW3KGS4.js";
33
+ } from "../chunk-6UHXQH7P.js";
34
34
  import {
35
35
  useAccessLevel,
36
36
  useCachedPermissions,
@@ -41,7 +41,7 @@ import {
41
41
  usePermissions,
42
42
  useRBAC,
43
43
  useResolvedScope
44
- } from "../chunk-YVUZWLQG.js";
44
+ } from "../chunk-AQGF5OG7.js";
45
45
  import {
46
46
  CACHE_PATTERNS,
47
47
  RBACCache,
@@ -71,13 +71,13 @@ import {
71
71
  getGlobalAuditManager,
72
72
  setGlobalAuditManager
73
73
  } from "../chunk-Q7APDV6H.js";
74
- import "../chunk-S3JKDMD5.js";
75
- import "../chunk-CBSD3BZ3.js";
76
- import "../chunk-RIXPZJUB.js";
77
- import "../chunk-I2VVV5PQ.js";
78
- import "../chunk-5BN3YGNK.js";
74
+ import "../chunk-CXKMRKRF.js";
75
+ import "../chunk-3RZBKQ5Y.js";
76
+ import "../chunk-KTPG5VCH.js";
77
+ import "../chunk-YY4YYM3E.js";
78
+ import "../chunk-DP5X5ORK.js";
79
79
  import "../chunk-JCQZ6LA7.js";
80
- import "../chunk-CVMVPYAL.js";
80
+ import "../chunk-BDZUMRBD.js";
81
81
  import "../chunk-PLDDJCW6.js";
82
82
  export {
83
83
  ALL_PERMISSIONS,
package/dist/types.d.ts CHANGED
@@ -3,7 +3,8 @@ export { D as DataRecord, t as DataTableAction, u as DataTableColumn, E as Event
3
3
  import { SupabaseClient } from '@supabase/supabase-js';
4
4
  export { D as Database } from './database-BXAfr2Y_.js';
5
5
  export { C as ChangePasswordFormValues, t as ContactFormData, F as FormData, m as LoginFormData, L as LoginFormValues, P as PasswordResetFormValues, q as ProfileFormData, o as RegistrationFormData, R as RegistrationFormValues, S as SecureLoginFormValues, k as SecurePasswordResetFormValues, j as SecureRegistrationFormValues, U as UserProfileFormValues, V as ValidationError, a as ValidationResult, g as changePasswordSchema, w 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, v as pickSchema, r as registrationSchema, c as secureLoginSchema, s as securePasswordSchema, u as urlSchema, h as userProfileSchema } from './validation-D8VcbTzC.js';
6
- export { b as FileCategory, a as FileMetadata, F as FileReference, d as FileReferenceService, c as FileUploadOptions, e as FileUploadResult, S as StorageUploadOptions } from './file-reference-9xUOnwyt.js';
6
+ export { S as SessionRestorationState } from './auth-DReDSLq9.js';
7
+ export { g as BucketInfo, B as BulkUploadResult, b as FileCategory, a as FileMetadata, F 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-C9isKNPn.js';
7
8
  import 'zod';
8
9
 
9
10
  /**
package/dist/types.js CHANGED
@@ -1,6 +1,3 @@
1
- import {
2
- FileCategory
3
- } from "./chunk-WUXCWRL6.js";
4
1
  import {
5
2
  changePasswordSchema,
6
3
  combineSchemas,
@@ -19,6 +16,9 @@ import {
19
16
  urlSchema,
20
17
  userProfileSchema
21
18
  } from "./chunk-24MKLB7U.js";
19
+ import {
20
+ FileCategory
21
+ } from "./chunk-XJ2HZOBU.js";
22
22
  import "./chunk-PLDDJCW6.js";
23
23
 
24
24
  // src/types/unified.ts
package/dist/utils.js CHANGED
@@ -40,7 +40,7 @@ import {
40
40
  init_organisationContext,
41
41
  isOrganisationContextAvailable,
42
42
  setOrganisationContext
43
- } from "./chunk-CVMVPYAL.js";
43
+ } from "./chunk-BDZUMRBD.js";
44
44
  import "./chunk-PLDDJCW6.js";
45
45
 
46
46
  // src/utils/debugLogger.ts
@@ -594,7 +594,7 @@ function createLazyComponent(importFn, componentName, options = {}) {
594
594
  return WrappedComponent;
595
595
  }
596
596
  var LazyDataTable = createLazyComponent(
597
- () => import("./DataTable-DKGTBLWT.js").then((module) => ({ default: module.DataTable })),
597
+ () => import("./DataTable-PWBMKMOG.js").then((module) => ({ default: module.DataTable })),
598
598
  "DataTable"
599
599
  );
600
600
 
@@ -6,9 +6,9 @@ reviewedBy: content-audit
6
6
 
7
7
  # 📘 PACE Core Documentation Audit Tracker
8
8
 
9
- > Progressively aligning all docs with the [PACE Core Documentation Style Guide](./STYLE_GUIDE.md)
9
+ > Progressively aligning all docs with the [PACE Core Documentation Standard](./DOCUMENTATION_STANDARD.md)
10
10
 
11
- This file tracks compliance with the PACE Core Documentation Style Guide across all documentation files.
11
+ This file tracks compliance with the PACE Core Documentation Standard across all documentation files.
12
12
 
13
13
  ---
14
14
 
@@ -26,7 +26,7 @@ All Markdown (`.md`) files within:
26
26
  | File | Status | Writing Principles | Structure | Formatting | Accessibility | Notes |
27
27
  |------|---------|-------------------|-----------|------------|---------------|--------|
28
28
  | README.md | ✅ Compliant | ✅ Clear, active voice | ✅ Proper H2/H3 hierarchy | ✅ Good formatting | ✅ Descriptive links | Main entry point |
29
- | STYLE_GUIDE.md | ✅ Compliant | ✅ Clear, active voice | ✅ Proper hierarchy | ✅ Consistent formatting | ✅ Good accessibility | Official standard |
29
+ | DOCUMENTATION_STANDARD.md | ✅ Compliant | ✅ Clear, active voice | ✅ Proper hierarchy | ✅ Consistent formatting | ✅ Good accessibility | Official standard |
30
30
  | DOCUMENTATION_AUDIT.md | ✅ Compliant | ✅ Clear, active voice | ✅ Proper hierarchy | ✅ Good formatting | ✅ Descriptive links | This file |
31
31
 
32
32
  ### Getting Started Guides
@@ -134,7 +134,7 @@ All Markdown (`.md`) files within:
134
134
  ## 🎯 Key Findings
135
135
 
136
136
  ### ✅ **Strengths**
137
- 1. **Excellent Structure**: All files follow the style guide structure perfectly
137
+ 1. **Excellent Structure**: All files follow the documentation standard structure perfectly
138
138
  2. **Complete Examples**: All code examples are runnable and include proper imports
139
139
  3. **Clear Navigation**: Consistent breadcrumb navigation across all files
140
140
  4. **Active Voice**: Consistent use of active voice throughout
@@ -153,7 +153,7 @@ All Markdown (`.md`) files within:
153
153
  ## 🚀 Recommendations
154
154
 
155
155
  ### ✅ **Maintain Current Standards**
156
- 1. **Continue quarterly reviews** as specified in style guide
156
+ 1. **Continue quarterly reviews** as specified in documentation standard
157
157
  2. **Verify links monthly** to prevent broken references
158
158
  3. **Update examples** when new features are released
159
159
  4. **Peer review** all new documentation before publishing
@@ -163,7 +163,7 @@ All Markdown (`.md`) files within:
163
163
  - ✅ **Runnable examples**: 100%
164
164
  - ✅ **Broken links**: 0
165
165
  - ✅ **Terminology consistency**: 100%
166
- - ✅ **Style guide compliance**: 100%
166
+ - ✅ **Documentation standard compliance**: 100%
167
167
 
168
168
  ---
169
169
 
@@ -0,0 +1,137 @@
1
+ # Documentation Standard
2
+
3
+ Use this guide to ensure consistent, high-quality documentation across the pace-core project. Every documentation contribution should follow these standards.
4
+
5
+ ## Voice & Tone
6
+
7
+ - [ ] **Write clearly and directly**: Use active voice and present tense where possible
8
+ - [ ] **Know your audience**: Assume readers are React developers comfortable with TypeScript
9
+ - [ ] **Lead with purpose**: Explain *why* a step matters before diving into *how* to do it
10
+ - [ ] **Be inclusive**: Use "you" instead of "we" when addressing the reader
11
+ - [ ] **Stay professional but approachable**: Avoid jargon without explanation, but don't oversimplify
12
+
13
+ ## Content Structure
14
+
15
+ ### Page Organization
16
+ - [ ] **Single H1**: Use `#` for the page title once per file, then start sections at `##`
17
+ - [ ] **Logical hierarchy**: Don't skip heading levels (no jumping from `##` to `####`)
18
+ - [ ] **Consistent sections**: Include these sections where relevant:
19
+ - Overview/Introduction
20
+ - Prerequisites
21
+ - Quick Start/Getting Started
22
+ - Detailed Usage
23
+ - Examples
24
+ - API Reference
25
+ - Troubleshooting
26
+ - Next Steps/Related Links
27
+
28
+ ### Content Flow
29
+ - [ ] **Context first**: Open with goal, prerequisites, or summary before diving into implementation
30
+ - [ ] **Progressive disclosure**: Start simple, then add complexity
31
+ - [ ] **Clear endings**: End with next steps, validation checks, or related links
32
+ - [ ] **Logical grouping**: Place new pages in directories that match their topic (e.g., RBAC docs in `docs/rbac/`)
33
+
34
+ ## Code & Examples
35
+
36
+ ### Code Blocks
37
+ - [ ] **Use fenced code blocks** with appropriate language tags (`ts`, `tsx`, `bash`, `json`, `sql`)
38
+ - [ ] **Include complete examples**: Add all necessary imports so code can be copied directly
39
+ - [ ] **Show realistic usage**: Use meaningful variable names and realistic data
40
+ - [ ] **Highlight key parts**: Use comments to explain important sections
41
+
42
+ ### Code Quality
43
+ - [ ] **Follow project conventions**: Match the codebase's TypeScript and React patterns
44
+ - [ ] **Test your examples**: Ensure all code samples actually work
45
+ - [ ] **Keep examples focused**: Show one concept at a time unless demonstrating integration
46
+
47
+ ## Formatting Standards
48
+
49
+ ### Lists & Tables
50
+ - [ ] **Parallel structure**: Keep bullet points grammatically consistent
51
+ - [ ] **Reasonable length**: Limit lists to 7 items; use tables for structured data
52
+ - [ ] **Proper nesting**: Use consistent indentation for nested lists
53
+ - [ ] **Table headers**: Always include headers for tables with meaningful column names
54
+
55
+ ### Links & References
56
+ - [ ] **Relative paths**: Link to other docs using relative paths (e.g., `../rbac/quick-start.md`)
57
+ - [ ] **Descriptive text**: Use meaningful link text, not "click here" or raw URLs
58
+ - [ ] **External links**: Open external links in new tabs when appropriate
59
+ - [ ] **API references**: Link to relevant API documentation and source code
60
+
61
+ ### Visual Elements
62
+ - [ ] **Screenshots**: Include when they add value, especially for UI components
63
+ - [ ] **Alt text**: Provide descriptive alt text for all images
64
+ - [ ] **Consistent styling**: Use the same formatting for similar elements across docs
65
+
66
+ ## Terminology & Language
67
+
68
+ ### Project-Specific Terms
69
+ - [ ] **Use "organisation"** (Australian spelling) consistently throughout
70
+ - [ ] **Capitalize properly**: "pace-core" (lowercase), "Supabase" (proper case)
71
+ - [ ] **Define acronyms**: Spell out abbreviations on first use (e.g., "Role-Based Access Control (RBAC)")
72
+
73
+ ### Technical Writing
74
+ - [ ] **Be specific**: Use precise technical terms rather than vague language
75
+ - [ ] **Explain assumptions**: Don't assume knowledge of internal implementation details
76
+ - [ ] **Use consistent naming**: Stick to the same terms for the same concepts throughout
77
+
78
+ ## Quality Assurance
79
+
80
+ ### Pre-Publication Checks
81
+ - [ ] **Spell check**: Run automated spell check and manual review
82
+ - [ ] **Grammar check**: Read aloud or use grammar tools to catch awkward phrasing
83
+ - [ ] **Link validation**: Verify all internal and external links work
84
+ - [ ] **Code testing**: Run and test all code examples
85
+
86
+ ### Technical Accuracy
87
+ - [ ] **API alignment**: Check referenced APIs against current implementation in `packages/core/src/`
88
+ - [ ] **Command verification**: Test all CLI commands and scripts in a clean environment
89
+ - [ ] **Version compatibility**: Ensure examples work with current dependency versions
90
+
91
+ ### Maintenance
92
+ - [ ] **Index updates**: Update [documentation-index.md](./documentation-index.md) for new, moved, or removed pages
93
+ - [ ] **Gap tracking**: Note follow-up work in the "Known gaps" section of [README.md](./README.md)
94
+ - [ ] **Regular review**: Schedule periodic reviews to keep content current
95
+
96
+ ## Accessibility & Inclusion
97
+
98
+ - [ ] **Screen reader friendly**: Use proper heading hierarchy and alt text
99
+ - [ ] **Color independence**: Don't rely solely on color to convey information
100
+ - [ ] **Clear language**: Write for non-native English speakers when possible
101
+ - [ ] **Multiple learning styles**: Include both conceptual explanations and practical examples
102
+
103
+ ## Review Process
104
+
105
+ ### Self-Review Checklist
106
+ - [ ] **Content accuracy**: Verify all technical details are correct
107
+ - [ ] **Completeness**: Ensure the document achieves its stated purpose
108
+ - [ ] **Clarity**: Check that a new team member could follow the instructions
109
+ - [ ] **Consistency**: Confirm formatting and terminology align with other docs
110
+
111
+ ### Peer Review
112
+ - [ ] **Fresh eyes**: Have someone unfamiliar with the topic review for clarity
113
+ - [ ] **Technical review**: Get approval from subject matter experts
114
+ - [ ] **Editorial review**: Check for grammar, style, and formatting consistency
115
+
116
+ ## Documentation Types
117
+
118
+ ### Quick Reference
119
+ For API docs, component props, and CLI commands:
120
+ - [ ] **Tabular format**: Use tables for parameter lists and return values
121
+ - [ ] **Required vs optional**: Clearly mark required parameters
122
+ - [ ] **Default values**: Include default values where applicable
123
+ - [ ] **Type information**: Show TypeScript types for all parameters
124
+
125
+ ### Tutorials
126
+ For step-by-step guides:
127
+ - [ ] **Clear objectives**: State what the reader will accomplish
128
+ - [ ] **Prerequisites**: List required knowledge and setup
129
+ - [ ] **Numbered steps**: Use ordered lists for sequential processes
130
+ - [ ] **Validation points**: Include checkpoints to verify progress
131
+
132
+ ### Conceptual Guides
133
+ For explaining how things work:
134
+ - [ ] **Big picture first**: Start with high-level concepts
135
+ - [ ] **Visual aids**: Use diagrams or flowcharts where helpful
136
+ - [ ] **Real-world context**: Explain when and why to use features
137
+ - [ ] **Common patterns**: Show typical usage scenarios
package/docs/README.md CHANGED
@@ -168,4 +168,4 @@ Track outstanding items in the docs backlog so the index remains trustworthy.
168
168
 
169
169
  - Keep navigation links in sync with the directory structure—update [`documentation-index.md`](./documentation-index.md) whenever a new page lands.
170
170
  - Prefer task-based guides that start with runnable code and finish with validation steps.
171
- - Use the [Documentation style checklist](./STYLE_GUIDE.md) before publishing to guarantee tone, formatting, and linking conventions stay consistent.
171
+ - Use the [Documentation Standard](./DOCUMENTATION_STANDARD.md) before publishing to guarantee tone, formatting, and linking conventions stay consistent.
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / ColumnFactory
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / ColumnFactory
2
2
 
3
3
  # Class: ColumnFactory\<TData\>
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / ErrorBoundary
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / ErrorBoundary
2
2
 
3
3
  # Class: ErrorBoundary
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / InvalidScopeError
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / InvalidScopeError
2
2
 
3
3
  # Class: InvalidScopeError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / MissingUserContextError
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / MissingUserContextError
2
2
 
3
3
  # Class: MissingUserContextError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / OrganisationContextRequiredError
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / OrganisationContextRequiredError
2
2
 
3
3
  # Class: OrganisationContextRequiredError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / PermissionDeniedError
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / PermissionDeniedError
2
2
 
3
3
  # Class: PermissionDeniedError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / PublicErrorBoundary
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / PublicErrorBoundary
2
2
 
3
3
  # Class: PublicErrorBoundary
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / RBACAuditManager
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / RBACAuditManager
2
2
 
3
3
  # Class: RBACAuditManager
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / RBACCache
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / RBACCache
2
2
 
3
3
  # Class: RBACCache
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / RBACEngine
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / RBACEngine
2
2
 
3
3
  # Class: RBACEngine
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / RBACError
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / RBACError
2
2
 
3
3
  # Class: RBACError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / RBACNotInitializedError
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / RBACNotInitializedError
2
2
 
3
3
  # Class: RBACNotInitializedError
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / SecureSupabaseClient
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / SecureSupabaseClient
2
2
 
3
3
  # Class: SecureSupabaseClient
4
4
 
@@ -1,4 +1,4 @@
1
- [@jmruthers/pace-core - v0.5.86](../README.md) / [Exports](../modules.md) / StorageUtils
1
+ [@jmruthers/pace-core - v0.5.88](../README.md) / [Exports](../modules.md) / StorageUtils
2
2
 
3
3
  # Class: StorageUtils
4
4
 
@@ -19,6 +19,7 @@ StorageUtils class for convenient access to storage functions
19
19
  - [getPublicUrl](StorageUtils.md#getpublicurl)
20
20
  - [getSignedUrl](StorageUtils.md#getsignedurl)
21
21
  - [deleteFile](StorageUtils.md#deletefile)
22
+ - [downloadFile](StorageUtils.md#downloadfile)
22
23
  - [listFiles](StorageUtils.md#listfiles)
23
24
  - [archiveFile](StorageUtils.md#archivefile)
24
25
 
@@ -57,7 +58,7 @@ Generate a file path based on organization-first structure
57
58
 
58
59
  #### Defined in
59
60
 
60
- [packages/core/src/utils/storage/index.ts:55](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L55)
61
+ [packages/core/src/utils/storage/index.ts:57](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L57)
61
62
 
62
63
  ___
63
64
 
@@ -83,7 +84,7 @@ Generate a unique filename with timestamp and UUID
83
84
 
84
85
  #### Defined in
85
86
 
86
- [packages/core/src/utils/storage/index.ts:56](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L56)
87
+ [packages/core/src/utils/storage/index.ts:58](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L58)
87
88
 
88
89
  ___
89
90
 
@@ -111,7 +112,7 @@ Extract file metadata from a File object
111
112
 
112
113
  #### Defined in
113
114
 
114
- [packages/core/src/utils/storage/index.ts:57](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L57)
115
+ [packages/core/src/utils/storage/index.ts:59](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L59)
115
116
 
116
117
  ___
117
118
 
@@ -139,34 +140,37 @@ Upload a file to Supabase storage with app segregation
139
140
 
140
141
  #### Defined in
141
142
 
142
- [packages/core/src/utils/storage/index.ts:58](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L58)
143
+ [packages/core/src/utils/storage/index.ts:60](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L60)
143
144
 
144
145
  ___
145
146
 
146
147
  ### getPublicUrl
147
148
 
148
- ▪ `Static` **getPublicUrl**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `path`: `string`) => `string` = `getPublicUrl`
149
+ ▪ `Static` **getPublicUrl**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `path`: `string`, `isPublic`: `boolean`) => `string` = `getPublicUrl`
149
150
 
150
151
  #### Type declaration
151
152
 
152
- ▸ (`supabase`, `path`): `string`
153
+ ▸ (`supabase`, `path`, `isPublic?`): `string`
153
154
 
154
155
  Get a public URL for a file
155
156
 
156
157
  ##### Parameters
157
158
 
158
- | Name | Type |
159
- | :------ | :------ |
160
- | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> |
161
- | `path` | `string` |
159
+ | Name | Type | Default value | Description |
160
+ | :------ | :------ | :------ | :------ |
161
+ | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | `undefined` | Supabase client instance |
162
+ | `path` | `string` | `undefined` | File path within the bucket |
163
+ | `isPublic` | `boolean` | `true` | Whether the file is in the public-files bucket (default: true) |
162
164
 
163
165
  ##### Returns
164
166
 
165
167
  `string`
166
168
 
169
+ Public URL for the file
170
+
167
171
  #### Defined in
168
172
 
169
- [packages/core/src/utils/storage/index.ts:59](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L59)
173
+ [packages/core/src/utils/storage/index.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L61)
170
174
 
171
175
  ___
172
176
 
@@ -179,55 +183,91 @@ ___
179
183
  ▸ (`supabase`, `path`, `options`): `Promise`\<\{ `url`: `string` ; `expiresAt`: `string` } \| ``null``\>
180
184
 
181
185
  Get a signed URL for a protected file
186
+ Private files are always in the 'files' bucket, so this always uses 'files' bucket
182
187
 
183
188
  ##### Parameters
184
189
 
185
- | Name | Type |
186
- | :------ | :------ |
187
- | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> |
188
- | `path` | `string` |
189
- | `options` | [`StorageUrlOptions`](../interfaces/StorageUrlOptions.md) |
190
+ | Name | Type | Description |
191
+ | :------ | :------ | :------ |
192
+ | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | Supabase client instance |
193
+ | `path` | `string` | File path within the bucket |
194
+ | `options` | [`StorageUrlOptions`](../interfaces/StorageUrlOptions.md) | URL options including expiry time |
190
195
 
191
196
  ##### Returns
192
197
 
193
198
  `Promise`\<\{ `url`: `string` ; `expiresAt`: `string` } \| ``null``\>
194
199
 
200
+ Signed URL with expiration timestamp, or null if failed
201
+
195
202
  #### Defined in
196
203
 
197
- [packages/core/src/utils/storage/index.ts:60](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L60)
204
+ [packages/core/src/utils/storage/index.ts:62](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L62)
198
205
 
199
206
  ___
200
207
 
201
208
  ### deleteFile
202
209
 
203
- ▪ `Static` **deleteFile**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `path`: `string`) => `Promise`\<\{ `success`: `boolean` ; `error?`: `string` }\> = `deleteFile`
210
+ ▪ `Static` **deleteFile**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `path`: `string`, `isPublic`: `boolean`) => `Promise`\<\{ `success`: `boolean` ; `error?`: `string` }\> = `deleteFile`
204
211
 
205
212
  #### Type declaration
206
213
 
207
- ▸ (`supabase`, `path`): `Promise`\<\{ `success`: `boolean` ; `error?`: `string` }\>
214
+ ▸ (`supabase`, `path`, `isPublic?`): `Promise`\<\{ `success`: `boolean` ; `error?`: `string` }\>
208
215
 
209
216
  Delete a file from storage
210
217
 
211
218
  ##### Parameters
212
219
 
213
- | Name | Type |
214
- | :------ | :------ |
215
- | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> |
216
- | `path` | `string` |
220
+ | Name | Type | Default value | Description |
221
+ | :------ | :------ | :------ | :------ |
222
+ | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | `undefined` | Supabase client instance |
223
+ | `path` | `string` | `undefined` | File path within the bucket |
224
+ | `isPublic` | `boolean` | `false` | Whether the file is in the public-files bucket (default: false) |
217
225
 
218
226
  ##### Returns
219
227
 
220
228
  `Promise`\<\{ `success`: `boolean` ; `error?`: `string` }\>
221
229
 
230
+ Success status and optional error message
231
+
222
232
  #### Defined in
223
233
 
224
- [packages/core/src/utils/storage/index.ts:61](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L61)
234
+ [packages/core/src/utils/storage/index.ts:63](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L63)
235
+
236
+ ___
237
+
238
+ ### downloadFile
239
+
240
+ ▪ `Static` **downloadFile**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `path`: `string`, `isPublic`: `boolean`) => `Promise`\<\{ `blob`: `Blob` ; `metadata`: \{ `name`: `string` ; `size`: `number` ; `type`: `string` } } \| ``null``\> = `downloadFile`
241
+
242
+ #### Type declaration
243
+
244
+ ▸ (`supabase`, `path`, `isPublic?`): `Promise`\<\{ `blob`: `Blob` ; `metadata`: \{ `name`: `string` ; `size`: `number` ; `type`: `string` } } \| ``null``\>
245
+
246
+ Download a file from storage
247
+
248
+ ##### Parameters
249
+
250
+ | Name | Type | Default value | Description |
251
+ | :------ | :------ | :------ | :------ |
252
+ | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | `undefined` | Supabase client instance |
253
+ | `path` | `string` | `undefined` | File path within the bucket |
254
+ | `isPublic` | `boolean` | `false` | Whether the file is in the public-files bucket (default: false) |
255
+
256
+ ##### Returns
257
+
258
+ `Promise`\<\{ `blob`: `Blob` ; `metadata`: \{ `name`: `string` ; `size`: `number` ; `type`: `string` } } \| ``null``\>
259
+
260
+ File blob with metadata, or null if failed
261
+
262
+ #### Defined in
263
+
264
+ [packages/core/src/utils/storage/index.ts:64](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L64)
225
265
 
226
266
  ___
227
267
 
228
268
  ### listFiles
229
269
 
230
- ▪ `Static` **listFiles**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `options`: [`StorageListOptions`](../interfaces/StorageListOptions.md)) => `Promise`\<[`StorageListResult`](../interfaces/StorageListResult.md)\> = `listFiles`
270
+ ▪ `Static` **listFiles**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `options`: [`StorageListOptions`](../interfaces/StorageListOptions.md) & \{ `isPublic?`: `boolean` }) => `Promise`\<[`StorageListResult`](../interfaces/StorageListResult.md)\> = `listFiles`
231
271
 
232
272
  #### Type declaration
233
273
 
@@ -237,24 +277,26 @@ List files in an organization scope
237
277
 
238
278
  ##### Parameters
239
279
 
240
- | Name | Type |
241
- | :------ | :------ |
242
- | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> |
243
- | `options` | [`StorageListOptions`](../interfaces/StorageListOptions.md) |
280
+ | Name | Type | Description |
281
+ | :------ | :------ | :------ |
282
+ | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | Supabase client instance |
283
+ | `options` | [`StorageListOptions`](../interfaces/StorageListOptions.md) & \{ `isPublic?`: `boolean` } | List options including bucket selection via isPublic |
244
284
 
245
285
  ##### Returns
246
286
 
247
287
  `Promise`\<[`StorageListResult`](../interfaces/StorageListResult.md)\>
248
288
 
289
+ List of files with metadata
290
+
249
291
  #### Defined in
250
292
 
251
- [packages/core/src/utils/storage/index.ts:62](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L62)
293
+ [packages/core/src/utils/storage/index.ts:65](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L65)
252
294
 
253
295
  ___
254
296
 
255
297
  ### archiveFile
256
298
 
257
- ▪ `Static` **archiveFile**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `path`: `string`, `options`: \{ `appName`: `string` ; `orgId`: `string` }) => `Promise`\<\{ `success`: `boolean` ; `error?`: `string` }\> = `archiveFile`
299
+ ▪ `Static` **archiveFile**: (`supabase`: `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\>, `path`: `string`, `options`: \{ `appName`: `string` ; `orgId`: `string` ; `isPublic?`: `boolean` }) => `Promise`\<\{ `success`: `boolean` ; `error?`: `string` }\> = `archiveFile`
258
300
 
259
301
  #### Type declaration
260
302
 
@@ -264,13 +306,14 @@ Move a file to archived location (soft delete)
264
306
 
265
307
  ##### Parameters
266
308
 
267
- | Name | Type |
268
- | :------ | :------ |
269
- | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> |
270
- | `path` | `string` |
271
- | `options` | `Object` |
272
- | `options.appName` | `string` |
273
- | `options.orgId` | `string` |
309
+ | Name | Type | Description |
310
+ | :------ | :------ | :------ |
311
+ | `supabase` | `default`\<`any`, ``"public"``, ``"public"``, `any`, `any`\> | Supabase client instance |
312
+ | `path` | `string` | File path within the bucket |
313
+ | `options` | `Object` | Archive options including bucket selection via isPublic |
314
+ | `options.appName` | `string` | - |
315
+ | `options.orgId` | `string` | - |
316
+ | `options.isPublic?` | `boolean` | - |
274
317
 
275
318
  ##### Returns
276
319
 
@@ -278,4 +321,4 @@ Move a file to archived location (soft delete)
278
321
 
279
322
  #### Defined in
280
323
 
281
- [packages/core/src/utils/storage/index.ts:63](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L63)
324
+ [packages/core/src/utils/storage/index.ts:66](https://github.com/jmruthers/pace-core/blob/main/packages/core/src/utils/storage/index.ts#L66)