@questpie/admin 3.0.2 → 3.0.4

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 (249) hide show
  1. package/README.md +34 -5
  2. package/dist/client/blocks/block-renderer.d.mts +2 -2
  3. package/dist/client/blocks/block-renderer.mjs +4 -1
  4. package/dist/client/builder/types/action-types.d.mts +31 -3
  5. package/dist/client/builder/types/collection-types.d.mts +140 -0
  6. package/dist/client/builder/types/ui-config.d.mts +16 -2
  7. package/dist/client/builder/types/views.d.mts +57 -0
  8. package/dist/client/builder/types/widget-types.d.mts +5 -0
  9. package/dist/client/components/actions/action-button.mjs +137 -199
  10. package/dist/client/components/actions/action-dialog.mjs +198 -156
  11. package/dist/client/components/actions/confirmation-dialog.mjs +2 -2
  12. package/dist/client/components/actions/header-actions.mjs +52 -53
  13. package/dist/client/components/admin-link.d.mts +2 -2
  14. package/dist/client/components/auth/auth-loading.mjs +41 -18
  15. package/dist/client/components/blocks/block-fields-renderer.mjs +64 -28
  16. package/dist/client/components/blocks/block-insert-button.mjs +4 -4
  17. package/dist/client/components/blocks/block-item.mjs +2 -2
  18. package/dist/client/components/blocks/block-library-sidebar.mjs +2 -2
  19. package/dist/client/components/component-renderer.mjs +1 -1
  20. package/dist/client/components/fields/array-field.mjs +14 -14
  21. package/dist/client/components/fields/asset-preview-field.mjs +1 -1
  22. package/dist/client/components/fields/blocks-field/blocks-field.mjs +84 -104
  23. package/dist/client/components/fields/json-field.mjs +2 -2
  24. package/dist/client/components/fields/object-array-field.mjs +22 -22
  25. package/dist/client/components/fields/object-field.mjs +5 -5
  26. package/dist/client/components/fields/relation/displays/cards-display.mjs +16 -9
  27. package/dist/client/components/fields/relation/displays/chips-display.mjs +15 -12
  28. package/dist/client/components/fields/relation/displays/grid-display.mjs +15 -11
  29. package/dist/client/components/fields/relation/displays/list-display.mjs +33 -20
  30. package/dist/client/components/fields/relation/displays/table-display.mjs +62 -93
  31. package/dist/client/components/fields/relation/relation-items-display.mjs +1 -1
  32. package/dist/client/components/fields/relation-picker.mjs +7 -6
  33. package/dist/client/components/fields/relation-select.mjs +71 -47
  34. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +392 -82
  35. package/dist/client/components/fields/rich-text-editor/extensions.mjs +54 -23
  36. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +24 -50
  37. package/dist/client/components/fields/rich-text-editor/image-upload.mjs +66 -0
  38. package/dist/client/components/fields/rich-text-editor/index.d.mts +38 -0
  39. package/dist/client/components/fields/rich-text-editor/index.mjs +637 -376
  40. package/dist/client/components/fields/rich-text-editor/link-utils.mjs +26 -0
  41. package/dist/client/components/fields/rich-text-editor/presets.d.mts +10 -0
  42. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +27 -6
  43. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +464 -346
  44. package/dist/client/components/fields/rich-text-editor/types.d.mts +77 -0
  45. package/dist/client/components/fields/upload-field.mjs +45 -49
  46. package/dist/client/components/filter-builder/columns-tab.mjs +69 -62
  47. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +473 -308
  48. package/dist/client/components/filter-builder/filters-tab.mjs +109 -82
  49. package/dist/client/components/filter-builder/saved-views-tab.mjs +300 -198
  50. package/dist/client/components/history-sidebar.mjs +850 -340
  51. package/dist/client/components/layout/field-layout-renderer.mjs +6 -5
  52. package/dist/client/components/locale-switcher.mjs +8 -8
  53. package/dist/client/components/media/media-grid.mjs +12 -9
  54. package/dist/client/components/media/media-picker-dialog.mjs +242 -230
  55. package/dist/client/components/preview/live-preview-mode.mjs +1 -1
  56. package/dist/client/components/primitives/asset-preview.mjs +37 -22
  57. package/dist/client/components/primitives/date-input.mjs +212 -249
  58. package/dist/client/components/primitives/dropzone.mjs +192 -159
  59. package/dist/client/components/primitives/field-select-control.mjs +93 -0
  60. package/dist/client/components/primitives/select-multi.mjs +251 -230
  61. package/dist/client/components/primitives/select-single.mjs +345 -290
  62. package/dist/client/components/primitives/time-input.mjs +2 -2
  63. package/dist/client/components/sheets/resource-sheet.mjs +2 -0
  64. package/dist/client/components/ui/accordion.mjs +4 -4
  65. package/dist/client/components/ui/alert.mjs +3 -3
  66. package/dist/client/components/ui/badge.mjs +4 -4
  67. package/dist/client/components/ui/button.mjs +47 -37
  68. package/dist/client/components/ui/card.mjs +2 -2
  69. package/dist/client/components/ui/checkbox.mjs +1 -1
  70. package/dist/client/components/ui/command.mjs +5 -5
  71. package/dist/client/components/ui/dialog.mjs +3 -3
  72. package/dist/client/components/ui/drawer.mjs +1 -1
  73. package/dist/client/components/ui/dropdown-menu.mjs +157 -15
  74. package/dist/client/components/ui/empty-state.mjs +88 -59
  75. package/dist/client/components/ui/field.mjs +2 -2
  76. package/dist/client/components/ui/input-group.mjs +3 -3
  77. package/dist/client/components/ui/input.mjs +1 -1
  78. package/dist/client/components/ui/kbd.mjs +1 -1
  79. package/dist/client/components/ui/label.mjs +1 -1
  80. package/dist/client/components/ui/popover.mjs +19 -11
  81. package/dist/client/components/ui/scroll-fade.mjs +170 -0
  82. package/dist/client/components/ui/search-input.mjs +1 -1
  83. package/dist/client/components/ui/select.mjs +129 -27
  84. package/dist/client/components/ui/sheet.mjs +54 -34
  85. package/dist/client/components/ui/sidebar.mjs +15 -14
  86. package/dist/client/components/ui/skeleton.mjs +28 -12
  87. package/dist/client/components/ui/switch.mjs +2 -2
  88. package/dist/client/components/ui/table.mjs +82 -74
  89. package/dist/client/components/ui/tabs.mjs +26 -31
  90. package/dist/client/components/ui/textarea.mjs +1 -1
  91. package/dist/client/components/ui/tooltip.mjs +1 -1
  92. package/dist/client/components/widgets/chart-widget.mjs +134 -96
  93. package/dist/client/components/widgets/progress-widget.mjs +59 -34
  94. package/dist/client/components/widgets/quick-actions-widget.mjs +184 -113
  95. package/dist/client/components/widgets/recent-items-widget.mjs +144 -102
  96. package/dist/client/components/widgets/stats-widget.mjs +91 -72
  97. package/dist/client/components/widgets/table-widget.mjs +159 -246
  98. package/dist/client/components/widgets/timeline-widget.mjs +66 -43
  99. package/dist/client/components/widgets/value-widget.mjs +261 -152
  100. package/dist/client/components/widgets/widget-empty-state.mjs +88 -0
  101. package/dist/client/components/widgets/widget-skeletons.mjs +53 -20
  102. package/dist/client/contexts/focus-context.d.mts +2 -2
  103. package/dist/client/hooks/use-action.mjs +63 -55
  104. package/dist/client/hooks/use-audit-history.mjs +1 -65
  105. package/dist/client/hooks/use-collection-validation.mjs +36 -23
  106. package/dist/client/hooks/use-collection.mjs +96 -1
  107. package/dist/client/hooks/use-saved-views.mjs +70 -49
  108. package/dist/client/hooks/use-server-actions.mjs +59 -40
  109. package/dist/client/hooks/use-server-validation.mjs +156 -41
  110. package/dist/client/hooks/use-server-widget-data.mjs +1 -1
  111. package/dist/client/hooks/use-setup-status.d.mts +3 -3
  112. package/dist/client/hooks/use-setup-status.mjs +2 -2
  113. package/dist/client/hooks/use-transition-stage.mjs +2 -10
  114. package/dist/client/hooks/use-validation-error-map.mjs +31 -13
  115. package/dist/client/hooks/use-view-state.mjs +238 -174
  116. package/dist/client/i18n/date-locale.mjs +33 -0
  117. package/dist/client/i18n/hooks.mjs +17 -1
  118. package/dist/client/lib/utils.mjs +3 -2
  119. package/dist/client/preview/block-scope-context.d.mts +2 -2
  120. package/dist/client/preview/preview-banner.d.mts +2 -2
  121. package/dist/client/preview/preview-field.d.mts +4 -4
  122. package/dist/client/preview/preview-field.mjs +2 -2
  123. package/dist/client/runtime/provider.mjs +8 -1
  124. package/dist/client/runtime/translations-provider.mjs +1 -1
  125. package/dist/client/scope/picker.d.mts +2 -2
  126. package/dist/client/scope/provider.d.mts +2 -2
  127. package/dist/client/styles/base.css +1022 -0
  128. package/dist/client/styles/index.css +3 -589
  129. package/dist/client/utils/auto-expand-fields.mjs +4 -2
  130. package/dist/client/utils/keyboard-shortcuts.mjs +26 -0
  131. package/dist/client/utils/use-lazy-component.mjs +80 -0
  132. package/dist/client/views/auth/auth-layout.d.mts +18 -11
  133. package/dist/client/views/auth/auth-layout.mjs +291 -80
  134. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  135. package/dist/client/views/auth/forgot-password-form.mjs +2 -2
  136. package/dist/client/views/auth/login-form.d.mts +2 -2
  137. package/dist/client/views/auth/login-form.mjs +1 -1
  138. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  139. package/dist/client/views/auth/reset-password-form.mjs +2 -2
  140. package/dist/client/views/auth/setup-form.d.mts +2 -2
  141. package/dist/client/views/collection/auto-form-fields.mjs +11 -9
  142. package/dist/client/views/collection/bulk-action-toolbar.mjs +173 -138
  143. package/dist/client/views/collection/cells/complex-cells.mjs +22 -22
  144. package/dist/client/views/collection/cells/primitive-cells.mjs +1 -1
  145. package/dist/client/views/collection/cells/relation-cells.mjs +147 -129
  146. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +224 -278
  147. package/dist/client/views/collection/cells/shared/relation-chip.mjs +64 -36
  148. package/dist/client/views/collection/cells/upload-cells.mjs +199 -9
  149. package/dist/client/views/collection/columns/build-columns.mjs +29 -9
  150. package/dist/client/views/collection/columns/column-defaults.mjs +2 -2
  151. package/dist/client/views/collection/field-renderer.mjs +50 -89
  152. package/dist/client/views/collection/form-view.mjs +237 -227
  153. package/dist/client/views/collection/table-view.mjs +1162 -229
  154. package/dist/client/views/collection/view-skeletons.mjs +222 -79
  155. package/dist/client/views/common/global-search.mjs +29 -18
  156. package/dist/client/views/dashboard/dashboard-grid.mjs +678 -501
  157. package/dist/client/views/dashboard/dashboard-widget.mjs +6 -3
  158. package/dist/client/views/dashboard/widget-card.mjs +23 -14
  159. package/dist/client/views/globals/global-form-view.mjs +634 -589
  160. package/dist/client/views/layout/admin-layout-provider.mjs +67 -70
  161. package/dist/client/views/layout/admin-layout.d.mts +3 -6
  162. package/dist/client/views/layout/admin-layout.mjs +149 -172
  163. package/dist/client/views/layout/admin-router.mjs +747 -544
  164. package/dist/client/views/layout/admin-sidebar.d.mts +38 -1
  165. package/dist/client/views/layout/admin-sidebar.mjs +751 -591
  166. package/dist/client/views/layout/admin-theme.d.mts +10 -0
  167. package/dist/client/views/layout/admin-theme.mjs +84 -0
  168. package/dist/client/views/layout/admin-view-layout.mjs +161 -0
  169. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  170. package/dist/client/views/pages/accept-invite-page.mjs +49 -26
  171. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  172. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  173. package/dist/client/views/pages/forgot-password-page.mjs +2 -19
  174. package/dist/client/views/pages/invite-page.d.mts +2 -2
  175. package/dist/client/views/pages/invite-page.mjs +2 -19
  176. package/dist/client/views/pages/login-page.d.mts +3 -3
  177. package/dist/client/views/pages/login-page.mjs +4 -21
  178. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  179. package/dist/client/views/pages/reset-password-page.mjs +3 -20
  180. package/dist/client/views/pages/setup-page.d.mts +2 -2
  181. package/dist/client/views/pages/setup-page.mjs +3 -20
  182. package/dist/client.d.mts +6 -2
  183. package/dist/client.mjs +2 -1
  184. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  185. package/dist/index.d.mts +6 -2
  186. package/dist/index.mjs +2 -1
  187. package/dist/server/augmentation/dashboard.d.mts +67 -3
  188. package/dist/server/augmentation/form-layout.d.mts +21 -0
  189. package/dist/server/augmentation/index.d.mts +1 -1
  190. package/dist/server/codegen/admin-client-template.mjs +4 -0
  191. package/dist/server/fields/blocks.d.mts +1 -1
  192. package/dist/server/fields/blocks.mjs +12 -0
  193. package/dist/server/fields/rich-text.d.mts +1 -1
  194. package/dist/server/fields/rich-text.mjs +8 -0
  195. package/dist/server/i18n/index.mjs +17 -1
  196. package/dist/server/i18n/messages/cs.mjs +23 -0
  197. package/dist/server/i18n/messages/de.mjs +23 -0
  198. package/dist/server/i18n/messages/en.mjs +64 -1
  199. package/dist/server/i18n/messages/es.mjs +23 -0
  200. package/dist/server/i18n/messages/fr.mjs +23 -0
  201. package/dist/server/i18n/messages/pl.mjs +23 -0
  202. package/dist/server/i18n/messages/pt.mjs +23 -0
  203. package/dist/server/i18n/messages/sk.mjs +83 -1
  204. package/dist/server/modules/admin/block/introspection.mjs +4 -1
  205. package/dist/server/modules/admin/block/prefetch.mjs +12 -2
  206. package/dist/server/modules/admin/collections/account.d.mts +50 -50
  207. package/dist/server/modules/admin/collections/admin-locks.d.mts +54 -54
  208. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  209. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  210. package/dist/server/modules/admin/collections/apikey.d.mts +64 -64
  211. package/dist/server/modules/admin/collections/assets.d.mts +20 -20
  212. package/dist/server/modules/admin/collections/assets.mjs +0 -1
  213. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  214. package/dist/server/modules/admin/collections/user.d.mts +40 -28
  215. package/dist/server/modules/admin/collections/user.mjs +40 -9
  216. package/dist/server/modules/admin/collections/verification.d.mts +36 -36
  217. package/dist/server/modules/admin/dto/admin-config.dto.mjs +2 -0
  218. package/dist/server/modules/admin/factories.mjs +7 -18
  219. package/dist/server/modules/admin/index.d.mts +1 -1
  220. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  221. package/dist/server/modules/admin/routes/admin-config.mjs +34 -16
  222. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  223. package/dist/server/modules/admin/routes/execute-action.mjs +33 -0
  224. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  225. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  226. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  227. package/dist/server/modules/admin/routes/setup.d.mts +10 -10
  228. package/dist/server/modules/admin/routes/setup.mjs +7 -7
  229. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  230. package/dist/server/modules/admin/routes/translations.mjs +5 -1
  231. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  232. package/dist/server/modules/admin-preferences/collections/admin-preferences.mjs +1 -1
  233. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +25 -25
  234. package/dist/server/modules/audit/.generated/module.d.mts +7 -7
  235. package/dist/server/modules/audit/.generated/module.mjs +1 -1
  236. package/dist/server/modules/audit/collections/audit-log.d.mts +39 -39
  237. package/dist/server/modules/audit/collections/audit-log.mjs +1 -1
  238. package/dist/server/modules/audit/config/app.mjs +99 -42
  239. package/dist/server/modules/audit/jobs/audit-cleanup.mjs +1 -1
  240. package/dist/server/plugin.mjs +4 -2
  241. package/dist/server/proxy-factories.d.mts +4 -3
  242. package/dist/server/proxy-factories.mjs +34 -8
  243. package/dist/shared/types/saved-views.types.d.mts +2 -0
  244. package/package.json +6 -4
  245. package/dist/client/components/fields/rich-text-editor/link-popover.mjs +0 -85
  246. package/dist/client/components/ui/spinner.mjs +0 -52
  247. package/dist/client/components/ui/toolbar.mjs +0 -136
  248. package/dist/client/contexts/breadcrumb-context.mjs +0 -60
  249. package/dist/client/views/layout/admin-topbar.mjs +0 -236
@@ -1,7 +1,7 @@
1
1
  import { ServerActionDefinition, ServerActionResult } from "../../../augmentation/actions.mjs";
2
2
  import "../../../augmentation.mjs";
3
3
  import { App } from "./route-helpers.mjs";
4
- import * as questpie117 from "questpie";
4
+ import * as questpie69 from "questpie";
5
5
 
6
6
  //#region src/server/modules/admin/routes/execute-action.d.ts
7
7
 
@@ -56,37 +56,37 @@ declare function executeAction(app: App, request: ExecuteActionRequest, session?
56
56
  * });
57
57
  * ```
58
58
  */
59
- declare const executeActionFn: questpie117.JsonRouteDefinition<{
59
+ declare const executeActionFn: questpie69.JsonRouteDefinition<{
60
60
  collection: string;
61
61
  actionId: string;
62
62
  itemId?: string | undefined;
63
63
  itemIds?: string[] | undefined;
64
64
  data?: Record<string, unknown> | undefined;
65
65
  locale?: string | undefined;
66
- }, any, questpie117.JsonRouteParams>;
66
+ }, any, questpie69.JsonRouteParams>;
67
67
  /**
68
68
  * Get actions configuration for a collection.
69
69
  * Returns action definitions without handlers for client rendering.
70
70
  */
71
- declare const getActionsConfigFn: questpie117.JsonRouteDefinition<{
71
+ declare const getActionsConfigFn: questpie69.JsonRouteDefinition<{
72
72
  collection: string;
73
- }, any, questpie117.JsonRouteParams>;
73
+ }, any, questpie69.JsonRouteParams>;
74
74
  /**
75
75
  * QUESTPIE functions for action execution.
76
76
  * These are registered on the `adminModule`.
77
77
  */
78
78
  declare const actionFunctions: {
79
- executeAction: questpie117.JsonRouteDefinition<{
79
+ executeAction: questpie69.JsonRouteDefinition<{
80
80
  collection: string;
81
81
  actionId: string;
82
82
  itemId?: string | undefined;
83
83
  itemIds?: string[] | undefined;
84
84
  data?: Record<string, unknown> | undefined;
85
85
  locale?: string | undefined;
86
- }, any, questpie117.JsonRouteParams>;
87
- getActionsConfig: questpie117.JsonRouteDefinition<{
86
+ }, any, questpie69.JsonRouteParams>;
87
+ getActionsConfig: questpie69.JsonRouteDefinition<{
88
88
  collection: string;
89
- }, any, questpie117.JsonRouteParams>;
89
+ }, any, questpie69.JsonRouteParams>;
90
90
  };
91
91
  //#endregion
92
92
  export { ExecuteActionRequest, ExecuteActionResponse, actionFunctions, executeAction, executeActionFn, getActionsConfig, getActionsConfigFn };
@@ -43,6 +43,10 @@ function getActionsConfig(app, collectionSlug) {
43
43
  };
44
44
  const customWithoutHandlers = (actionsConfig.custom || []).map((action) => {
45
45
  const { handler, ...rest } = action;
46
+ if (rest.form?.fields) rest.form = {
47
+ ...rest.form,
48
+ fields: serializeActionFormFields(rest.form.fields)
49
+ };
46
50
  return rest;
47
51
  });
48
52
  return {
@@ -58,6 +62,35 @@ function getActionsConfig(app, collectionSlug) {
58
62
  custom: customWithoutHandlers
59
63
  };
60
64
  }
65
+ function serializeActionFormFields(fields) {
66
+ const result = {};
67
+ for (const [fieldName, field$1] of Object.entries(fields)) {
68
+ if (!field$1 || typeof field$1 !== "object") {
69
+ result[fieldName] = field$1;
70
+ continue;
71
+ }
72
+ if (typeof field$1.getMetadata === "function") {
73
+ const metadata = field$1.getMetadata();
74
+ const state = field$1._state ?? {};
75
+ const adminMeta = (metadata.meta && typeof metadata.meta === "object" ? metadata.meta : void 0) ?? (state.admin && typeof state.admin === "object" ? state.admin : void 0) ?? (state.extensions?.admin && typeof state.extensions.admin === "object" ? state.extensions.admin : void 0);
76
+ const options = {};
77
+ if (metadata.options) options.options = metadata.options;
78
+ if (metadata.multiple !== void 0) options.multiple = metadata.multiple;
79
+ if (adminMeta) Object.assign(options, adminMeta);
80
+ result[fieldName] = {
81
+ type: metadata.type ?? field$1.getType?.() ?? "text",
82
+ label: metadata.label,
83
+ description: metadata.description,
84
+ required: metadata.required ?? false,
85
+ default: state.defaultValue,
86
+ options
87
+ };
88
+ continue;
89
+ }
90
+ result[fieldName] = field$1;
91
+ }
92
+ return result;
93
+ }
61
94
  /**
62
95
  * Execute a collection action.
63
96
  * Handles both built-in actions and custom actions.
@@ -1,4 +1,4 @@
1
- import * as questpie402 from "questpie";
1
+ import * as questpie462 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/locales.d.ts
4
4
 
@@ -12,7 +12,7 @@ import * as questpie402 from "questpie";
12
12
  * Bundle of locale-related functions.
13
13
  */
14
14
  declare const localeFunctions: {
15
- readonly getContentLocales: questpie402.JsonRouteDefinition<Record<string, never> | undefined, any, questpie402.JsonRouteParams>;
15
+ readonly getContentLocales: questpie462.JsonRouteDefinition<Record<string, never> | undefined, any, questpie462.JsonRouteParams>;
16
16
  };
17
17
  //#endregion
18
18
  export { localeFunctions };
@@ -1,4 +1,4 @@
1
- import * as questpie133 from "questpie";
1
+ import * as questpie97 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/preview.d.ts
4
4
 
@@ -21,13 +21,13 @@ interface PreviewTokenPayload {
21
21
  * @returns Object with preview functions
22
22
  */
23
23
  declare function createPreviewFunctions(secret: string): {
24
- mintPreviewToken: questpie133.JsonRouteDefinition<{
24
+ mintPreviewToken: questpie97.JsonRouteDefinition<{
25
25
  path: string;
26
26
  ttlMs?: number | undefined;
27
- }, any, questpie133.JsonRouteParams>;
28
- verifyPreviewToken: questpie133.JsonRouteDefinition<{
27
+ }, any, questpie97.JsonRouteParams>;
28
+ verifyPreviewToken: questpie97.JsonRouteDefinition<{
29
29
  token: string;
30
- }, any, questpie133.JsonRouteParams>;
30
+ }, any, questpie97.JsonRouteParams>;
31
31
  };
32
32
  /**
33
33
  * Verify a preview token without RPC.
@@ -63,18 +63,18 @@ declare function createPreviewTokenVerifier(secret?: string): (token: string) =>
63
63
  * Used by the `adminModule` to register preview RPC functions.
64
64
  */
65
65
  declare const previewFunctions: {
66
- getPreviewUrl: questpie133.JsonRouteDefinition<{
66
+ getPreviewUrl: questpie97.JsonRouteDefinition<{
67
67
  collection: string;
68
68
  record: Record<string, unknown>;
69
69
  locale?: string | undefined;
70
- }, any, questpie133.JsonRouteParams>;
71
- mintPreviewToken: questpie133.JsonRouteDefinition<{
70
+ }, any, questpie97.JsonRouteParams>;
71
+ mintPreviewToken: questpie97.JsonRouteDefinition<{
72
72
  path: string;
73
73
  ttlMs?: number | undefined;
74
- }, any, questpie133.JsonRouteParams>;
75
- verifyPreviewToken: questpie133.JsonRouteDefinition<{
74
+ }, any, questpie97.JsonRouteParams>;
75
+ verifyPreviewToken: questpie97.JsonRouteDefinition<{
76
76
  token: string;
77
- }, any, questpie133.JsonRouteParams>;
77
+ }, any, questpie97.JsonRouteParams>;
78
78
  };
79
79
  //#endregion
80
80
  export { PreviewTokenPayload, createPreviewFunctions, createPreviewTokenVerifier, previewFunctions, verifyPreviewTokenDirect };
@@ -1,4 +1,4 @@
1
- import * as questpie143 from "questpie";
1
+ import * as questpie135 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/reactive.d.ts
4
4
 
@@ -13,7 +13,7 @@ import * as questpie143 from "questpie";
13
13
  * Batch reactive endpoint.
14
14
  * Executes multiple reactive handlers in a single request.
15
15
  */
16
- declare const batchReactive: questpie143.JsonRouteDefinition<{
16
+ declare const batchReactive: questpie135.JsonRouteDefinition<{
17
17
  collection: string;
18
18
  type: "collection" | "global";
19
19
  requests: {
@@ -26,12 +26,12 @@ declare const batchReactive: questpie143.JsonRouteDefinition<{
26
26
  }[];
27
27
  formData?: Record<string, unknown> | undefined;
28
28
  prevData?: Record<string, unknown> | null | undefined;
29
- }, any, questpie143.JsonRouteParams>;
29
+ }, any, questpie135.JsonRouteParams>;
30
30
  /**
31
31
  * Dynamic options endpoint.
32
32
  * Fetches options for select/relation fields with search and pagination.
33
33
  */
34
- declare const fieldOptions: questpie143.JsonRouteDefinition<{
34
+ declare const fieldOptions: questpie135.JsonRouteDefinition<{
35
35
  collection: string;
36
36
  type: "collection" | "global";
37
37
  field: string;
@@ -40,12 +40,12 @@ declare const fieldOptions: questpie143.JsonRouteDefinition<{
40
40
  page: number;
41
41
  limit: number;
42
42
  siblingData?: Record<string, unknown> | null | undefined;
43
- }, any, questpie143.JsonRouteParams>;
43
+ }, any, questpie135.JsonRouteParams>;
44
44
  /**
45
45
  * Reactive functions bundle.
46
46
  */
47
47
  declare const reactiveFunctions: {
48
- readonly batchReactive: questpie143.JsonRouteDefinition<{
48
+ readonly batchReactive: questpie135.JsonRouteDefinition<{
49
49
  collection: string;
50
50
  type: "collection" | "global";
51
51
  requests: {
@@ -58,8 +58,8 @@ declare const reactiveFunctions: {
58
58
  }[];
59
59
  formData?: Record<string, unknown> | undefined;
60
60
  prevData?: Record<string, unknown> | null | undefined;
61
- }, any, questpie143.JsonRouteParams>;
62
- readonly fieldOptions: questpie143.JsonRouteDefinition<{
61
+ }, any, questpie135.JsonRouteParams>;
62
+ readonly fieldOptions: questpie135.JsonRouteDefinition<{
63
63
  collection: string;
64
64
  type: "collection" | "global";
65
65
  field: string;
@@ -68,7 +68,7 @@ declare const reactiveFunctions: {
68
68
  page: number;
69
69
  limit: number;
70
70
  siblingData?: Record<string, unknown> | null | undefined;
71
- }, any, questpie143.JsonRouteParams>;
71
+ }, any, questpie135.JsonRouteParams>;
72
72
  };
73
73
  //#endregion
74
74
  export { batchReactive, fieldOptions, reactiveFunctions };
@@ -1,4 +1,4 @@
1
- import * as questpie125 from "questpie";
1
+ import * as questpie143 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/setup.d.ts
4
4
 
@@ -10,7 +10,7 @@ import * as questpie125 from "questpie";
10
10
  * need an existing admin to create the first invitation.
11
11
  */
12
12
  /**
13
- * Check if setup is required (no users exist in the system).
13
+ * Check if setup is required (no admin users exist in the system).
14
14
  *
15
15
  * @example
16
16
  * ```ts
@@ -20,12 +20,12 @@ import * as questpie125 from "questpie";
20
20
  * }
21
21
  * ```
22
22
  */
23
- declare const isSetupRequired: questpie125.JsonRouteDefinition<Record<string, never>, any, questpie125.JsonRouteParams>;
23
+ declare const isSetupRequired: questpie143.JsonRouteDefinition<Record<string, never>, any, questpie143.JsonRouteParams>;
24
24
  /**
25
25
  * Create the first admin user in the system.
26
- * This function only works when no users exist (setup mode).
26
+ * This function only works when no admin users exist (setup mode).
27
27
  *
28
- * Security: Once any user exists, this function will refuse to create more users.
28
+ * Security: Once any admin user exists, this function will refuse to create more users.
29
29
  * This prevents unauthorized admin creation after initial setup.
30
30
  *
31
31
  * @example
@@ -43,21 +43,21 @@ declare const isSetupRequired: questpie125.JsonRouteDefinition<Record<string, ne
43
43
  * }
44
44
  * ```
45
45
  */
46
- declare const createFirstAdmin: questpie125.JsonRouteDefinition<{
46
+ declare const createFirstAdmin: questpie143.JsonRouteDefinition<{
47
47
  email: string;
48
48
  password: string;
49
49
  name: string;
50
- }, any, questpie125.JsonRouteParams>;
50
+ }, any, questpie143.JsonRouteParams>;
51
51
  /**
52
52
  * Bundle of setup-related functions.
53
53
  */
54
54
  declare const setupFunctions: {
55
- readonly isSetupRequired: questpie125.JsonRouteDefinition<Record<string, never>, any, questpie125.JsonRouteParams>;
56
- readonly createFirstAdmin: questpie125.JsonRouteDefinition<{
55
+ readonly isSetupRequired: questpie143.JsonRouteDefinition<Record<string, never>, any, questpie143.JsonRouteParams>;
56
+ readonly createFirstAdmin: questpie143.JsonRouteDefinition<{
57
57
  email: string;
58
58
  password: string;
59
59
  name: string;
60
- }, any, questpie125.JsonRouteParams>;
60
+ }, any, questpie143.JsonRouteParams>;
61
61
  };
62
62
  //#endregion
63
63
  export { createFirstAdmin, isSetupRequired, setupFunctions };
@@ -1,7 +1,7 @@
1
1
  import { getApp } from "./route-helpers.mjs";
2
2
  import { z } from "zod";
3
3
  import { route } from "questpie";
4
- import { eq, sql as sql$1 } from "drizzle-orm";
4
+ import { eq, sql as sql$1 } from "questpie/drizzle";
5
5
 
6
6
  //#region src/server/modules/admin/routes/setup.ts
7
7
  /**
@@ -28,7 +28,7 @@ const createFirstAdminOutputSchema = z.object({
28
28
  error: z.string().optional()
29
29
  });
30
30
  /**
31
- * Check if setup is required (no users exist in the system).
31
+ * Check if setup is required (no admin users exist in the system).
32
32
  *
33
33
  * @example
34
34
  * ```ts
@@ -41,13 +41,13 @@ const createFirstAdminOutputSchema = z.object({
41
41
  const isSetupRequired = route().post().schema(isSetupRequiredSchema).outputSchema(isSetupRequiredOutputSchema).handler(async (ctx) => {
42
42
  const app = getApp(ctx);
43
43
  const userCollection = app.getCollectionConfig("user");
44
- return { required: (await app.db.select({ count: sql$1`count(*)::int` }).from(userCollection.table))[0].count === 0 };
44
+ return { required: (await app.db.select({ count: sql$1`count(*)::int` }).from(userCollection.table).where(eq(userCollection.table.role, "admin")))[0].count === 0 };
45
45
  });
46
46
  /**
47
47
  * Create the first admin user in the system.
48
- * This function only works when no users exist (setup mode).
48
+ * This function only works when no admin users exist (setup mode).
49
49
  *
50
- * Security: Once any user exists, this function will refuse to create more users.
50
+ * Security: Once any admin user exists, this function will refuse to create more users.
51
51
  * This prevents unauthorized admin creation after initial setup.
52
52
  *
53
53
  * @example
@@ -69,9 +69,9 @@ const createFirstAdmin = route().post().schema(createFirstAdminSchema).outputSch
69
69
  const app = getApp(ctx);
70
70
  const input = ctx.input;
71
71
  const userCollection = app.getCollectionConfig("user");
72
- if ((await app.db.select({ count: sql$1`count(*)::int` }).from(userCollection.table))[0].count > 0) return {
72
+ if ((await app.db.select({ count: sql$1`count(*)::int` }).from(userCollection.table).where(eq(userCollection.table.role, "admin")))[0].count > 0) return {
73
73
  success: false,
74
- error: "Setup already completed - users exist in the system"
74
+ error: "Setup already completed - admin users exist in the system"
75
75
  };
76
76
  try {
77
77
  const signUpResult = await app.auth.api.signUpEmail({ body: {
@@ -1,4 +1,4 @@
1
- import * as questpie430 from "questpie";
1
+ import * as questpie464 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/translations.d.ts
4
4
 
@@ -17,10 +17,10 @@ import * as questpie430 from "questpie";
17
17
  * Bundle of translation-related functions.
18
18
  */
19
19
  declare const translationFunctions: {
20
- readonly getAdminTranslations: questpie430.JsonRouteDefinition<{
20
+ readonly getAdminTranslations: questpie464.JsonRouteDefinition<{
21
21
  locale: string;
22
- }, any, questpie430.JsonRouteParams>;
23
- readonly getAdminLocales: questpie430.JsonRouteDefinition<Record<string, never> | undefined, any, questpie430.JsonRouteParams>;
22
+ }, any, questpie464.JsonRouteParams>;
23
+ readonly getAdminLocales: questpie464.JsonRouteDefinition<Record<string, never> | undefined, any, questpie464.JsonRouteParams>;
24
24
  };
25
25
  //#endregion
26
26
  export { translationFunctions };
@@ -29,7 +29,11 @@ function getAdminLocaleConfig(app) {
29
29
  const getAdminTranslationsSchema = z.object({ locale: z.string() });
30
30
  const messageValueSchema = z.union([z.string(), z.object({
31
31
  one: z.string(),
32
- other: z.string()
32
+ other: z.string(),
33
+ zero: z.string().optional(),
34
+ two: z.string().optional(),
35
+ few: z.string().optional(),
36
+ many: z.string().optional()
33
37
  })]);
34
38
  const getAdminTranslationsOutputSchema = z.object({
35
39
  locale: z.string(),
@@ -1,4 +1,4 @@
1
- import * as questpie69 from "questpie";
1
+ import * as questpie93 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/widget-data.d.ts
4
4
 
@@ -20,13 +20,13 @@ import * as questpie69 from "questpie";
20
20
  * const data = await client.routes.fetchWidgetData({ widgetId: "my-widget" });
21
21
  * ```
22
22
  */
23
- declare const fetchWidgetData: questpie69.JsonRouteDefinition<{
23
+ declare const fetchWidgetData: questpie93.JsonRouteDefinition<{
24
24
  widgetId: string;
25
- }, any, questpie69.JsonRouteParams>;
25
+ }, any, questpie93.JsonRouteParams>;
26
26
  declare const widgetDataFunctions: {
27
- readonly fetchWidgetData: questpie69.JsonRouteDefinition<{
27
+ readonly fetchWidgetData: questpie93.JsonRouteDefinition<{
28
28
  widgetId: string;
29
- }, any, questpie69.JsonRouteParams>;
29
+ }, any, questpie93.JsonRouteParams>;
30
30
  };
31
31
  //#endregion
32
32
  export { fetchWidgetData, widgetDataFunctions };
@@ -1,5 +1,5 @@
1
1
  import { collection } from "questpie";
2
- import { uniqueIndex } from "drizzle-orm/pg-core";
2
+ import { uniqueIndex } from "questpie/drizzle-pg-core";
3
3
 
4
4
  //#region src/server/modules/admin-preferences/collections/admin-preferences.ts
5
5
  /**
@@ -1,10 +1,10 @@
1
1
  import { FilterOperator, FilterRule, SortConfig, ViewConfiguration } from "../../../../shared/types/saved-views.types.mjs";
2
2
  import * as questpie_shared15 from "questpie/shared";
3
- import * as questpie89 from "questpie";
4
- import * as drizzle_orm_pg_core22 from "drizzle-orm/pg-core";
5
- import * as drizzle_orm5 from "drizzle-orm";
3
+ import * as questpie107 from "questpie";
6
4
  import * as questpie_src_server_modules_core_fields_email_js2 from "questpie/src/server/modules/core/fields/email.js";
7
5
  import * as questpie_src_server_modules_core_fields_json_js2 from "questpie/src/server/modules/core/fields/json.js";
6
+ import * as drizzle_orm_pg_core22 from "drizzle-orm/pg-core";
7
+ import * as drizzle_orm5 from "drizzle-orm";
8
8
 
9
9
  //#region src/server/modules/admin-preferences/collections/saved-views.d.ts
10
10
 
@@ -33,22 +33,22 @@ import * as questpie_src_server_modules_core_fields_json_js2 from "questpie/src/
33
33
  * });
34
34
  * ```
35
35
  */
36
- declare const savedViewsCollection: questpie89.CollectionBuilder<questpie_shared15.Override<questpie_shared15.Override<questpie89.EmptyCollectionState<"admin_saved_views", undefined, {
37
- readonly text: typeof questpie89.text;
38
- readonly textarea: typeof questpie89.textarea;
36
+ declare const savedViewsCollection: questpie107.CollectionBuilder<questpie_shared15.Override<questpie_shared15.Override<questpie107.EmptyCollectionState<"admin_saved_views", undefined, {
37
+ readonly text: typeof questpie107.text;
38
+ readonly textarea: typeof questpie107.textarea;
39
39
  readonly email: typeof questpie_src_server_modules_core_fields_email_js2.email;
40
- readonly url: typeof questpie89.url;
41
- readonly number: typeof questpie89.number;
42
- readonly boolean: typeof questpie89.boolean;
43
- readonly date: typeof questpie89.date;
44
- readonly datetime: typeof questpie89.datetime;
45
- readonly time: typeof questpie89.time;
46
- readonly select: typeof questpie89.select;
47
- readonly upload: typeof questpie89.upload;
48
- readonly relation: typeof questpie89.relation;
49
- readonly object: typeof questpie89.object;
40
+ readonly url: typeof questpie107.url;
41
+ readonly number: typeof questpie107.number;
42
+ readonly boolean: typeof questpie107.boolean;
43
+ readonly date: typeof questpie107.date;
44
+ readonly datetime: typeof questpie107.datetime;
45
+ readonly time: typeof questpie107.time;
46
+ readonly select: typeof questpie107.select;
47
+ readonly upload: typeof questpie107.upload;
48
+ readonly relation: typeof questpie107.relation;
49
+ readonly object: typeof questpie107.object;
50
50
  readonly json: typeof questpie_src_server_modules_core_fields_json_js2.json;
51
- readonly from: typeof questpie89.from;
51
+ readonly from: typeof questpie107.from;
52
52
  }>, {
53
53
  fields: {
54
54
  readonly userId: drizzle_orm5.NotNull<drizzle_orm_pg_core22.PgVarcharBuilder<[string, ...string[]]>>;
@@ -59,31 +59,31 @@ declare const savedViewsCollection: questpie89.CollectionBuilder<questpie_shared
59
59
  };
60
60
  localized: readonly string[];
61
61
  fieldDefinitions: {
62
- readonly userId: questpie89.FieldWithMethods<Omit<questpie89.TextFieldState, "notNull" | "column"> & {
62
+ readonly userId: questpie107.FieldWithMethods<Omit<questpie107.TextFieldState, "notNull" | "column"> & {
63
63
  notNull: true;
64
64
  column: drizzle_orm5.NotNull<drizzle_orm_pg_core22.PgVarcharBuilder<[string, ...string[]]>>;
65
65
  } & {
66
66
  label: questpie_shared15.I18nText;
67
- }, questpie89.TextFieldMethods>;
68
- readonly collectionName: questpie89.FieldWithMethods<Omit<questpie89.TextFieldState, "notNull" | "column"> & {
67
+ }, questpie107.TextFieldMethods>;
68
+ readonly collectionName: questpie107.FieldWithMethods<Omit<questpie107.TextFieldState, "notNull" | "column"> & {
69
69
  notNull: true;
70
70
  column: drizzle_orm5.NotNull<drizzle_orm_pg_core22.PgVarcharBuilder<[string, ...string[]]>>;
71
71
  } & {
72
72
  label: questpie_shared15.I18nText;
73
- }, questpie89.TextFieldMethods>;
74
- readonly name: questpie89.FieldWithMethods<Omit<questpie89.TextFieldState, "notNull" | "column"> & {
73
+ }, questpie107.TextFieldMethods>;
74
+ readonly name: questpie107.FieldWithMethods<Omit<questpie107.TextFieldState, "notNull" | "column"> & {
75
75
  notNull: true;
76
76
  column: drizzle_orm5.NotNull<drizzle_orm_pg_core22.PgVarcharBuilder<[string, ...string[]]>>;
77
77
  } & {
78
78
  label: questpie_shared15.I18nText;
79
- }, questpie89.TextFieldMethods>;
80
- readonly configuration: questpie89.Field<Omit<questpie89.JsonFieldState, "notNull" | "column"> & {
79
+ }, questpie107.TextFieldMethods>;
80
+ readonly configuration: questpie107.Field<Omit<questpie107.JsonFieldState, "notNull" | "column"> & {
81
81
  notNull: true;
82
82
  column: drizzle_orm5.NotNull<drizzle_orm_pg_core22.PgJsonbBuilder>;
83
83
  } & {
84
84
  label: questpie_shared15.I18nText;
85
85
  }>;
86
- readonly isDefault: questpie89.Field<Omit<questpie89.BooleanFieldState, "column" | "hasDefault"> & {
86
+ readonly isDefault: questpie107.Field<Omit<questpie107.BooleanFieldState, "column" | "hasDefault"> & {
87
87
  hasDefault: true;
88
88
  column: drizzle_orm5.HasDefault<drizzle_orm_pg_core22.PgBooleanBuilder>;
89
89
  } & {
@@ -1,10 +1,10 @@
1
1
  import { auditLogCollection } from "../collections/audit-log.mjs";
2
2
  import { auditCleanupJob } from "../jobs/audit-cleanup.mjs";
3
- import * as questpie16 from "questpie";
3
+ import * as questpie64 from "questpie";
4
4
 
5
5
  //#region src/server/modules/audit/.generated/module.d.ts
6
6
  interface AuditCollections {
7
- auditLogCollection: typeof auditLogCollection;
7
+ admin_audit_log: typeof auditLogCollection;
8
8
  }
9
9
  interface AuditJobs {
10
10
  auditCleanup: typeof auditCleanupJob;
@@ -43,13 +43,13 @@ declare const _module: {
43
43
  app: {
44
44
  hooks: {
45
45
  collections: {
46
- afterChange: (ctx: questpie16.GlobalCollectionHookContext) => Promise<void>;
47
- afterDelete: (ctx: questpie16.GlobalCollectionHookContext) => Promise<void>;
48
- afterTransition: (ctx: questpie16.GlobalCollectionTransitionHookContext) => Promise<void>;
46
+ afterChange: (ctx: questpie64.GlobalCollectionHookContext) => Promise<void>;
47
+ afterDelete: (ctx: questpie64.GlobalCollectionHookContext) => Promise<void>;
48
+ afterTransition: (ctx: questpie64.GlobalCollectionTransitionHookContext) => Promise<void>;
49
49
  };
50
50
  globals: {
51
- afterChange: (ctx: questpie16.GlobalGlobalHookContext) => Promise<void>;
52
- afterTransition: (ctx: questpie16.GlobalGlobalTransitionHookContext) => Promise<void>;
51
+ afterChange: (ctx: questpie64.GlobalGlobalHookContext) => Promise<void>;
52
+ afterTransition: (ctx: questpie64.GlobalGlobalTransitionHookContext) => Promise<void>;
53
53
  };
54
54
  };
55
55
  };
@@ -6,7 +6,7 @@ import app_default from "../config/app.mjs";
6
6
  //#region src/server/modules/audit/.generated/module.ts
7
7
  const _module = {
8
8
  name: "questpie-audit",
9
- collections: { auditLogCollection },
9
+ collections: { admin_audit_log: auditLogCollection },
10
10
  jobs: { auditCleanup: auditCleanupJob },
11
11
  globals: {},
12
12
  routes: {},