@postxl/generators 1.11.6 → 1.12.0

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 (42) hide show
  1. package/dist/backend-view/model-view-service.generator.js +4 -1
  2. package/dist/backend-view/model-view-service.generator.js.map +1 -1
  3. package/dist/backend-view/template/query.utils.test.ts +34 -0
  4. package/dist/backend-view/template/query.utils.ts +89 -0
  5. package/dist/frontend-admin/admin.generator.d.ts +9 -0
  6. package/dist/frontend-admin/admin.generator.js +19 -0
  7. package/dist/frontend-admin/admin.generator.js.map +1 -1
  8. package/dist/frontend-admin/generators/admin-sidebar.generator.js +1 -1
  9. package/dist/frontend-admin/generators/audit-log-sidebar.generator.js +107 -113
  10. package/dist/frontend-admin/generators/audit-log-sidebar.generator.js.map +1 -1
  11. package/dist/frontend-admin/generators/comment-sidebar.generator.d.ts +9 -0
  12. package/dist/frontend-admin/generators/comment-sidebar.generator.js +246 -0
  13. package/dist/frontend-admin/generators/comment-sidebar.generator.js.map +1 -0
  14. package/dist/frontend-admin/generators/detail-sidebar.generator.d.ts +9 -0
  15. package/dist/frontend-admin/generators/detail-sidebar.generator.js +148 -0
  16. package/dist/frontend-admin/generators/detail-sidebar.generator.js.map +1 -0
  17. package/dist/frontend-admin/generators/model-admin-page.generator.js +40 -6
  18. package/dist/frontend-admin/generators/model-admin-page.generator.js.map +1 -1
  19. package/dist/frontend-core/frontend.generator.js +2 -1
  20. package/dist/frontend-core/frontend.generator.js.map +1 -1
  21. package/dist/frontend-core/template/docs/LOGIN_PROCESS.d2 +372 -0
  22. package/dist/frontend-core/template/docs/LOGIN_PROCESS.md +214 -0
  23. package/dist/frontend-core/template/docs/LOGIN_PROCESS.svg +914 -0
  24. package/dist/frontend-core/template/src/components/admin/table-filter.stories.tsx +265 -0
  25. package/dist/frontend-core/template/src/components/admin/table-filter.tsx +224 -128
  26. package/dist/frontend-core/template/src/components/admin/table-view-panel.tsx +159 -0
  27. package/dist/frontend-core/template/src/context-providers/auth-context-provider.tsx +54 -43
  28. package/dist/frontend-core/template/src/hooks/use-table-view-config.tsx +249 -0
  29. package/dist/frontend-core/template/src/pages/dashboard/dashboard.page.tsx +5 -5
  30. package/dist/frontend-core/template/src/pages/error/auth-error.page.tsx +37 -0
  31. package/dist/frontend-core/template/src/pages/error/default-error.page.tsx +24 -40
  32. package/dist/frontend-core/template/src/pages/error/not-found-error.page.tsx +8 -10
  33. package/dist/frontend-core/template/src/pages/login/login.page.tsx +39 -13
  34. package/dist/frontend-core/template/src/pages/unauthorized/unauthorized.page.tsx +2 -2
  35. package/dist/frontend-core/template/src/routes/_auth-routes.tsx +21 -8
  36. package/dist/frontend-core/template/src/routes/auth-error.tsx +19 -0
  37. package/dist/frontend-core/template/vite.config.ts +5 -0
  38. package/dist/frontend-core/types/hook.d.ts +1 -1
  39. package/dist/frontend-tables/generators/model-table.generator.js +30 -5
  40. package/dist/frontend-tables/generators/model-table.generator.js.map +1 -1
  41. package/dist/types/template/query.types.ts +19 -1
  42. package/package.json +5 -5
@@ -1,9 +1,21 @@
1
- import { useAuth } from '@context-providers/auth-context-provider'
1
+ import { AuthErrorType, authErrorTypes, useAuth } from '@context-providers/auth-context-provider'
2
2
  import { Route } from '@routes/login'
3
3
 
4
4
  import { useEffect } from 'react'
5
5
 
6
- import type { FileRouteTypes } from '../../routeTree.gen'
6
+ import { InfoCard } from '@postxl/ui-components'
7
+
8
+ import { FileRouteTypes } from '../../routeTree.gen'
9
+
10
+ function getSafeRedirectUrl(url: string | undefined): string | undefined {
11
+ if (!url) {
12
+ return undefined
13
+ }
14
+ if (!url.startsWith('/') || url.startsWith('//') || url.includes('://')) {
15
+ return undefined
16
+ }
17
+ return url
18
+ }
7
19
 
8
20
  /**
9
21
  * Login component
@@ -15,36 +27,50 @@ import type { FileRouteTypes } from '../../routeTree.gen'
15
27
  *
16
28
  * - if authProvider is not initialized, it will wait for initializing complete
17
29
  * - if the user is not authenticated, it will execute login (redirect to keycloak)
18
- * - if the user is authenticated, it will wait for the user to be loaded (user !== null)
19
- * - if the user is loaded, it will redirect to the dashboard
30
+ * - if the user is authenticated, it will wait for the user to be loaded (viewerData !== null)
31
+ * - if the user is loaded, it will redirect to the redirectUrl (if exist), or the user program (if exist), or home page
20
32
  */
21
33
  export const LoginPage = () => {
22
- const { isAuthenticated, isInitComplete, login, user } = useAuth()
34
+ const { loginState, login, viewerData } = useAuth()
23
35
  const navigate = Route.useNavigate()
24
36
  const searchParams = Route.useSearch()
25
37
 
26
38
  useEffect(() => {
27
39
  // wait for the keycloak init to complete
28
- if (!isInitComplete) {
40
+ if (loginState === 'inProgress') {
29
41
  return
30
42
  }
31
43
 
32
44
  // if not authenticated yet, execute login
33
- if (!isAuthenticated) {
45
+ if (loginState === 'loggedOut') {
34
46
  void login() // NOSONAR
35
- } else if (user) {
47
+ return
48
+ }
49
+
50
+ // check if auth errors exist and redirect auth error page
51
+ if (authErrorTypes.includes(loginState as AuthErrorType)) {
52
+ void navigate({ to: '/auth-error', search: { type: loginState as AuthErrorType } })
53
+ return
54
+ }
55
+
56
+ // user data available
57
+ if (viewerData) {
36
58
  // if authenticated, redirect considering the user role
37
- if (user.userRoles.includes('unauthorized')) {
59
+ if (viewerData.userRoles.includes('unauthorized')) {
38
60
  void navigate({ to: '/unauthorized' }) // NOSONAR
39
61
  } else {
40
- // redirect, when the user is authenticated and loaded
62
+ // redirect to given redirect url or /dashboard (as fallback)
41
63
  const fallbackHome: FileRouteTypes['to'] = '/dashboard'
42
- const href = searchParams.redirectUrl ?? fallbackHome
64
+ const safeRedirectUrl = getSafeRedirectUrl(searchParams.redirectUrl)
65
+ const href: FileRouteTypes['to'] = (safeRedirectUrl as FileRouteTypes['to']) ?? fallbackHome
66
+
43
67
  // for dev mode and HMR we need to wait for the redirect; otherwise the 'href' is not found by tanstack router
44
68
  setTimeout(() => void navigate({ to: href, from: '/login' }), 0) // NOSONAR (we want to ignore the promise here)
45
69
  }
46
70
  }
47
- }, [isAuthenticated, isInitComplete, login, navigate, searchParams.redirectUrl, user])
48
71
 
49
- return <p>Login in progress...</p>
72
+ // If user has no programs at all, they'll hit _auth-routes which handles that case
73
+ }, [login, loginState, navigate, searchParams.redirectUrl, viewerData])
74
+
75
+ return <InfoCard variant="loading" title="Signing In" message="Please wait while we authenticate your session..." />
50
76
  }
@@ -1,11 +1,11 @@
1
1
  import { useAuth } from '@context-providers/auth-context-provider'
2
2
 
3
3
  export const UnauthorizedPage = () => {
4
- const { user } = useAuth()
4
+ const { viewerData } = useAuth()
5
5
 
6
6
  return (
7
7
  <section className="flex flex-col gap-4 border-1 color-border p-2 m-3 rounded">
8
- <h1>Hi {user?.userDetails?.name}!</h1>
8
+ <h1>Hi {viewerData?.user?.name}!</h1>
9
9
  <p className="text-xl">You are not authorized to access this project.</p>
10
10
  </section>
11
11
  )
@@ -1,4 +1,7 @@
1
- import { createFileRoute, redirect } from '@tanstack/react-router'
1
+ import { useAuth } from '@context-providers/auth-context-provider'
2
+ import { createFileRoute, Outlet } from '@tanstack/react-router'
3
+
4
+ import { useEffect } from 'react'
2
5
 
3
6
  /**
4
7
  * Auth Route Guard
@@ -6,14 +9,24 @@ import { createFileRoute, redirect } from '@tanstack/react-router'
6
9
  * if the user is not authenticated, when accessing an auth-route, the redirect to the login page is executed
7
10
  */
8
11
  export const Route = createFileRoute('/_auth-routes')({
9
- beforeLoad: ({ context }) => {
10
- const { isAuthenticated } = context.auth
12
+ component: AuthGuard,
13
+ })
14
+
15
+ function AuthGuard() {
16
+ const navigate = Route.useNavigate()
17
+ const { loginState } = useAuth()
11
18
 
12
- if (!isAuthenticated) {
19
+ useEffect(() => {
20
+ if (loginState === 'loggedOut') {
13
21
  // store the redirect url as search param, if not authorized, to restore after keycloak login
14
- throw redirect({ to: '/login', search: { redirectUrl: location.pathname + location.search } })
22
+ void navigate({ to: '/login', search: { redirectUrl: location.pathname + location.search } })
15
23
  }
24
+ }, [loginState, navigate])
16
25
 
17
- // if the user is authorized - do nothing (no redirect; required page is loaded)
18
- },
19
- })
26
+ // Don't render anything until authenticated (redirect effect handles navigation)
27
+ if (loginState !== 'loggedIn') {
28
+ return null
29
+ }
30
+
31
+ return <Outlet />
32
+ }
@@ -0,0 +1,19 @@
1
+ import { authErrorTypes } from '@context-providers/auth-context-provider'
2
+ import { AuthErrorPage } from '@pages/error/auth-error.page'
3
+ import { createFileRoute } from '@tanstack/react-router'
4
+
5
+ import { z } from 'zod'
6
+
7
+ const authErrorSearchSchema = z.object({
8
+ type: z.enum(authErrorTypes).optional(),
9
+ })
10
+
11
+ export const Route = createFileRoute('/auth-error')({
12
+ validateSearch: authErrorSearchSchema,
13
+ component: RouteComponent,
14
+ })
15
+
16
+ function RouteComponent() {
17
+ const { type } = Route.useSearch()
18
+ return <AuthErrorPage errorType={type} />
19
+ }
@@ -6,6 +6,7 @@ import tailwindcss from '@tailwindcss/vite'
6
6
  // import { devtools } from '@tanstack/devtools-vite'
7
7
  import tanstackRouter from '@tanstack/router-plugin/vite'
8
8
  import react from '@vitejs/plugin-react'
9
+ import checker from 'vite-plugin-checker'
9
10
 
10
11
  // https://vite.dev/config/
11
12
  import path from 'node:path'
@@ -86,6 +87,10 @@ export default defineConfig({
86
87
  },
87
88
  },
88
89
  plugins: [
90
+ checker({
91
+ // e.g. use TypeScript check
92
+ typescript: true,
93
+ }),
89
94
  // devtools(),
90
95
  tsconfigPaths({
91
96
  projects: [path.resolve(__dirname, 'tsconfig.json')],
@@ -1 +1 @@
1
- export type Hook = 'useDelay.ts' | 'useFontsLoaded.ts' | 'useMediaQuery.ts' | 'useScreenSize.ts' | 'useScrollLock.tsx' | 'useWindowFocus.ts';
1
+ export type Hook = 'useDelay.ts' | 'useFontsLoaded.ts' | 'useMediaQuery.ts' | 'useScreenSize.ts' | 'useScrollLock.tsx' | 'use-table-view-config.tsx' | 'useWindowFocus.ts';
@@ -34,7 +34,8 @@ import { useMemo, useEffect, useRef, useCallback } from 'react'
34
34
 
35
35
  import { TableFilter } from '@components/admin/table-filter'
36
36
  import { ColumnHeaderStateIcon } from '@components/admin/column-header-state-icon'
37
- import { createSelectColumn, DataGrid, DataGridViewMenu, Input, useDataGrid } from '@postxl/ui-components'
37
+ import { TableViewPanel } from '@components/admin/table-view-panel'
38
+ import { createSelectColumn, DataGrid, Input, useDataGrid } from '@postxl/ui-components'
38
39
  import { useTRPC } from '@lib/trpc'
39
40
  import { ParentSize } from '@visx/responsive'
40
41
 
@@ -64,6 +65,11 @@ export function ${model.table.component.name}({
64
65
  hasNextPage,
65
66
  fetchNextPage,
66
67
  total,
68
+ model,
69
+ currentUserId,
70
+ isAdmin,
71
+ onFiltersReplace,
72
+ onSortReplace,
67
73
  ${relatedModels.map((rm) => `${rm.table.propName}`).join(',\n ')}
68
74
  }: Readonly<{
69
75
  tableHeight?: number
@@ -89,6 +95,12 @@ export function ${model.table.component.name}({
89
95
  hasNextPage?: boolean
90
96
  fetchNextPage?: () => Promise<unknown>
91
97
  total?: number
98
+ // Table view props
99
+ model?: string
100
+ currentUserId?: string
101
+ isAdmin?: boolean
102
+ onFiltersReplace?: (filters: ${model.types.filter.type.name}) => void
103
+ onSortReplace?: (sort: SortState<${model.types.filter.fieldType.name}>) => void
92
104
  }>) {
93
105
  const trpc = useTRPC()
94
106
 
@@ -170,7 +182,7 @@ export function ${model.table.component.name}({
170
182
  onRowAdd: handleAddRow ? onRowAdd : undefined,
171
183
  enableSearch: true,
172
184
  // Infinite scroll: trigger loading more when scrolling near the end
173
- onLoadMore: hasNextPage ? fetchNextPage : undefined,
185
+ onLoadMore: hasNextPage && fetchNextPage ? () => { void fetchNextPage() } : undefined,
174
186
  // Total row count for proper scrollbar sizing (reflects full dataset)
175
187
  totalRowCount: total,
176
188
  // KeyField-based row selection (for URL routing)
@@ -228,7 +240,18 @@ export function ${model.table.component.name}({
228
240
  }}
229
241
  className="w-64 h-8"
230
242
  />
231
- <DataGridViewMenu table={table} />
243
+ {model && (
244
+ <TableViewPanel
245
+ model={model}
246
+ table={table}
247
+ currentUserId={currentUserId}
248
+ isAdmin={isAdmin}
249
+ filters={filters as Record<string, unknown>}
250
+ sort={sort}
251
+ onFiltersChange={onFiltersReplace as ((filters: Record<string, unknown>) => void) | undefined}
252
+ onSortChange={onSortReplace as ((sort: { field: string; direction: 'asc' | 'desc' }[]) => void) | undefined}
253
+ />
254
+ )}
232
255
  </div>
233
256
  <div className="h-full overflow-hidden">
234
257
  <ParentSize>
@@ -279,7 +302,7 @@ function generateColumn({ filterFieldArrayName, filterConfigName, trpcRouteName,
279
302
  }
280
303
  }
281
304
  const cellString = ` cell: { variant: '${variant}'${optionsString}${hasSearchString} },\n`;
282
- const editableString = readonly ? ' editable: false, \n' : '';
305
+ const editableString = readonly ? ' editable: false, \n' : ' enableBulkEdit: true,\n';
283
306
  // Column ID is already the filter field name (e.g., 'authorEmail' not 'email')
284
307
  const filterString = ` ...${filterFieldArrayName}.includes('${id}' as any) && {
285
308
  headerMenuFooter: ({ open }) => (
@@ -360,7 +383,9 @@ function getFieldDefinitionForField(params) {
360
383
  accessor: generateFieldAccessor(params),
361
384
  header: generateColumnHeader(params),
362
385
  variant: generateCellVariant(params),
363
- readonly: params.model.isReadonly || (params.field.kind === 'scalar' && params.field.isReadonly),
386
+ readonly: params.model.isReadonly ||
387
+ params.field.kind === 'id' ||
388
+ (params.field.kind === 'scalar' && params.field.isReadonly),
364
389
  size: calculateWidth(params.field.name),
365
390
  duParentFieldName: params.duParentField?.name,
366
391
  },
@@ -1 +1 @@
1
- {"version":3,"file":"model-table.generator.js","sourceRoot":"","sources":["../../../src/frontend-tables/generators/model-table.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-table.generator.js","sourceRoot":"","sources":["../../../src/frontend-tables/generators/model-table.generator.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,20 @@ export const zStringFilter = z.object({
42
42
  exclude: z.string().nullable().optional(),
43
43
  })
44
44
 
45
- export type FieldValueType = 'string' | 'number' | 'date' | 'boolean'
45
+ export type FieldValueType = 'string' | 'number' | 'date' | 'boolean' | 'hierarchy'
46
+
47
+ /**
48
+ * Filter option type - supports both flat and hierarchical structures.
49
+ * For hierarchy mode, items can have nested children forming a tree structure.
50
+ */
51
+ export type FilterOption = {
52
+ value: string
53
+ label: string
54
+ /** Whether this option has matches in current cross-filter state. Defaults to true. */
55
+ hasMatches?: boolean
56
+ /** Child options for hierarchy mode. */
57
+ children?: FilterOption[]
58
+ }
46
59
 
47
60
  export type FilterValue = string[] | boolean[] | NumberFilter | DateFilter | StringFilter | undefined
48
61
 
@@ -90,11 +103,16 @@ type ScalarFilterConfig<TFilters extends FilterState> = BaseFilterConfig<TFilter
90
103
  kind: 'scalar' | 'id'
91
104
  }
92
105
 
106
+ export type HierarchyFilterConfig<TFilters extends FilterState> = BaseFilterConfig<TFilters> & {
107
+ kind: 'hierarchy'
108
+ }
109
+
93
110
  export type FilterConfigItem<TFilters extends FilterState> =
94
111
  | RelationFilterConfig<TFilters>
95
112
  | EnumFilterConfig<TFilters>
96
113
  | DiscriminatedUnionFilterConfig<TFilters>
97
114
  | ScalarFilterConfig<TFilters>
115
+ | HierarchyFilterConfig<TFilters>
98
116
 
99
117
  export type FilterConfig<TField extends FilterFieldName, TFilters extends FilterState> = Record<
100
118
  TField,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postxl/generators",
3
- "version": "1.11.6",
3
+ "version": "1.12.0",
4
4
  "description": "Code generators for PXL - generates backend, frontend, Prisma schemas, and more",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -44,10 +44,10 @@
44
44
  "@faker-js/faker": "9.4.0",
45
45
  "@prisma/prisma-schema-wasm": "7.2.0-4.0c8ef2ce45c83248ab3df073180d5eda9e8be7a3",
46
46
  "exceljs": "^4.4.0",
47
- "@postxl/generator": "^1.3.3",
48
- "@postxl/schema": "^1.3.1",
49
- "@postxl/ui-components": "^1.3.6",
50
- "@postxl/utils": "^1.3.1"
47
+ "@postxl/schema": "^1.4.0",
48
+ "@postxl/ui-components": "^1.3.8",
49
+ "@postxl/utils": "^1.3.1",
50
+ "@postxl/generator": "^1.3.3"
51
51
  },
52
52
  "devDependencies": {},
53
53
  "wallaby": {