@questpie/admin 3.3.0 → 3.4.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.
- package/README.md +4 -6
- package/dist/client/blocks/block-renderer.d.mts +2 -2
- package/dist/client/builder/admin-types.d.mts +3 -3
- package/dist/client/builder/types/action-types.d.mts +1 -1
- package/dist/client/builder/types/collection-types.d.mts +59 -2
- package/dist/client/modules/admin.d.mts +3 -0
- package/dist/client/modules/admin.mjs +3 -0
- package/dist/client/preview/block-scope-context.d.mts +2 -2
- package/dist/client/preview/preview-banner.d.mts +2 -2
- package/dist/client/preview/preview-field.d.mts +4 -4
- package/dist/client/views/collection/list-view.mjs +830 -0
- package/dist/client/views/collection/outline.mjs +363 -0
- package/dist/client/views/collection/table-view.mjs +6 -3
- package/dist/client/views/layout/admin-layout.d.mts +15 -1
- package/dist/client/views/layout/admin-layout.mjs +95 -31
- package/dist/client.d.mts +6 -6
- package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
- package/dist/factories.d.mts +19 -0
- package/dist/factories.mjs +11 -0
- package/dist/fields.d.mts +4 -0
- package/dist/fields.mjs +5 -0
- package/dist/index.d.mts +6 -6
- package/dist/modules/admin.d.mts +10 -0
- package/dist/modules/admin.mjs +9 -0
- package/dist/modules/audit.d.mts +5 -0
- package/dist/modules/audit.mjs +5 -0
- package/dist/server/augmentation/form-layout.d.mts +57 -2
- package/dist/server/augmentation/index.d.mts +3 -1
- package/dist/server/augmentation/shell.d.mts +48 -0
- package/dist/server/augmentation.d.mts +2 -1
- package/dist/server/codegen/admin-client-template.mjs +11 -4
- package/dist/server/fields/blocks.d.mts +9 -2
- package/dist/server/fields/blocks.mjs +1 -1
- package/dist/server/fields/index.d.mts +2 -2
- package/dist/server/fields/index.mjs +2 -2
- package/dist/server/fields/rich-text.d.mts +9 -2
- package/dist/server/fields/rich-text.mjs +1 -1
- package/dist/server/modules/admin/.generated/module.d.mts +24 -19
- package/dist/server/modules/admin/.generated/module.mjs +5 -1
- package/dist/server/modules/admin/.generated/registries.d.mts +6 -4
- package/dist/server/modules/admin/client/.generated/module.d.mts +70 -70
- package/dist/server/modules/admin/client/.generated/module.mjs +3 -1
- package/dist/server/modules/admin/client/views/collection-form.d.mts +6 -0
- package/dist/server/modules/admin/client/views/collection-table.d.mts +6 -0
- package/dist/server/modules/admin/client/views/global-form.d.mts +6 -0
- package/dist/server/modules/admin/client/views/list-view.d.mts +6 -0
- package/dist/server/modules/admin/client/views/list-view.mjs +10 -0
- package/dist/server/modules/admin/collections/account.d.mts +46 -46
- package/dist/server/modules/admin/collections/admin-locks.d.mts +54 -54
- package/dist/server/modules/admin/collections/admin-preferences.d.mts +34 -34
- package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
- package/dist/server/modules/admin/collections/apikey.d.mts +68 -68
- package/dist/server/modules/admin/collections/assets.d.mts +34 -34
- package/dist/server/modules/admin/collections/session.d.mts +38 -38
- package/dist/server/modules/admin/dto/admin-config.dto.mjs +17 -0
- package/dist/server/modules/admin/index.d.mts +30 -31
- package/dist/server/modules/admin/routes/admin-config.d.mts +0 -15
- package/dist/server/modules/admin/routes/admin-config.mjs +21 -5
- package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
- package/dist/server/modules/admin/routes/execute-action.mjs +18 -12
- package/dist/server/modules/admin/routes/i18n-helpers.d.mts +4 -0
- package/dist/server/modules/admin/routes/preview.d.mts +11 -11
- package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
- package/dist/server/modules/admin/routes/route-helpers.mjs +36 -1
- package/dist/server/modules/admin/routes/setup.d.mts +7 -14
- package/dist/server/modules/admin/routes/setup.mjs +16 -3
- package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
- package/dist/server/modules/admin/views/list-view.d.mts +8 -0
- package/dist/server/modules/admin/views/list-view.mjs +7 -0
- package/dist/server/modules/audit/collections/audit-log.d.mts +7 -2
- package/dist/server/modules/audit/index.d.mts +1 -1
- package/dist/server/plugin.d.mts +1 -1
- package/dist/server/plugin.mjs +28 -28
- package/dist/server.d.mts +5 -4
- package/dist/server.mjs +7 -7
- package/package.json +13 -3
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as questpie139 from "questpie";
|
|
2
2
|
|
|
3
3
|
//#region src/server/modules/admin/routes/setup.d.ts
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Setup Functions
|
|
7
|
-
*
|
|
8
|
-
* Built-in functions for bootstrapping the first admin user.
|
|
9
|
-
* Solves the chicken-and-egg problem where invitation-based systems
|
|
10
|
-
* need an existing admin to create the first invitation.
|
|
11
|
-
*/
|
|
12
5
|
/**
|
|
13
6
|
* Check if setup is required (no admin users exist in the system).
|
|
14
7
|
*
|
|
@@ -20,7 +13,7 @@ import * as questpie129 from "questpie";
|
|
|
20
13
|
* }
|
|
21
14
|
* ```
|
|
22
15
|
*/
|
|
23
|
-
declare const isSetupRequired:
|
|
16
|
+
declare const isSetupRequired: questpie139.JsonRouteDefinition<Record<string, never>, any, questpie139.JsonRouteParams>;
|
|
24
17
|
/**
|
|
25
18
|
* Create the first admin user in the system.
|
|
26
19
|
* This function only works when no admin users exist (setup mode).
|
|
@@ -43,21 +36,21 @@ declare const isSetupRequired: questpie129.JsonRouteDefinition<Record<string, ne
|
|
|
43
36
|
* }
|
|
44
37
|
* ```
|
|
45
38
|
*/
|
|
46
|
-
declare const createFirstAdmin:
|
|
39
|
+
declare const createFirstAdmin: questpie139.JsonRouteDefinition<{
|
|
47
40
|
email: string;
|
|
48
41
|
password: string;
|
|
49
42
|
name: string;
|
|
50
|
-
}, any,
|
|
43
|
+
}, any, questpie139.JsonRouteParams>;
|
|
51
44
|
/**
|
|
52
45
|
* Bundle of setup-related functions.
|
|
53
46
|
*/
|
|
54
47
|
declare const setupFunctions: {
|
|
55
|
-
readonly isSetupRequired:
|
|
56
|
-
readonly createFirstAdmin:
|
|
48
|
+
readonly isSetupRequired: questpie139.JsonRouteDefinition<Record<string, never>, any, questpie139.JsonRouteParams>;
|
|
49
|
+
readonly createFirstAdmin: questpie139.JsonRouteDefinition<{
|
|
57
50
|
email: string;
|
|
58
51
|
password: string;
|
|
59
52
|
name: string;
|
|
60
|
-
}, any,
|
|
53
|
+
}, any, questpie139.JsonRouteParams>;
|
|
61
54
|
};
|
|
62
55
|
//#endregion
|
|
63
56
|
export { createFirstAdmin, isSetupRequired, setupFunctions };
|
|
@@ -28,6 +28,17 @@ const createFirstAdminOutputSchema = z.object({
|
|
|
28
28
|
}).optional(),
|
|
29
29
|
error: z.string().optional()
|
|
30
30
|
});
|
|
31
|
+
const adminUserContractMessage = "QUESTPIE Admin requires the canonical Better Auth \"user\" collection from adminModule/starterModule. The current \"user\" collection is missing required admin auth fields. Do not replace collection(\"user\") from scratch; merge starterModule.collections.user or adminModule.collections.user and extend it.";
|
|
32
|
+
function getAdminUserTableContract(userCollection) {
|
|
33
|
+
const table = userCollection?.table;
|
|
34
|
+
const missing = [
|
|
35
|
+
"id",
|
|
36
|
+
"role",
|
|
37
|
+
"emailVerified"
|
|
38
|
+
].filter((field$1) => !table?.[field$1]);
|
|
39
|
+
if (missing.length > 0) throw new Error(`${adminUserContractMessage} Missing field(s): ${missing.join(", ")}.`);
|
|
40
|
+
return table;
|
|
41
|
+
}
|
|
31
42
|
/**
|
|
32
43
|
* Check if setup is required (no admin users exist in the system).
|
|
33
44
|
*
|
|
@@ -42,7 +53,8 @@ const createFirstAdminOutputSchema = z.object({
|
|
|
42
53
|
const isSetupRequired = route().post().schema(isSetupRequiredSchema).outputSchema(isSetupRequiredOutputSchema).handler(async (ctx) => {
|
|
43
54
|
const app = getApp(ctx);
|
|
44
55
|
const userCollection = app.getCollectionConfig("user");
|
|
45
|
-
|
|
56
|
+
const userTable = getAdminUserTableContract(userCollection);
|
|
57
|
+
return { required: (await app.db.select({ count: sql$1`count(*)::int` }).from(userCollection.table).where(eq(userTable.role, "admin")))[0].count === 0 };
|
|
46
58
|
});
|
|
47
59
|
/**
|
|
48
60
|
* Create the first admin user in the system.
|
|
@@ -72,7 +84,8 @@ const createFirstAdmin = route().post().schema(createFirstAdminSchema).outputSch
|
|
|
72
84
|
const t = (key, params) => translateAdminMessage(locale, key, params);
|
|
73
85
|
const input = ctx.input;
|
|
74
86
|
const userCollection = app.getCollectionConfig("user");
|
|
75
|
-
|
|
87
|
+
const userTable = getAdminUserTableContract(userCollection);
|
|
88
|
+
if ((await app.db.select({ count: sql$1`count(*)::int` }).from(userCollection.table).where(eq(userTable.role, "admin")))[0].count > 0) return {
|
|
76
89
|
success: false,
|
|
77
90
|
error: t("auth.setupAlreadyCompleted")
|
|
78
91
|
};
|
|
@@ -89,7 +102,7 @@ const createFirstAdmin = route().post().schema(createFirstAdminSchema).outputSch
|
|
|
89
102
|
await app.db.update(userCollection.table).set({
|
|
90
103
|
role: "admin",
|
|
91
104
|
emailVerified: true
|
|
92
|
-
}).where(eq(
|
|
105
|
+
}).where(eq(userTable.id, signUpResult.user.id));
|
|
93
106
|
return {
|
|
94
107
|
success: true,
|
|
95
108
|
user: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as questpie147 from "questpie";
|
|
2
2
|
|
|
3
3
|
//#region src/server/modules/admin/routes/widget-data.d.ts
|
|
4
4
|
|
|
@@ -20,13 +20,13 @@ import * as questpie137 from "questpie";
|
|
|
20
20
|
* const data = await client.routes.fetchWidgetData({ widgetId: "my-widget" });
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
declare const fetchWidgetData:
|
|
23
|
+
declare const fetchWidgetData: questpie147.JsonRouteDefinition<{
|
|
24
24
|
widgetId: string;
|
|
25
|
-
}, any,
|
|
25
|
+
}, any, questpie147.JsonRouteParams>;
|
|
26
26
|
declare const widgetDataFunctions: {
|
|
27
|
-
readonly fetchWidgetData:
|
|
27
|
+
readonly fetchWidgetData: questpie147.JsonRouteDefinition<{
|
|
28
28
|
widgetId: string;
|
|
29
|
-
}, any,
|
|
29
|
+
}, any, questpie147.JsonRouteParams>;
|
|
30
30
|
};
|
|
31
31
|
//#endregion
|
|
32
32
|
export { fetchWidgetData, widgetDataFunctions };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ListViewConfig } from "../../../augmentation/form-layout.mjs";
|
|
2
|
+
import { ViewDefinition } from "../../../augmentation/views.mjs";
|
|
3
|
+
import "../../../augmentation.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/server/modules/admin/views/list-view.d.ts
|
|
6
|
+
declare const _default: ViewDefinition<"list-view", "list", ListViewConfig>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { _default };
|
|
@@ -7,7 +7,12 @@ import * as drizzle_orm0 from "drizzle-orm";
|
|
|
7
7
|
import * as questpie_src_server_fields_operators_builtin_js0 from "questpie/src/server/fields/operators/builtin.js";
|
|
8
8
|
|
|
9
9
|
//#region src/server/modules/audit/collections/audit-log.d.ts
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* The collection slug used by the audit log.
|
|
12
|
+
* Exported so hooks and jobs can reference the collection dynamically
|
|
13
|
+
* instead of hardcoding the name.
|
|
14
|
+
*/
|
|
15
|
+
declare const AUDIT_LOG_COLLECTION: "admin_audit_log";
|
|
11
16
|
/**
|
|
12
17
|
* Audit Log Collection
|
|
13
18
|
*
|
|
@@ -213,4 +218,4 @@ declare const auditLogCollection: questpie21.CollectionBuilder<questpie_shared0.
|
|
|
213
218
|
})[];
|
|
214
219
|
}>>;
|
|
215
220
|
//#endregion
|
|
216
|
-
export { auditLogCollection };
|
|
221
|
+
export { AUDIT_LOG_COLLECTION, auditLogCollection };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { auditLogCollection } from "./collections/audit-log.mjs";
|
|
1
|
+
import { AUDIT_LOG_COLLECTION, auditLogCollection } from "./collections/audit-log.mjs";
|
|
2
2
|
import { AuditModule, _module } from "./.generated/module.mjs";
|
|
3
3
|
import { AuditActorType, AuditContext, LogAuditEntryOptions, logAuditEntry } from "./log-audit-entry.mjs";
|
package/dist/server/plugin.d.mts
CHANGED
package/dist/server/plugin.mjs
CHANGED
|
@@ -49,7 +49,7 @@ function adminPlugin() {
|
|
|
49
49
|
placeholder: "$COMPONENT_NAMES",
|
|
50
50
|
recordPlaceholder: "$COMPONENTS",
|
|
51
51
|
typeRegistry: {
|
|
52
|
-
module: "@questpie/admin/
|
|
52
|
+
module: "@questpie/admin/factories",
|
|
53
53
|
interface: "ComponentTypeRegistry"
|
|
54
54
|
},
|
|
55
55
|
includeInAppState: true,
|
|
@@ -71,7 +71,7 @@ function adminPlugin() {
|
|
|
71
71
|
prefix: "ftype",
|
|
72
72
|
factoryImports: [{
|
|
73
73
|
name: "adminFields",
|
|
74
|
-
from: "@questpie/admin/
|
|
74
|
+
from: "@questpie/admin/fields"
|
|
75
75
|
}]
|
|
76
76
|
}
|
|
77
77
|
},
|
|
@@ -84,10 +84,10 @@ function adminPlugin() {
|
|
|
84
84
|
builderClass: "BlockBuilder",
|
|
85
85
|
import: {
|
|
86
86
|
name: "BlockBuilder",
|
|
87
|
-
from: "@questpie/admin/
|
|
87
|
+
from: "@questpie/admin/factories"
|
|
88
88
|
},
|
|
89
89
|
createMethod: "create",
|
|
90
|
-
returnType: "import('@questpie/admin/
|
|
90
|
+
returnType: "import('@questpie/admin/factories').BlockBuilder<{ name: TName }>"
|
|
91
91
|
} },
|
|
92
92
|
fieldExtensions: {
|
|
93
93
|
admin: {
|
|
@@ -96,7 +96,7 @@ function adminPlugin() {
|
|
|
96
96
|
},
|
|
97
97
|
form: {
|
|
98
98
|
stateKey: "form",
|
|
99
|
-
configType: "(ctx: { f: Record<string, string> }) => { fields: import('@questpie/admin/
|
|
99
|
+
configType: "(ctx: { f: Record<string, string> }) => { fields: import('@questpie/admin/factories').FieldLayoutItem[] }",
|
|
100
100
|
isCallback: true,
|
|
101
101
|
callbackContextParams: ["f"]
|
|
102
102
|
}
|
|
@@ -106,10 +106,10 @@ function adminPlugin() {
|
|
|
106
106
|
stateKey: "admin",
|
|
107
107
|
imports: [{
|
|
108
108
|
name: "AdminCollectionConfig",
|
|
109
|
-
from: "@questpie/admin/
|
|
109
|
+
from: "@questpie/admin/factories"
|
|
110
110
|
}, {
|
|
111
111
|
name: "AdminConfigContext",
|
|
112
|
-
from: "@questpie/admin/
|
|
112
|
+
from: "@questpie/admin/factories"
|
|
113
113
|
}],
|
|
114
114
|
configType: "AdminCollectionConfig | ((ctx: AdminConfigContext<$COMPONENTS>) => AdminCollectionConfig)",
|
|
115
115
|
isCallback: true,
|
|
@@ -120,15 +120,15 @@ function adminPlugin() {
|
|
|
120
120
|
imports: [
|
|
121
121
|
{
|
|
122
122
|
name: "ListViewConfig",
|
|
123
|
-
from: "@questpie/admin/
|
|
123
|
+
from: "@questpie/admin/factories"
|
|
124
124
|
},
|
|
125
125
|
{
|
|
126
126
|
name: "ListViewConfigContext",
|
|
127
|
-
from: "@questpie/admin/
|
|
127
|
+
from: "@questpie/admin/factories"
|
|
128
128
|
},
|
|
129
129
|
{
|
|
130
130
|
name: "FilterViewsByKind",
|
|
131
|
-
from: "@questpie/admin/
|
|
131
|
+
from: "@questpie/admin/factories"
|
|
132
132
|
}
|
|
133
133
|
],
|
|
134
134
|
configType: "(ctx: ListViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, any> } ? F : Record<string, any>, FilterViewsByKind<$VIEWS_RECORD, \"list\">>) => ListViewConfig",
|
|
@@ -150,15 +150,15 @@ function adminPlugin() {
|
|
|
150
150
|
imports: [
|
|
151
151
|
{
|
|
152
152
|
name: "FormViewConfig",
|
|
153
|
-
from: "@questpie/admin/
|
|
153
|
+
from: "@questpie/admin/factories"
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
156
|
name: "FormViewConfigContext",
|
|
157
|
-
from: "@questpie/admin/
|
|
157
|
+
from: "@questpie/admin/factories"
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
160
|
name: "FilterViewsByKind",
|
|
161
|
-
from: "@questpie/admin/
|
|
161
|
+
from: "@questpie/admin/factories"
|
|
162
162
|
}
|
|
163
163
|
],
|
|
164
164
|
configType: "(ctx: FormViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, any> } ? F : Record<string, any>, FilterViewsByKind<$VIEWS_RECORD, \"form\">>) => FormViewConfig",
|
|
@@ -173,7 +173,7 @@ function adminPlugin() {
|
|
|
173
173
|
stateKey: "adminPreview",
|
|
174
174
|
imports: [{
|
|
175
175
|
name: "PreviewConfig",
|
|
176
|
-
from: "@questpie/admin/
|
|
176
|
+
from: "@questpie/admin/factories"
|
|
177
177
|
}],
|
|
178
178
|
configType: "PreviewConfig"
|
|
179
179
|
},
|
|
@@ -181,10 +181,10 @@ function adminPlugin() {
|
|
|
181
181
|
stateKey: "adminActions",
|
|
182
182
|
imports: [{
|
|
183
183
|
name: "ServerActionsConfig",
|
|
184
|
-
from: "@questpie/admin/
|
|
184
|
+
from: "@questpie/admin/factories"
|
|
185
185
|
}, {
|
|
186
186
|
name: "ActionsConfigContext",
|
|
187
|
-
from: "@questpie/admin/
|
|
187
|
+
from: "@questpie/admin/factories"
|
|
188
188
|
}],
|
|
189
189
|
configType: "(ctx: ActionsConfigContext<Record<string, unknown>, $COMPONENTS>) => ServerActionsConfig",
|
|
190
190
|
isCallback: true,
|
|
@@ -200,10 +200,10 @@ function adminPlugin() {
|
|
|
200
200
|
stateKey: "admin",
|
|
201
201
|
imports: [{
|
|
202
202
|
name: "AdminGlobalConfig",
|
|
203
|
-
from: "@questpie/admin/
|
|
203
|
+
from: "@questpie/admin/factories"
|
|
204
204
|
}, {
|
|
205
205
|
name: "AdminConfigContext",
|
|
206
|
-
from: "@questpie/admin/
|
|
206
|
+
from: "@questpie/admin/factories"
|
|
207
207
|
}],
|
|
208
208
|
configType: "AdminGlobalConfig | ((ctx: AdminConfigContext<$COMPONENTS>) => AdminGlobalConfig)",
|
|
209
209
|
isCallback: true,
|
|
@@ -214,15 +214,15 @@ function adminPlugin() {
|
|
|
214
214
|
imports: [
|
|
215
215
|
{
|
|
216
216
|
name: "FormViewConfig",
|
|
217
|
-
from: "@questpie/admin/
|
|
217
|
+
from: "@questpie/admin/factories"
|
|
218
218
|
},
|
|
219
219
|
{
|
|
220
220
|
name: "FormViewConfigContext",
|
|
221
|
-
from: "@questpie/admin/
|
|
221
|
+
from: "@questpie/admin/factories"
|
|
222
222
|
},
|
|
223
223
|
{
|
|
224
224
|
name: "FilterViewsByKind",
|
|
225
|
-
from: "@questpie/admin/
|
|
225
|
+
from: "@questpie/admin/factories"
|
|
226
226
|
}
|
|
227
227
|
],
|
|
228
228
|
configType: "(ctx: FormViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, any> } ? F : Record<string, any>, FilterViewsByKind<$VIEWS_RECORD, \"form\">>) => FormViewConfig",
|
|
@@ -238,7 +238,7 @@ function adminPlugin() {
|
|
|
238
238
|
configType: "AdminConfigInput",
|
|
239
239
|
imports: [{
|
|
240
240
|
name: "AdminConfigInput",
|
|
241
|
-
from: "@questpie/admin/
|
|
241
|
+
from: "@questpie/admin/factories"
|
|
242
242
|
}],
|
|
243
243
|
isCallback: true
|
|
244
244
|
} }
|
|
@@ -247,15 +247,15 @@ function adminPlugin() {
|
|
|
247
247
|
callbackParams: {
|
|
248
248
|
v: {
|
|
249
249
|
factory: "createViewCallbackProxy",
|
|
250
|
-
from: "@questpie/admin/
|
|
250
|
+
from: "@questpie/admin/factories"
|
|
251
251
|
},
|
|
252
252
|
c: {
|
|
253
253
|
factory: "createComponentCallbackProxy",
|
|
254
|
-
from: "@questpie/admin/
|
|
254
|
+
from: "@questpie/admin/factories"
|
|
255
255
|
},
|
|
256
256
|
a: {
|
|
257
257
|
factory: "createActionCallbackProxy",
|
|
258
|
-
from: "@questpie/admin/
|
|
258
|
+
from: "@questpie/admin/factories"
|
|
259
259
|
}
|
|
260
260
|
},
|
|
261
261
|
scaffolds: {
|
|
@@ -267,12 +267,12 @@ function adminPlugin() {
|
|
|
267
267
|
view: {
|
|
268
268
|
dir: "views",
|
|
269
269
|
description: "Server-side view definition",
|
|
270
|
-
template: ({ kebab, camel }) => `import { view } from "@questpie/admin/
|
|
270
|
+
template: ({ kebab, camel }) => `import { view } from "@questpie/admin/factories";\n\nexport const ${camel}View = view("${kebab}", {\n\tkind: "list",\n});\n`
|
|
271
271
|
},
|
|
272
272
|
component: {
|
|
273
273
|
dir: "components",
|
|
274
274
|
description: "Server-side component definition",
|
|
275
|
-
template: ({ kebab, camel }) => `import { component } from "@questpie/admin/
|
|
275
|
+
template: ({ kebab, camel }) => `import { component } from "@questpie/admin/factories";\n\nexport const ${camel}Component = component("${kebab}", {\n\t// TODO: configure component props\n});\n`
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
278
|
},
|
|
@@ -336,7 +336,7 @@ function adminPlugin() {
|
|
|
336
336
|
const blockFiles = ctx.categories.get("blocks");
|
|
337
337
|
if (!blockFiles || blockFiles.size === 0) return;
|
|
338
338
|
ctx.addImport("type { BlockRendererProps }", "@questpie/admin/client");
|
|
339
|
-
ctx.addImport("type { InferBlockValues, InferBlockData }", "@questpie/admin/
|
|
339
|
+
ctx.addImport("type { InferBlockValues, InferBlockData }", "@questpie/admin/factories");
|
|
340
340
|
const entries = [];
|
|
341
341
|
for (const [key, file] of [...blockFiles.entries()].sort(([a], [b]) => a.localeCompare(b))) {
|
|
342
342
|
const varName = `${key}Block`;
|
package/dist/server.d.mts
CHANGED
|
@@ -3,6 +3,7 @@ import { AdminBlockConfig, AdminCollectionConfig, AdminGlobalConfig, BlockCatego
|
|
|
3
3
|
import { AdminConfigContext, ComponentDefinition, ComponentFactory, EditViewDefinition, EditViewFactory, FilterViewsByKind, FormViewConfigContext, ListViewConfigContext, ListViewDefinition, ListViewFactory, ViewDefinition, ViewKind, ViewKindRegistry } from "./server/augmentation/views.mjs";
|
|
4
4
|
import { DashboardActionFactory, DashboardActionProxy, DashboardCallback, DashboardCallbackContext, DashboardConfigContext, DashboardContribution, DashboardItemDef, DashboardProxy, DashboardSectionDef, ServerBrandingConfig, ServerChartWidget, ServerCustomWidget, ServerDashboardAction, ServerDashboardConfig, ServerDashboardItem, ServerDashboardSection, ServerDashboardTab, ServerDashboardTabs, ServerDashboardWidget, ServerProgressWidget, ServerQuickAction, ServerQuickActionsWidget, ServerRecentItemsWidget, ServerStatsWidget, ServerTableWidget, ServerTimelineWidget, ServerValueWidget, WidgetAccessRule, WidgetFetchContext } from "./server/augmentation/dashboard.mjs";
|
|
5
5
|
import { ServerSidebarCollectionItem, ServerSidebarConfig, ServerSidebarDividerItem, ServerSidebarGlobalItem, ServerSidebarItem, ServerSidebarLinkItem, ServerSidebarPageItem, ServerSidebarSection, SidebarCallback, SidebarCallbackContext, SidebarConfigContext, SidebarContribution, SidebarItemDef, SidebarProxy, SidebarSectionDef } from "./server/augmentation/sidebar.mjs";
|
|
6
|
+
import { AdminShellRailPlacement, AdminShellRouteRules, ServerAdminShellConfig, ServerAdminShellRailConfig } from "./server/augmentation/shell.mjs";
|
|
6
7
|
import { ActionsConfigContext, BuiltinActionType, ServerActionContext, ServerActionDefinition, ServerActionDownload, ServerActionEffects, ServerActionError, ServerActionForm, ServerActionFormField, ServerActionHandler, ServerActionRedirect, ServerActionResult, ServerActionSuccess, ServerActionsConfig } from "./server/augmentation/actions.mjs";
|
|
7
8
|
import { AdminConfigInput, adminConfig } from "./server/augmentation/index.mjs";
|
|
8
9
|
import "./server/augmentation.mjs";
|
|
@@ -13,7 +14,8 @@ import { AnyBlockBuilder, AnyBlockDefinition, BlockBuilder, BlockBuilderState, B
|
|
|
13
14
|
import { BlockSchema, getBlocksByCategory, introspectBlock, introspectBlocks } from "./server/modules/admin/block/introspection.mjs";
|
|
14
15
|
import { BlocksPrefetchContext, createBlocksPrefetchHook, processBlocksDocument, processDocumentBlocksPrefetch } from "./server/modules/admin/block/prefetch.mjs";
|
|
15
16
|
import "./server/block/index.mjs";
|
|
16
|
-
import {
|
|
17
|
+
import { component, editView, filterViewsByKind, listView, view } from "./server/registry-helpers.mjs";
|
|
18
|
+
import { createActionCallbackProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback } from "./server/proxy-factories.mjs";
|
|
17
19
|
import { AuthSession, GetAdminSessionOptions, RequireAdminAuthOptions, getAdminSession, isAdminUser, requireAdminAuth } from "./server/modules/admin/auth-helpers.mjs";
|
|
18
20
|
import { NextAuthMiddlewareOptions, createNextAuthMiddleware, getNextAdminSession } from "./server/adapters/nextjs.mjs";
|
|
19
21
|
import { BeforeLoadContext, TanStackAuthGuardOptions, createTanStackAuthGuard, createTanStackSessionLoader } from "./server/adapters/tanstack.mjs";
|
|
@@ -29,6 +31,5 @@ import { auditLogCollection } from "./server/modules/audit/collections/audit-log
|
|
|
29
31
|
import { AuditModule, _module } from "./server/modules/audit/.generated/module.mjs";
|
|
30
32
|
import { AuditActorType, AuditContext, LogAuditEntryOptions, logAuditEntry } from "./server/modules/audit/log-audit-entry.mjs";
|
|
31
33
|
import "./server/modules/audit/index.mjs";
|
|
32
|
-
import {
|
|
33
|
-
|
|
34
|
-
export { type ActionReference, type ActionsConfigContext, type AdminBlockConfig, type AdminCollectionConfig, type AdminConfigContext, type AdminConfigInput, type AdminGlobalConfig, type AdminLocaleConfig, type AdminModule, type AnyBlockBuilder, type AnyBlockDefinition, type AuditActorType, type AuditContext, type AuditModule, type AuthSession, BeforeLoadContext, BlockBuilder, type BlockBuilderState, type BlockCategoryConfig, type BlockDefinition, type BlockNode, type BlockPrefetchContext, type BlockPrefetchFn, type BlockPrefetchWith, type BlockPrefetchWithOptions, type BlockSchema, type BlockValues, type BlocksDocument, type BlocksFieldMeta, type BlocksPrefetchContext, type BuiltinActionType, type ComponentDefinition, type ComponentFactory, type ComponentReference, type ComponentType, type ComponentTypeRegistry, type DashboardActionFactory, type DashboardActionProxy, type DashboardCallback, type DashboardCallbackContext, type DashboardConfigContext, type DashboardContribution, type DashboardItemDef, type DashboardProxy, type DashboardSectionDef, type EditViewDefinition, type EditViewFactory, type ExecuteActionRequest, type ExecuteActionResponse, type ExpandWithResult, type ExpandedRecord, type FieldLayoutItem, type FilterOperator, type FilterRule, type FilterViewsByKind, type FormFieldLayoutItem, type FormReactiveConfig, type FormReactiveContext, type FormSectionLayout, type FormSidebarConfig, type FormTabConfig, type FormTabsLayout, type FormViewConfig, type FormViewConfigContext, type GetAdminSessionOptions, type InferBlockData, type InferBlockValues, type ListViewConfig, type ListViewConfigContext, type ListViewDefinition, type ListViewFactory, type LogAuditEntryOptions, NextAuthMiddlewareOptions, type PreviewConfig, type PreviewTokenPayload, type RequireAdminAuthOptions, type RichTextFeature, type RichTextFieldMeta, type ServerActionContext, type ServerActionDefinition, type ServerActionDownload, type ServerActionEffects, type ServerActionError, type ServerActionForm, type ServerActionFormField, type ServerActionHandler, type ServerActionRedirect, type ServerActionResult, type ServerActionSuccess, type ServerActionsConfig, type ServerBrandingConfig, type ServerChartWidget, type ServerCustomWidget, type ServerDashboardAction, type ServerDashboardConfig, type ServerDashboardItem, type ServerDashboardSection, type ServerDashboardTab, type ServerDashboardTabs, type ServerDashboardWidget, type ServerProgressWidget, type ServerQuickAction, type ServerQuickActionsWidget, type ServerRecentItemsWidget, type ServerSidebarCollectionItem, type ServerSidebarConfig, type ServerSidebarDividerItem, type ServerSidebarGlobalItem, type ServerSidebarItem, type ServerSidebarLinkItem, type ServerSidebarPageItem, type ServerSidebarSection, type ServerStatsWidget, type ServerTableWidget, type ServerTimelineWidget, type ServerValueWidget, type SidebarCallback, type SidebarCallbackContext, type SidebarConfigContext, type SidebarContribution, type SidebarItemDef, type SidebarProxy, type SidebarSectionDef, type SortConfig, TanStackAuthGuardOptions, type TipTapDocument, type TipTapNode, type ViewConfiguration, type ViewDefinition, type ViewKind, type ViewKindRegistry, type WidgetAccessRule, type WidgetFetchContext, actionFunctions, adminConfig, adminFields, adminModule, adminPlugin, adminRoutes, auditLogCollection, _module as auditModule, batchReactive, block, component, createActionCallbackProxy, createActionProxy, createBlocksPrefetchHook, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createFirstAdmin, createNextAuthMiddleware, createPreviewFunctions, createPreviewTokenVerifier, createSidebarCallbackContext, createSidebarContributionProxy, createTanStackAuthGuard, createTanStackSessionLoader, createViewCallbackProxy, createViewProxy, editView, executeAction, executeActionFn, fetchWidgetData, fieldOptions, filterViewsByKind, getActionsConfig, getActionsConfigFn, getAdminSession, getBlocksByCategory, getNextAdminSession, introspectBlock, introspectBlocks, isAdminUser, isSetupRequired, listView, logAuditEntry, processBlocksDocument, processDocumentBlocksPrefetch, reactiveFunctions, requireAdminAuth, resolveDashboardCallback, resolveSidebarCallback, savedViewsCollection, setupFunctions, verifyPreviewTokenDirect, view, widgetDataFunctions };
|
|
34
|
+
import { adminPlugin } from "./server/plugin.mjs";
|
|
35
|
+
export { type ActionReference, type ActionsConfigContext, type AdminBlockConfig, type AdminCollectionConfig, type AdminConfigContext, type AdminConfigInput, type AdminGlobalConfig, type AdminLocaleConfig, type AdminModule, type AdminShellRailPlacement, type AdminShellRouteRules, type AnyBlockBuilder, type AnyBlockDefinition, type AuditActorType, type AuditContext, type AuditModule, type AuthSession, BeforeLoadContext, BlockBuilder, type BlockBuilderState, type BlockCategoryConfig, type BlockDefinition, type BlockNode, type BlockPrefetchContext, type BlockPrefetchFn, type BlockPrefetchWith, type BlockPrefetchWithOptions, type BlockSchema, type BlockValues, type BlocksDocument, type BlocksFieldMeta, type BlocksPrefetchContext, type BuiltinActionType, type ComponentDefinition, type ComponentFactory, type ComponentReference, type ComponentType, type ComponentTypeRegistry, type DashboardActionFactory, type DashboardActionProxy, type DashboardCallback, type DashboardCallbackContext, type DashboardConfigContext, type DashboardContribution, type DashboardItemDef, type DashboardProxy, type DashboardSectionDef, type EditViewDefinition, type EditViewFactory, type ExecuteActionRequest, type ExecuteActionResponse, type ExpandWithResult, type ExpandedRecord, type FieldLayoutItem, type FilterOperator, type FilterRule, type FilterViewsByKind, type FormFieldLayoutItem, type FormReactiveConfig, type FormReactiveContext, type FormSectionLayout, type FormSidebarConfig, type FormTabConfig, type FormTabsLayout, type FormViewConfig, type FormViewConfigContext, type GetAdminSessionOptions, type InferBlockData, type InferBlockValues, type ListViewConfig, type ListViewConfigContext, type ListViewDefinition, type ListViewFactory, type LogAuditEntryOptions, NextAuthMiddlewareOptions, type PreviewConfig, type PreviewTokenPayload, type RequireAdminAuthOptions, type RichTextFeature, type RichTextFieldMeta, type ServerActionContext, type ServerActionDefinition, type ServerActionDownload, type ServerActionEffects, type ServerActionError, type ServerActionForm, type ServerActionFormField, type ServerActionHandler, type ServerActionRedirect, type ServerActionResult, type ServerActionSuccess, type ServerActionsConfig, type ServerAdminShellConfig, type ServerAdminShellRailConfig, type ServerBrandingConfig, type ServerChartWidget, type ServerCustomWidget, type ServerDashboardAction, type ServerDashboardConfig, type ServerDashboardItem, type ServerDashboardSection, type ServerDashboardTab, type ServerDashboardTabs, type ServerDashboardWidget, type ServerProgressWidget, type ServerQuickAction, type ServerQuickActionsWidget, type ServerRecentItemsWidget, type ServerSidebarCollectionItem, type ServerSidebarConfig, type ServerSidebarDividerItem, type ServerSidebarGlobalItem, type ServerSidebarItem, type ServerSidebarLinkItem, type ServerSidebarPageItem, type ServerSidebarSection, type ServerStatsWidget, type ServerTableWidget, type ServerTimelineWidget, type ServerValueWidget, type SidebarCallback, type SidebarCallbackContext, type SidebarConfigContext, type SidebarContribution, type SidebarItemDef, type SidebarProxy, type SidebarSectionDef, type SortConfig, TanStackAuthGuardOptions, type TipTapDocument, type TipTapNode, type ViewConfiguration, type ViewDefinition, type ViewKind, type ViewKindRegistry, type WidgetAccessRule, type WidgetFetchContext, actionFunctions, adminConfig, adminFields, adminModule, adminPlugin, adminRoutes, auditLogCollection, _module as auditModule, batchReactive, block, component, createActionCallbackProxy, createActionProxy, createBlocksPrefetchHook, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createFirstAdmin, createNextAuthMiddleware, createPreviewFunctions, createPreviewTokenVerifier, createSidebarCallbackContext, createSidebarContributionProxy, createTanStackAuthGuard, createTanStackSessionLoader, createViewCallbackProxy, createViewProxy, editView, executeAction, executeActionFn, fetchWidgetData, fieldOptions, filterViewsByKind, getActionsConfig, getActionsConfigFn, getAdminSession, getBlocksByCategory, getNextAdminSession, introspectBlock, introspectBlocks, isAdminUser, isSetupRequired, listView, logAuditEntry, processBlocksDocument, processDocumentBlocksPrefetch, reactiveFunctions, requireAdminAuth, resolveDashboardCallback, resolveSidebarCallback, savedViewsCollection, setupFunctions, verifyPreviewTokenDirect, view, widgetDataFunctions };
|
package/dist/server.mjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { createTanStackAuthGuard, createTanStackSessionLoader } from "./server/adapters/tanstack.mjs";
|
|
1
|
+
import { adminConfig } from "./server/augmentation/index.mjs";
|
|
2
|
+
import { component, editView, filterViewsByKind, listView, view } from "./server/registry-helpers.mjs";
|
|
3
|
+
import { createActionCallbackProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback } from "./server/proxy-factories.mjs";
|
|
5
4
|
import { createBlocksPrefetchHook, processBlocksDocument, processDocumentBlocksPrefetch } from "./server/modules/admin/block/prefetch.mjs";
|
|
6
5
|
import { adminFields } from "./server/fields/index.mjs";
|
|
7
6
|
import { BlockBuilder, block } from "./server/modules/admin/block/block-builder.mjs";
|
|
8
7
|
import { getBlocksByCategory, introspectBlock, introspectBlocks } from "./server/modules/admin/block/introspection.mjs";
|
|
8
|
+
import { getAdminSession, isAdminUser, requireAdminAuth } from "./server/modules/admin/auth-helpers.mjs";
|
|
9
|
+
import { createNextAuthMiddleware, getNextAdminSession } from "./server/adapters/nextjs.mjs";
|
|
10
|
+
import { createTanStackAuthGuard, createTanStackSessionLoader } from "./server/adapters/tanstack.mjs";
|
|
11
|
+
import { adminPlugin } from "./server/plugin.mjs";
|
|
9
12
|
import { savedViewsCollection } from "./server/modules/admin-preferences/collections/saved-views.mjs";
|
|
10
|
-
import { createActionCallbackProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback } from "./server/proxy-factories.mjs";
|
|
11
13
|
import { actionFunctions, executeAction, executeActionFn, getActionsConfig, getActionsConfigFn } from "./server/modules/admin/routes/execute-action.mjs";
|
|
12
14
|
import { createPreviewFunctions, createPreviewTokenVerifier, verifyPreviewTokenDirect } from "./server/modules/admin/routes/preview.mjs";
|
|
13
15
|
import { batchReactive, fieldOptions, reactiveFunctions } from "./server/modules/admin/routes/reactive.mjs";
|
|
14
16
|
import { createFirstAdmin, isSetupRequired, setupFunctions } from "./server/modules/admin/routes/setup.mjs";
|
|
15
17
|
import { fetchWidgetData, widgetDataFunctions } from "./server/modules/admin/routes/widget-data.mjs";
|
|
16
|
-
import { component, editView, filterViewsByKind, listView, view } from "./server/registry-helpers.mjs";
|
|
17
|
-
import { adminConfig } from "./server/augmentation/index.mjs";
|
|
18
18
|
import { adminModule, adminRoutes } from "./server/modules/admin/index.mjs";
|
|
19
19
|
import { auditLogCollection } from "./server/modules/audit/collections/audit-log.mjs";
|
|
20
20
|
import module_default from "./server/modules/audit/.generated/module.mjs";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@questpie/admin",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/questpie/questpie.git",
|
|
@@ -24,6 +24,11 @@
|
|
|
24
24
|
".": "./dist/index.mjs",
|
|
25
25
|
"./client": "./dist/client.mjs",
|
|
26
26
|
"./client-module": "./dist/client-module.mjs",
|
|
27
|
+
"./client/modules/admin": "./dist/client/modules/admin.mjs",
|
|
28
|
+
"./factories": "./dist/factories.mjs",
|
|
29
|
+
"./fields": "./dist/fields.mjs",
|
|
30
|
+
"./modules/admin": "./dist/modules/admin.mjs",
|
|
31
|
+
"./modules/audit": "./dist/modules/audit.mjs",
|
|
27
32
|
"./plugin": "./dist/plugin.mjs",
|
|
28
33
|
"./server": "./dist/server.mjs",
|
|
29
34
|
"./shared": "./dist/shared.mjs",
|
|
@@ -37,6 +42,11 @@
|
|
|
37
42
|
".": "./dist/index.mjs",
|
|
38
43
|
"./client": "./dist/client.mjs",
|
|
39
44
|
"./client-module": "./dist/client-module.mjs",
|
|
45
|
+
"./client/modules/admin": "./dist/client/modules/admin.mjs",
|
|
46
|
+
"./factories": "./dist/factories.mjs",
|
|
47
|
+
"./fields": "./dist/fields.mjs",
|
|
48
|
+
"./modules/admin": "./dist/modules/admin.mjs",
|
|
49
|
+
"./modules/audit": "./dist/modules/audit.mjs",
|
|
40
50
|
"./plugin": "./dist/plugin.mjs",
|
|
41
51
|
"./server": "./dist/server.mjs",
|
|
42
52
|
"./shared": "./dist/shared.mjs",
|
|
@@ -62,7 +72,7 @@
|
|
|
62
72
|
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
|
63
73
|
"@hookform/resolvers": "^5.1.0",
|
|
64
74
|
"@iconify/react": "^6.0.2",
|
|
65
|
-
"@questpie/tanstack-query": "^3.
|
|
75
|
+
"@questpie/tanstack-query": "^3.4.0",
|
|
66
76
|
"@tailwindcss/vite": "^4.0.6",
|
|
67
77
|
"@tiptap/core": "^2.x",
|
|
68
78
|
"@tiptap/extension-character-count": "^2.x",
|
|
@@ -88,7 +98,7 @@
|
|
|
88
98
|
"date-fns": "^4.1.0",
|
|
89
99
|
"lowlight": "^3.x",
|
|
90
100
|
"next-themes": "^0.4.6",
|
|
91
|
-
"questpie": "^3.
|
|
101
|
+
"questpie": "^3.4.0",
|
|
92
102
|
"react-day-picker": "^9.12.0",
|
|
93
103
|
"react-hook-form": "^7.54.0",
|
|
94
104
|
"react-resizable-panels": "^4.4.2",
|