@questpie/admin 3.5.3 → 3.5.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 (149) hide show
  1. package/README.md +8 -0
  2. package/dist/client/blocks/block-renderer.d.mts +2 -2
  3. package/dist/client/builder/index.d.mts +1 -1
  4. package/dist/client/builder/types/collection-types.d.mts +80 -5
  5. package/dist/client/builder/types/common.d.mts +5 -0
  6. package/dist/client/builder/types/field-types.d.mts +41 -1
  7. package/dist/client/builder/view/view.d.mts +3 -2
  8. package/dist/client/components/admin-link.d.mts +2 -2
  9. package/dist/client/components/fields/boolean-field.mjs +2 -1
  10. package/dist/client/components/fields/date-field.mjs +2 -1
  11. package/dist/client/components/fields/datetime-field.mjs +2 -1
  12. package/dist/client/components/fields/email-field.mjs +2 -1
  13. package/dist/client/components/fields/field-utils.d.mts +11 -0
  14. package/dist/client/components/fields/field-utils.mjs +3 -1
  15. package/dist/client/components/fields/field-wrapper.mjs +3 -3
  16. package/dist/client/components/fields/number-field.mjs +2 -1
  17. package/dist/client/components/fields/object-field.mjs +2 -1
  18. package/dist/client/components/fields/relation/displays/types.mjs +3 -3
  19. package/dist/client/components/fields/rich-text-editor/extensions.mjs +2 -1
  20. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +6 -2
  21. package/dist/client/components/fields/rich-text-editor/image-upload.mjs +2 -1
  22. package/dist/client/components/fields/rich-text-editor/index.d.mts +3 -2
  23. package/dist/client/components/fields/rich-text-editor/index.mjs +4 -3
  24. package/dist/client/components/fields/select-field.mjs +2 -1
  25. package/dist/client/components/fields/text-field.mjs +2 -1
  26. package/dist/client/components/fields/textarea-field.mjs +2 -1
  27. package/dist/client/components/fields/time-field.mjs +2 -1
  28. package/dist/client/components/layout/field-layout-renderer.mjs +4 -4
  29. package/dist/client/components/media/media-grid.mjs +2 -1
  30. package/dist/client/components/primitives/asset-preview.mjs +4 -2
  31. package/dist/client/components/primitives/dropzone.d.mts +100 -0
  32. package/dist/client/components/primitives/field-select-control.mjs +2 -1
  33. package/dist/client/components/ui/button.d.mts +23 -0
  34. package/dist/client/components/ui/button.mjs +2 -2
  35. package/dist/client/components/ui/dropdown-menu.d.mts +49 -0
  36. package/dist/client/components/ui/dropdown-menu.mjs +22 -1
  37. package/dist/client/components/ui/popover.mjs +1 -1
  38. package/dist/client/components/ui/search-input.d.mts +56 -0
  39. package/dist/client/components/ui/select.mjs +2 -2
  40. package/dist/client/components/ui/sheet.d.mts +40 -0
  41. package/dist/client/components/ui/table.d.mts +49 -0
  42. package/dist/client/components/ui/table.mjs +15 -1
  43. package/dist/client/components/ui/tooltip.d.mts +21 -0
  44. package/dist/client/contexts/focus-context.d.mts +2 -2
  45. package/dist/client/hooks/use-admin-config.mjs +20 -1
  46. package/dist/client/hooks/use-autosave.mjs +91 -0
  47. package/dist/client/hooks/use-collection.mjs +65 -23
  48. package/dist/client/hooks/use-upload.d.mts +40 -0
  49. package/dist/client/hooks/use-upload.mjs +4 -2
  50. package/dist/client/i18n/hooks.d.mts +20 -0
  51. package/dist/client/lib/utils.d.mts +6 -0
  52. package/dist/client/preview/block-scope-context.d.mts +2 -2
  53. package/dist/client/preview/preview-banner.d.mts +2 -2
  54. package/dist/client/preview/preview-field.d.mts +4 -4
  55. package/dist/client/runtime/provider.mjs +22 -3
  56. package/dist/client/scope/picker.d.mts +2 -2
  57. package/dist/client/scope/provider.d.mts +2 -2
  58. package/dist/client/styles/base.css +22 -18
  59. package/dist/client/utils/asset-url.mjs +27 -0
  60. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  61. package/dist/client/views/auth/auth-layout.d.mts +3 -3
  62. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  63. package/dist/client/views/auth/login-form.d.mts +2 -2
  64. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  65. package/dist/client/views/auth/setup-form.d.mts +2 -2
  66. package/dist/client/views/collection/auto-form-fields.mjs +4 -4
  67. package/dist/client/views/collection/cells/shared/asset-thumbnail.d.mts +7 -0
  68. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +3 -2
  69. package/dist/client/views/collection/cells/shared/cell-helpers.mjs +3 -2
  70. package/dist/client/views/collection/cells/upload-cells.mjs +2 -1
  71. package/dist/client/views/collection/document-view.d.mts +30 -0
  72. package/dist/client/views/collection/document-view.mjs +377 -0
  73. package/dist/client/views/collection/field-context.mjs +3 -2
  74. package/dist/client/views/collection/field-renderer.mjs +2 -2
  75. package/dist/client/views/collection/form-view.mjs +14 -80
  76. package/dist/client/views/collection/list-view.mjs +19 -15
  77. package/dist/client/views/collection/table-view.mjs +1 -1
  78. package/dist/client/views/layout/admin-layout-provider.mjs +4 -3
  79. package/dist/client/views/layout/admin-layout.mjs +107 -20
  80. package/dist/client/views/layout/admin-router.mjs +19 -3
  81. package/dist/client/views/layout/admin-sidebar.mjs +50 -6
  82. package/dist/client/views/layout/admin-view-layout.d.mts +36 -0
  83. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  84. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  85. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  86. package/dist/client/views/pages/invite-page.d.mts +2 -2
  87. package/dist/client/views/pages/login-page.d.mts +2 -2
  88. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  89. package/dist/client/views/pages/setup-page.d.mts +2 -2
  90. package/dist/client.d.mts +17 -2
  91. package/dist/client.mjs +16 -1
  92. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  93. package/dist/factories.d.mts +4 -2
  94. package/dist/factories.mjs +2 -2
  95. package/dist/index.d.mts +17 -3
  96. package/dist/index.mjs +16 -1
  97. package/dist/server/adapters/index.d.mts +2 -0
  98. package/dist/server/adapters/nextjs.d.mts +1 -0
  99. package/dist/server/augmentation/actions.d.mts +5 -0
  100. package/dist/server/augmentation/form-layout.d.mts +5 -0
  101. package/dist/server/augmentation/views.d.mts +4 -1
  102. package/dist/server/auth-helpers.d.mts +1 -0
  103. package/dist/server/fields/blocks.mjs +4 -1
  104. package/dist/server/fields/reactive-runtime.mjs +3 -0
  105. package/dist/server/modules/admin/.generated/module.d.mts +1 -1
  106. package/dist/server/modules/admin/auth-helpers.mjs +7 -1
  107. package/dist/server/modules/admin/block/introspection.mjs +28 -4
  108. package/dist/server/modules/admin/block/prefetch.d.mts +11 -0
  109. package/dist/server/modules/admin/block/prefetch.mjs +108 -27
  110. package/dist/server/modules/admin/client/.generated/module.d.mts +68 -67
  111. package/dist/server/modules/admin/client/.generated/module.mjs +2 -0
  112. package/dist/server/modules/admin/client/views/collection-document.d.mts +6 -0
  113. package/dist/server/modules/admin/client/views/collection-document.mjs +10 -0
  114. package/dist/server/modules/admin/collections/account.d.mts +53 -53
  115. package/dist/server/modules/admin/collections/admin-locks.d.mts +57 -57
  116. package/dist/server/modules/admin/collections/admin-preferences.d.mts +22 -22
  117. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +50 -50
  118. package/dist/server/modules/admin/collections/apikey.d.mts +79 -71
  119. package/dist/server/modules/admin/collections/assets.d.mts +42 -42
  120. package/dist/server/modules/admin/collections/session.d.mts +45 -45
  121. package/dist/server/modules/admin/collections/user.d.mts +66 -66
  122. package/dist/server/modules/admin/collections/verification.d.mts +39 -39
  123. package/dist/server/modules/admin/dto/admin-config.dto.mjs +34 -4
  124. package/dist/server/modules/admin/factories.mjs +4 -34
  125. package/dist/server/modules/admin/index.d.mts +1 -1
  126. package/dist/server/modules/admin/routes/admin-config.d.mts +4 -2
  127. package/dist/server/modules/admin/routes/admin-config.mjs +18 -2
  128. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  129. package/dist/server/modules/admin/routes/execute-action.mjs +10 -4
  130. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  131. package/dist/server/modules/admin/routes/locales.mjs +1 -1
  132. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  133. package/dist/server/modules/admin/routes/preview.mjs +6 -5
  134. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  135. package/dist/server/modules/admin/routes/reactive.mjs +2 -2
  136. package/dist/server/modules/admin/routes/route-helpers.mjs +1 -1
  137. package/dist/server/modules/admin/routes/setup.d.mts +7 -7
  138. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  139. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  140. package/dist/server/modules/admin/routes/widget-data.mjs +1 -1
  141. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +41 -41
  142. package/dist/server/modules/audit/.generated/module.d.mts +6 -6
  143. package/dist/server/modules/audit/collections/audit-log.d.mts +78 -78
  144. package/dist/server/modules/audit/jobs/audit-cleanup.d.mts +2 -2
  145. package/dist/server/plugin.mjs +8 -3
  146. package/dist/server/proxy-factories.d.mts +8 -1
  147. package/dist/server/proxy-factories.mjs +33 -1
  148. package/dist/server.d.mts +2 -0
  149. package/package.json +4 -4
@@ -1,4 +1,77 @@
1
+ import { runWithContext, tryGetContext } from "questpie";
2
+
1
3
  //#region src/server/modules/admin/block/prefetch.ts
4
+ /**
5
+ * Server CRUD Block Prefetch Utility
6
+ *
7
+ * Handles data fetching for blocks during the afterRead hook.
8
+ * The fetched data is attached to `_data[blockId]` in the response.
9
+ *
10
+ * Two mechanisms populate `_data`:
11
+ *
12
+ * 1. **Declared field expansion** (`.prefetch({ with: [...] })`): Explicitly
13
+ * declared relation/upload fields are batch-fetched and expanded to full records.
14
+ * Only the fields listed in `with` are expanded — nothing is implicit.
15
+ *
16
+ * 2. **Custom prefetch function** (`.prefetch(fn)`): For computed data that can't
17
+ * be auto-expanded, define a prefetch function that returns arbitrary data.
18
+ *
19
+ * 3. **Expand + loader** (`.prefetch({ with: [...], loader })`): Expand fields
20
+ * first, then pass the expanded data to a loader for additional processing.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * // Shape 1: Pure function
25
+ * block("featuredPosts").prefetch(async ({ values, ctx }) => {
26
+ * return { posts: await fetchPosts(values.count) };
27
+ * })
28
+ *
29
+ * // Shape 2: Expand specific fields
30
+ * block("hero").prefetch({ with: ['backgroundImage'] })
31
+ *
32
+ * // Shape 3: Expand + custom loader
33
+ * block("hero").prefetch({
34
+ * with: ['backgroundImage'],
35
+ * loader: async ({ expanded, ctx }) => ({
36
+ * analytics: await getStats(),
37
+ * }),
38
+ * })
39
+ * ```
40
+ */
41
+ function resolvePrefetchContext(ctx) {
42
+ const stored = tryGetContext();
43
+ const app = ctx.app ?? stored?.app;
44
+ return {
45
+ ...ctx,
46
+ app,
47
+ db: ctx.db ?? stored?.db,
48
+ session: ctx.session === null ? null : ctx.session ?? stored?.session,
49
+ locale: ctx.locale ?? stored?.locale,
50
+ accessMode: ctx.accessMode ?? stored?.accessMode,
51
+ stage: ctx.stage ?? stored?.stage,
52
+ collections: ctx.collections ?? app?.collections,
53
+ globals: ctx.globals ?? app?.globals
54
+ };
55
+ }
56
+ function toRuntimeContext(ctx) {
57
+ return {
58
+ app: ctx.app,
59
+ db: ctx.db,
60
+ session: ctx.session,
61
+ locale: ctx.locale,
62
+ accessMode: ctx.accessMode,
63
+ stage: ctx.stage
64
+ };
65
+ }
66
+ function toCrudContext(ctx) {
67
+ return {
68
+ db: ctx.db,
69
+ session: ctx.session,
70
+ locale: ctx.locale,
71
+ accessMode: ctx.accessMode,
72
+ stage: ctx.stage
73
+ };
74
+ }
2
75
  function normalizeBlockDefinitions(blockDefinitions) {
3
76
  const normalized = {};
4
77
  for (const [key, blockDef] of Object.entries(blockDefinitions)) {
@@ -62,23 +135,23 @@ async function expandDeclaredFields(allNodes, values, blockDefinitions, ctx) {
62
135
  if (expansionsByCollection.size === 0) return {};
63
136
  const fetchedByGroup = /* @__PURE__ */ new Map();
64
137
  const fetchPromises = [...expansionsByCollection.entries()].map(async ([groupKey, { ids, nestedWith }]) => {
65
- const collection = groupKey.includes(":") ? groupKey.slice(0, groupKey.indexOf(":")) : groupKey;
138
+ const collection$1 = groupKey.includes(":") ? groupKey.slice(0, groupKey.indexOf(":")) : groupKey;
66
139
  try {
67
- const collectionApi = ctx.app?.collections?.[collection];
140
+ const collectionApi = ctx.collections?.[collection$1] ?? ctx.app?.collections?.[collection$1];
68
141
  if (!collectionApi?.find) {
69
- console.warn(`[prefetch] Collection "${collection}" not found on app.collections, skipping`);
142
+ console.warn(`[prefetch] Collection "${collection$1}" not found on app.collections, skipping`);
70
143
  return;
71
144
  }
72
145
  const result = await collectionApi.find({
73
146
  where: { id: { in: [...ids] } },
74
147
  limit: ids.size,
75
148
  ...nestedWith ? { with: nestedWith } : {}
76
- });
149
+ }, toCrudContext(ctx));
77
150
  const recordMap = /* @__PURE__ */ new Map();
78
151
  for (const doc of result?.docs || []) if (doc && typeof doc === "object" && "id" in doc) recordMap.set(doc.id, doc);
79
152
  fetchedByGroup.set(groupKey, recordMap);
80
153
  } catch (error) {
81
- console.error(`[prefetch] Failed to fetch from "${collection}":`, error);
154
+ console.error(`[prefetch] Failed to fetch from "${collection$1}":`, error);
82
155
  }
83
156
  });
84
157
  await Promise.all(fetchPromises);
@@ -115,27 +188,30 @@ async function expandDeclaredFields(allNodes, values, blockDefinitions, ctx) {
115
188
  */
116
189
  async function processBlocksDocument(blocks, blockDefinitions, ctx) {
117
190
  if (!blocks || !blocks._tree || !blocks._values) return blocks;
118
- const allNodes = [];
119
- const collectNodes = (nodes) => {
120
- for (const node of nodes) {
121
- allNodes.push(node);
122
- if (node.children.length > 0) collectNodes(node.children);
123
- }
124
- };
125
- collectNodes(blocks._tree);
126
- const normalizedBlockDefinitions = normalizeBlockDefinitions(blockDefinitions);
127
- const expandedData = await expandDeclaredFields(allNodes, blocks._values, normalizedBlockDefinitions, ctx);
128
- const prefetchedData = await executePrefetchFunctions(allNodes, blocks._values, normalizedBlockDefinitions, ctx, expandedData);
129
- const mergedData = {};
130
- const allBlockIds = new Set([...Object.keys(expandedData), ...Object.keys(prefetchedData)]);
131
- for (const blockId of allBlockIds) mergedData[blockId] = {
132
- ...expandedData[blockId] || {},
133
- ...prefetchedData[blockId] || {}
134
- };
135
- return {
136
- ...blocks,
137
- _data: mergedData
138
- };
191
+ const resolvedCtx = resolvePrefetchContext(ctx);
192
+ return runWithContext(toRuntimeContext(resolvedCtx), async () => {
193
+ const allNodes = [];
194
+ const collectNodes = (nodes) => {
195
+ for (const node of nodes) {
196
+ allNodes.push(node);
197
+ if (node.children.length > 0) collectNodes(node.children);
198
+ }
199
+ };
200
+ collectNodes(blocks._tree);
201
+ const normalizedBlockDefinitions = normalizeBlockDefinitions(blockDefinitions);
202
+ const expandedData = await expandDeclaredFields(allNodes, blocks._values, normalizedBlockDefinitions, resolvedCtx);
203
+ const prefetchedData = await executePrefetchFunctions(allNodes, blocks._values, normalizedBlockDefinitions, resolvedCtx, expandedData);
204
+ const mergedData = {};
205
+ const allBlockIds = new Set([...Object.keys(expandedData), ...Object.keys(prefetchedData)]);
206
+ for (const blockId of allBlockIds) mergedData[blockId] = {
207
+ ...expandedData[blockId] || {},
208
+ ...prefetchedData[blockId] || {}
209
+ };
210
+ return {
211
+ ...blocks,
212
+ _data: mergedData
213
+ };
214
+ });
139
215
  }
140
216
  /**
141
217
  * Execute prefetch functions and loaders for blocks.
@@ -234,7 +310,12 @@ function createBlocksPrefetchHook() {
234
310
  for (const [key, value] of Object.entries(ctx.data)) if (isBlocksDocument(value)) ctx.data[key] = await processBlocksDocument(value, blocks, {
235
311
  app: ctx.app,
236
312
  db: ctx.db,
237
- locale: ctx.locale
313
+ session: ctx.session,
314
+ locale: ctx.locale,
315
+ accessMode: ctx.accessMode,
316
+ stage: ctx.stage,
317
+ collections: ctx.collections ?? ctx.app?.collections,
318
+ globals: ctx.globals ?? ctx.app?.globals
238
319
  });
239
320
  };
240
321
  }
@@ -1,84 +1,85 @@
1
- import { _default } from "../views/collection-form.mjs";
2
- import { _default as _default$1 } from "../views/collection-table.mjs";
3
- import { _default as _default$2 } from "../views/global-form.mjs";
4
- import { _default as _default$3 } from "../views/list-view.mjs";
1
+ import { _default } from "../views/collection-document.mjs";
2
+ import { _default as _default$1 } from "../views/collection-form.mjs";
3
+ import { _default as _default$2 } from "../views/collection-table.mjs";
4
+ import { _default as _default$3 } from "../views/global-form.mjs";
5
+ import { _default as _default$4 } from "../views/list-view.mjs";
5
6
  import { Badge, IconifyIcon } from "../../../../../client/components/component-renderer.mjs";
6
7
  import "../components/badge.mjs";
7
8
  import "../components/icon.mjs";
8
- import { _default as _default$4 } from "../fields/array.mjs";
9
- import { _default as _default$5 } from "../fields/assetPreview.mjs";
10
- import { _default as _default$6 } from "../fields/blocks.mjs";
11
- import { _default as _default$7 } from "../fields/boolean.mjs";
12
- import { _default as _default$8 } from "../fields/date.mjs";
13
- import { _default as _default$9 } from "../fields/datetime.mjs";
14
- import { _default as _default$10 } from "../fields/email.mjs";
15
- import { _default as _default$11 } from "../fields/json.mjs";
16
- import { _default as _default$12 } from "../fields/number.mjs";
17
- import { _default as _default$13 } from "../fields/object.mjs";
18
- import { _default as _default$14 } from "../fields/relation.mjs";
19
- import { _default as _default$15 } from "../fields/richText.mjs";
20
- import { _default as _default$16 } from "../fields/select.mjs";
21
- import { _default as _default$17 } from "../fields/text.mjs";
22
- import { _default as _default$18 } from "../fields/textarea.mjs";
23
- import { _default as _default$19 } from "../fields/time.mjs";
24
- import { _default as _default$20 } from "../fields/upload.mjs";
25
- import { _default as _default$21 } from "../fields/url.mjs";
26
- import { _default as _default$22 } from "../pages/dashboard.mjs";
27
- import { _default as _default$23 } from "../pages/forgotPassword.mjs";
28
- import { _default as _default$24 } from "../pages/login.mjs";
29
- import { _default as _default$25 } from "../pages/resetPassword.mjs";
30
- import { _default as _default$26 } from "../pages/setup.mjs";
31
- import { _default as _default$27 } from "../widgets/chart.mjs";
32
- import { _default as _default$28 } from "../widgets/progress.mjs";
33
- import { _default as _default$29 } from "../widgets/quickActions.mjs";
34
- import { _default as _default$30 } from "../widgets/recentItems.mjs";
35
- import { _default as _default$31 } from "../widgets/stats.mjs";
36
- import { _default as _default$32 } from "../widgets/table.mjs";
37
- import { _default as _default$33 } from "../widgets/timeline.mjs";
38
- import { _default as _default$34 } from "../widgets/value.mjs";
9
+ import { _default as _default$5 } from "../fields/array.mjs";
10
+ import { _default as _default$6 } from "../fields/assetPreview.mjs";
11
+ import { _default as _default$7 } from "../fields/blocks.mjs";
12
+ import { _default as _default$8 } from "../fields/boolean.mjs";
13
+ import { _default as _default$9 } from "../fields/date.mjs";
14
+ import { _default as _default$10 } from "../fields/datetime.mjs";
15
+ import { _default as _default$11 } from "../fields/email.mjs";
16
+ import { _default as _default$12 } from "../fields/json.mjs";
17
+ import { _default as _default$13 } from "../fields/number.mjs";
18
+ import { _default as _default$14 } from "../fields/object.mjs";
19
+ import { _default as _default$15 } from "../fields/relation.mjs";
20
+ import { _default as _default$16 } from "../fields/richText.mjs";
21
+ import { _default as _default$17 } from "../fields/select.mjs";
22
+ import { _default as _default$18 } from "../fields/text.mjs";
23
+ import { _default as _default$19 } from "../fields/textarea.mjs";
24
+ import { _default as _default$20 } from "../fields/time.mjs";
25
+ import { _default as _default$21 } from "../fields/upload.mjs";
26
+ import { _default as _default$22 } from "../fields/url.mjs";
27
+ import { _default as _default$23 } from "../pages/dashboard.mjs";
28
+ import { _default as _default$24 } from "../pages/forgotPassword.mjs";
29
+ import { _default as _default$25 } from "../pages/login.mjs";
30
+ import { _default as _default$26 } from "../pages/resetPassword.mjs";
31
+ import { _default as _default$27 } from "../pages/setup.mjs";
32
+ import { _default as _default$28 } from "../widgets/chart.mjs";
33
+ import { _default as _default$29 } from "../widgets/progress.mjs";
34
+ import { _default as _default$30 } from "../widgets/quickActions.mjs";
35
+ import { _default as _default$31 } from "../widgets/recentItems.mjs";
36
+ import { _default as _default$32 } from "../widgets/stats.mjs";
37
+ import { _default as _default$33 } from "../widgets/table.mjs";
38
+ import { _default as _default$34 } from "../widgets/timeline.mjs";
39
+ import { _default as _default$35 } from "../widgets/value.mjs";
39
40
 
40
41
  //#region src/server/modules/admin/client/.generated/module.d.ts
41
- type AdminViews = { [K in typeof _default.name]: typeof _default } & { [K in typeof _default$1.name]: typeof _default$1 } & { [K in typeof _default$2.name]: typeof _default$2 } & { [K in typeof _default$3.name]: typeof _default$3 };
42
+ type AdminViews = { [K in typeof _default.name]: typeof _default } & { [K in typeof _default$1.name]: typeof _default$1 } & { [K in typeof _default$2.name]: typeof _default$2 } & { [K in typeof _default$3.name]: typeof _default$3 } & { [K in typeof _default$4.name]: typeof _default$4 };
42
43
  interface AdminComponents {
43
44
  badge: typeof Badge;
44
45
  icon: typeof IconifyIcon;
45
46
  }
46
47
  interface AdminFields {
47
- array: typeof _default$4;
48
- assetPreview: typeof _default$5;
49
- blocks: typeof _default$6;
50
- boolean: typeof _default$7;
51
- date: typeof _default$8;
52
- datetime: typeof _default$9;
53
- email: typeof _default$10;
54
- json: typeof _default$11;
55
- number: typeof _default$12;
56
- object: typeof _default$13;
57
- relation: typeof _default$14;
58
- richText: typeof _default$15;
59
- select: typeof _default$16;
60
- text: typeof _default$17;
61
- textarea: typeof _default$18;
62
- time: typeof _default$19;
63
- upload: typeof _default$20;
64
- url: typeof _default$21;
48
+ array: typeof _default$5;
49
+ assetPreview: typeof _default$6;
50
+ blocks: typeof _default$7;
51
+ boolean: typeof _default$8;
52
+ date: typeof _default$9;
53
+ datetime: typeof _default$10;
54
+ email: typeof _default$11;
55
+ json: typeof _default$12;
56
+ number: typeof _default$13;
57
+ object: typeof _default$14;
58
+ relation: typeof _default$15;
59
+ richText: typeof _default$16;
60
+ select: typeof _default$17;
61
+ text: typeof _default$18;
62
+ textarea: typeof _default$19;
63
+ time: typeof _default$20;
64
+ upload: typeof _default$21;
65
+ url: typeof _default$22;
65
66
  }
66
67
  interface AdminPages {
67
- dashboard: typeof _default$22;
68
- forgotPassword: typeof _default$23;
69
- login: typeof _default$24;
70
- resetPassword: typeof _default$25;
71
- setup: typeof _default$26;
68
+ dashboard: typeof _default$23;
69
+ forgotPassword: typeof _default$24;
70
+ login: typeof _default$25;
71
+ resetPassword: typeof _default$26;
72
+ setup: typeof _default$27;
72
73
  }
73
74
  interface AdminWidgets {
74
- chart: typeof _default$27;
75
- progress: typeof _default$28;
76
- quickActions: typeof _default$29;
77
- recentItems: typeof _default$30;
78
- stats: typeof _default$31;
79
- table: typeof _default$32;
80
- timeline: typeof _default$33;
81
- value: typeof _default$34;
75
+ chart: typeof _default$28;
76
+ progress: typeof _default$29;
77
+ quickActions: typeof _default$30;
78
+ recentItems: typeof _default$31;
79
+ stats: typeof _default$32;
80
+ table: typeof _default$33;
81
+ timeline: typeof _default$34;
82
+ value: typeof _default$35;
82
83
  }
83
84
  declare const _module: {
84
85
  name: "questpie-admin";
@@ -1,3 +1,4 @@
1
+ import collection_document_default from "../views/collection-document.mjs";
1
2
  import collection_form_default from "../views/collection-form.mjs";
2
3
  import collection_table_default from "../views/collection-table.mjs";
3
4
  import global_form_default from "../views/global-form.mjs";
@@ -39,6 +40,7 @@ import value_default from "../widgets/value.mjs";
39
40
  const _module = {
40
41
  name: "questpie-admin",
41
42
  views: {
43
+ [collection_document_default.name]: collection_document_default,
42
44
  [collection_form_default.name]: collection_form_default,
43
45
  [collection_table_default.name]: collection_table_default,
44
46
  [global_form_default.name]: global_form_default,
@@ -0,0 +1,6 @@
1
+ import { ViewDefinition } from "../../../../../client/builder/view/view.mjs";
2
+
3
+ //#region src/server/modules/admin/client/views/collection-document.d.ts
4
+ declare const _default: ViewDefinition<"collection-document", "document">;
5
+ //#endregion
6
+ export { _default };
@@ -0,0 +1,10 @@
1
+ import { view } from "../../../../../client/builder/view/view.mjs";
2
+
3
+ //#region src/server/modules/admin/client/views/collection-document.ts
4
+ var collection_document_default = view("collection-document", {
5
+ kind: "document",
6
+ component: () => import("../../../../../client/views/collection/document-view.mjs")
7
+ });
8
+
9
+ //#endregion
10
+ export { collection_document_default as default };
@@ -1,72 +1,72 @@
1
- import * as questpie_shared30 from "questpie/shared";
2
- import * as questpie187 from "questpie";
3
- import * as questpie_src_server_modules_core_fields_email_js4 from "questpie/src/server/modules/core/fields/email.js";
4
- import * as questpie_src_server_modules_core_fields_json_js4 from "questpie/src/server/modules/core/fields/json.js";
5
- import * as drizzle_orm_pg_core44 from "drizzle-orm/pg-core";
6
- import * as drizzle_orm27 from "drizzle-orm";
7
- import * as questpie_src_server_collection_builder_types_js3 from "questpie/src/server/collection/builder/types.js";
1
+ import * as questpie_shared23 from "questpie/shared";
2
+ import * as questpie151 from "questpie";
3
+ import * as questpie_src_server_modules_core_fields_email_js3 from "questpie/src/server/modules/core/fields/email.js";
4
+ import * as questpie_src_server_modules_core_fields_json_js3 from "questpie/src/server/modules/core/fields/json.js";
5
+ import * as drizzle_orm_pg_core32 from "drizzle-orm/pg-core";
6
+ import * as drizzle_orm15 from "drizzle-orm";
7
+ import * as questpie_src_server_collection_builder_types_js1 from "questpie/src/server/collection/builder/types.js";
8
8
 
9
9
  //#region src/server/modules/admin/collections/account.d.ts
10
- declare const _default: questpie187.CollectionBuilder<questpie_shared30.Override<questpie187.EmptyCollectionState<"account", undefined, {
11
- readonly text: typeof questpie187.text;
12
- readonly textarea: typeof questpie187.textarea;
13
- readonly email: typeof questpie_src_server_modules_core_fields_email_js4.email;
14
- readonly url: typeof questpie187.url;
15
- readonly number: typeof questpie187.number;
16
- readonly boolean: typeof questpie187.boolean;
17
- readonly date: typeof questpie187.date;
18
- readonly datetime: typeof questpie187.datetime;
19
- readonly time: typeof questpie187.time;
20
- readonly select: typeof questpie187.select;
21
- readonly upload: typeof questpie187.upload;
22
- readonly relation: typeof questpie187.relation;
23
- readonly object: typeof questpie187.object;
24
- readonly json: typeof questpie_src_server_modules_core_fields_json_js4.json;
25
- readonly from: typeof questpie187.from;
10
+ declare const _default: questpie151.CollectionBuilder<questpie_shared23.Override<questpie151.EmptyCollectionState<"account", undefined, {
11
+ readonly text: typeof questpie151.text;
12
+ readonly textarea: typeof questpie151.textarea;
13
+ readonly email: typeof questpie_src_server_modules_core_fields_email_js3.email;
14
+ readonly url: typeof questpie151.url;
15
+ readonly number: typeof questpie151.number;
16
+ readonly boolean: typeof questpie151.boolean;
17
+ readonly date: typeof questpie151.date;
18
+ readonly datetime: typeof questpie151.datetime;
19
+ readonly time: typeof questpie151.time;
20
+ readonly select: typeof questpie151.select;
21
+ readonly upload: typeof questpie151.upload;
22
+ readonly relation: typeof questpie151.relation;
23
+ readonly object: typeof questpie151.object;
24
+ readonly json: typeof questpie_src_server_modules_core_fields_json_js3.json;
25
+ readonly from: typeof questpie151.from;
26
26
  }>, {
27
27
  name: "account";
28
28
  fields: Record<string, any> & {
29
- readonly userId: drizzle_orm27.NotNull<drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>>;
30
- readonly accountId: drizzle_orm27.NotNull<drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>>;
31
- readonly providerId: drizzle_orm27.NotNull<drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>>;
32
- readonly accessToken: drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>;
33
- readonly refreshToken: drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>;
34
- readonly accessTokenExpiresAt: drizzle_orm_pg_core44.PgTimestampBuilder;
35
- readonly refreshTokenExpiresAt: drizzle_orm_pg_core44.PgTimestampBuilder;
36
- readonly scope: drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>;
37
- readonly idToken: drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>;
38
- readonly password: drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>;
29
+ readonly userId: drizzle_orm15.NotNull<drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>>;
30
+ readonly accountId: drizzle_orm15.NotNull<drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>>;
31
+ readonly providerId: drizzle_orm15.NotNull<drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>>;
32
+ readonly accessToken: drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>;
33
+ readonly refreshToken: drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>;
34
+ readonly accessTokenExpiresAt: drizzle_orm_pg_core32.PgTimestampBuilder;
35
+ readonly refreshTokenExpiresAt: drizzle_orm_pg_core32.PgTimestampBuilder;
36
+ readonly scope: drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>;
37
+ readonly idToken: drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>;
38
+ readonly password: drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>;
39
39
  };
40
40
  virtuals: undefined;
41
- relations: Record<string, questpie187.RelationConfig>;
41
+ relations: Record<string, questpie151.RelationConfig>;
42
42
  indexes: Record<string, any>;
43
43
  title: "providerId";
44
- options: questpie187.CollectionOptions & {
44
+ options: questpie151.CollectionOptions & {
45
45
  timestamps: true;
46
46
  };
47
- hooks: questpie_src_server_collection_builder_types_js3.CollectionHooksStorage;
48
- access: questpie_src_server_collection_builder_types_js3.CollectionAccessStorage;
47
+ hooks: questpie_src_server_collection_builder_types_js1.CollectionHooksStorage;
48
+ access: questpie_src_server_collection_builder_types_js1.CollectionAccessStorage;
49
49
  searchable: undefined;
50
50
  fieldDefinitions: {
51
- readonly userId: questpie187.FieldWithMethods<Omit<questpie187.TextFieldState, "notNull" | "column"> & {
51
+ readonly userId: questpie151.FieldWithMethods<Omit<questpie151.TextFieldState, "notNull" | "column"> & {
52
52
  notNull: true;
53
- column: drizzle_orm27.NotNull<drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>>;
54
- }, questpie187.TextFieldMethods>;
55
- readonly accountId: questpie187.FieldWithMethods<Omit<questpie187.TextFieldState, "notNull" | "column"> & {
53
+ column: drizzle_orm15.NotNull<drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>>;
54
+ }, questpie151.TextFieldMethods>;
55
+ readonly accountId: questpie151.FieldWithMethods<Omit<questpie151.TextFieldState, "notNull" | "column"> & {
56
56
  notNull: true;
57
- column: drizzle_orm27.NotNull<drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>>;
58
- }, questpie187.TextFieldMethods>;
59
- readonly providerId: questpie187.FieldWithMethods<Omit<questpie187.TextFieldState, "notNull" | "column"> & {
57
+ column: drizzle_orm15.NotNull<drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>>;
58
+ }, questpie151.TextFieldMethods>;
59
+ readonly providerId: questpie151.FieldWithMethods<Omit<questpie151.TextFieldState, "notNull" | "column"> & {
60
60
  notNull: true;
61
- column: drizzle_orm27.NotNull<drizzle_orm_pg_core44.PgVarcharBuilder<[string, ...string[]]>>;
62
- }, questpie187.TextFieldMethods>;
63
- readonly accessToken: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
64
- readonly refreshToken: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
65
- readonly accessTokenExpiresAt: questpie187.FieldWithMethods<questpie187.DatetimeFieldState, questpie187.DatetimeFieldMethods>;
66
- readonly refreshTokenExpiresAt: questpie187.FieldWithMethods<questpie187.DatetimeFieldState, questpie187.DatetimeFieldMethods>;
67
- readonly scope: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
68
- readonly idToken: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
69
- readonly password: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
61
+ column: drizzle_orm15.NotNull<drizzle_orm_pg_core32.PgVarcharBuilder<[string, ...string[]]>>;
62
+ }, questpie151.TextFieldMethods>;
63
+ readonly accessToken: questpie151.FieldWithMethods<questpie151.TextFieldState, questpie151.TextFieldMethods>;
64
+ readonly refreshToken: questpie151.FieldWithMethods<questpie151.TextFieldState, questpie151.TextFieldMethods>;
65
+ readonly accessTokenExpiresAt: questpie151.FieldWithMethods<questpie151.DatetimeFieldState, questpie151.DatetimeFieldMethods>;
66
+ readonly refreshTokenExpiresAt: questpie151.FieldWithMethods<questpie151.DatetimeFieldState, questpie151.DatetimeFieldMethods>;
67
+ readonly scope: questpie151.FieldWithMethods<questpie151.TextFieldState, questpie151.TextFieldMethods>;
68
+ readonly idToken: questpie151.FieldWithMethods<questpie151.TextFieldState, questpie151.TextFieldMethods>;
69
+ readonly password: questpie151.FieldWithMethods<questpie151.TextFieldState, questpie151.TextFieldMethods>;
70
70
  };
71
71
  upload: undefined;
72
72
  output: {};