@questpie/admin 3.0.0 → 3.0.1

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 (39) hide show
  1. package/README.md +76 -43
  2. package/dist/client/blocks/block-renderer.d.mts +2 -2
  3. package/dist/client/preview/block-scope-context.d.mts +2 -2
  4. package/dist/client/preview/preview-banner.d.mts +2 -2
  5. package/dist/client/preview/preview-field.d.mts +4 -4
  6. package/dist/client/views/auth/auth-layout.d.mts +2 -2
  7. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  8. package/dist/client/views/auth/login-form.d.mts +2 -2
  9. package/dist/client/views/auth/setup-form.d.mts +2 -2
  10. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  11. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  12. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  13. package/dist/server/modules/admin/block/prefetch.d.mts +4 -0
  14. package/dist/server/modules/admin/collections/account.d.mts +50 -50
  15. package/dist/server/modules/admin/collections/admin-locks.d.mts +49 -49
  16. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  17. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +42 -42
  18. package/dist/server/modules/admin/collections/apikey.d.mts +38 -38
  19. package/dist/server/modules/admin/collections/assets.d.mts +20 -20
  20. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  21. package/dist/server/modules/admin/collections/user.d.mts +28 -28
  22. package/dist/server/modules/admin/collections/verification.d.mts +36 -36
  23. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  24. package/dist/server/modules/admin/routes/execute-action.d.mts +5 -5
  25. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  26. package/dist/server/modules/admin/routes/preview.d.mts +6 -6
  27. package/dist/server/modules/admin/routes/reactive.d.mts +5 -5
  28. package/dist/server/modules/admin/routes/setup.d.mts +5 -5
  29. package/dist/server/modules/admin/routes/translations.d.mts +3 -3
  30. package/dist/server/modules/admin/routes/widget-data.d.mts +3 -3
  31. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +23 -23
  32. package/dist/server/modules/audit/.generated/module.d.mts +6 -6
  33. package/dist/server/modules/audit/collections/audit-log.d.mts +18 -18
  34. package/dist/server/modules/audit/jobs/audit-cleanup.d.mts +2 -2
  35. package/package.json +4 -3
  36. package/skills/questpie-admin/SKILL.md +0 -397
  37. package/skills/questpie-admin/blocks/SKILL.md +0 -305
  38. package/skills/questpie-admin/custom-ui/SKILL.md +0 -307
  39. package/skills/questpie-admin/views/SKILL.md +0 -442
package/README.md CHANGED
@@ -19,15 +19,13 @@ bun add @questpie/admin questpie @questpie/tanstack-query @tanstack/react-query
19
19
 
20
20
  ## Server Setup
21
21
 
22
- The admin plugin is registered in `questpie.config.ts`, and the admin module is added to `modules.ts`:
22
+ Add the admin module to `modules.ts`:
23
23
 
24
24
  ```ts
25
25
  // questpie.config.ts
26
26
  import { runtimeConfig } from "questpie";
27
- import { adminPlugin } from "@questpie/admin/plugin";
28
27
 
29
28
  export default runtimeConfig({
30
- plugins: [adminPlugin()],
31
29
  app: { url: process.env.APP_URL! },
32
30
  db: { url: process.env.DATABASE_URL! },
33
31
  secret: process.env.AUTH_SECRET!,
@@ -41,7 +39,25 @@ import { adminModule } from "@questpie/admin/server";
41
39
  export default [adminModule] as const;
42
40
  ```
43
41
 
44
- Branding, sidebar, and dashboard are configured via the file convention (e.g. `branding.ts`, `sidebar.ts`, `dashboard.ts`) and auto-discovered by codegen.
42
+ Branding, sidebar, dashboard, and admin locale are configured via `config/admin.ts`:
43
+
44
+ ```ts
45
+ // config/admin.ts
46
+ import { adminConfig } from "#questpie/factories";
47
+
48
+ export default adminConfig({
49
+ branding: { name: "My Admin" },
50
+ sidebar: {
51
+ sections: [
52
+ {
53
+ id: "main",
54
+ title: "Content",
55
+ items: [{ type: "collection", collection: "posts" }],
56
+ },
57
+ ],
58
+ },
59
+ });
60
+ ```
45
61
 
46
62
  Collections, globals, routes, and jobs are auto-discovered via file convention. Codegen produces a `.generated/index.ts` with the fully-typed `App` and runtime `app` instance.
47
63
 
@@ -54,7 +70,12 @@ const posts = collection("posts")
54
70
  .fields(({ f }) => ({
55
71
  title: f.text(255).required().label("Title"),
56
72
  content: f.richText().label("Content"),
57
- status: f.select(["draft", "published"]).label("Status"),
73
+ status: f
74
+ .select([
75
+ { value: "draft", label: "Draft" },
76
+ { value: "published", label: "Published" },
77
+ ])
78
+ .label("Status"),
58
79
  cover: f.upload({ to: "assets", mimeTypes: ["image/*"] }),
59
80
  publishedAt: f.date(),
60
81
  }))
@@ -147,35 +168,51 @@ Server-evaluated reactive behaviors in form config:
147
168
  ### Dashboard Actions
148
169
 
149
170
  ```ts
150
- .dashboard(({ d, c, a }) => d.dashboard({
151
- actions: [
152
- a.create({ collection: "posts", label: { en: "New Post" }, icon: c.icon("ph:plus"), variant: "primary" }),
153
- a.global({ global: "siteSettings", label: { en: "Settings" }, icon: c.icon("ph:gear-six") }),
154
- a.link({ href: "/", label: { en: "Open Site" }, icon: c.icon("ph:arrow-square-out"), variant: "outline" }),
155
- ],
156
- items: [
157
- { type: "section", items: [
158
- { type: "stats", collection: "posts", label: "Posts" },
159
- ]},
160
- ],
161
- }))
171
+ export default adminConfig({
172
+ dashboard: {
173
+ title: "Dashboard",
174
+ items: [
175
+ {
176
+ id: "posts",
177
+ type: "stats",
178
+ collection: "posts",
179
+ label: "Posts",
180
+ },
181
+ {
182
+ id: "quick-actions",
183
+ type: "quickActions",
184
+ label: "Quick Actions",
185
+ actions: [
186
+ {
187
+ label: "New Post",
188
+ action: { type: "create", collection: "posts" },
189
+ },
190
+ {
191
+ label: "Open Site",
192
+ action: { type: "link", href: "/" },
193
+ },
194
+ ],
195
+ },
196
+ ],
197
+ },
198
+ });
162
199
  ```
163
200
 
164
201
  ## Client Setup
165
202
 
166
- The client creates a typed admin builder and mounts the admin UI in React:
203
+ Codegen creates a typed admin config from the client module registry and the server projection:
167
204
 
168
- ### 1. Admin Builder
205
+ ### 1. Admin Client Modules
169
206
 
170
207
  ```ts
171
- // questpie/admin/builder.ts
172
- import { qa, adminModule } from "@questpie/admin/client";
173
- import type { App } from "#questpie";
174
-
175
- export const admin = qa<App>().use(adminModule);
208
+ // questpie/admin/modules.ts
209
+ export { default } from "@questpie/admin/client-module";
176
210
  ```
177
211
 
178
- > **Note:** The old `.toNamespace()` call has been removed. `qa<App>().use(adminModule)` is the complete builder.
212
+ ```ts
213
+ // questpie/admin/admin.ts
214
+ export { default as admin } from "./.generated/client";
215
+ ```
179
216
 
180
217
  ### 2. Typed Hooks
181
218
 
@@ -200,7 +237,7 @@ export const {
200
237
  ```tsx
201
238
  // routes/admin.tsx
202
239
  import { AdminRouter } from "@questpie/admin/client";
203
- import { admin } from "@/questpie/admin/builder";
240
+ import { admin } from "@/questpie/admin/admin";
204
241
  import { appClient } from "@/lib/client";
205
242
  import { queryClient } from "@/lib/query-client";
206
243
 
@@ -208,7 +245,7 @@ export default function AdminRoute() {
208
245
  return (
209
246
  <AdminRouter
210
247
  admin={admin}
211
- client={client}
248
+ client={appClient}
212
249
  queryClient={queryClient}
213
250
  basePath="/admin"
214
251
  />
@@ -239,7 +276,7 @@ const heroBlock = block("hero")
239
276
  category: { label: "Sections", icon: c.icon("ph:layout") },
240
277
  }))
241
278
  .fields(({ f }) => ({
242
- title: f.text({ required: true }),
279
+ title: f.text().required(),
243
280
  subtitle: f.textarea(),
244
281
  backgroundImage: f.upload({ to: "assets", mimeTypes: ["image/*"] }),
245
282
  }))
@@ -249,19 +286,19 @@ const heroBlock = block("hero")
249
286
  Render blocks on the client with `BlockRenderer`:
250
287
 
251
288
  ```tsx
252
- import { BlockRenderer, createBlockRegistry } from "@questpie/admin/client";
289
+ import { BlockRenderer } from "@questpie/admin/client";
253
290
 
254
- const registry = createBlockRegistry({
255
- hero: ({ block }) => (
256
- <section style={{ backgroundImage: `url(${block.backgroundImage?.url})` }}>
257
- <h1>{block.title}</h1>
258
- <p>{block.subtitle}</p>
291
+ const renderers = {
292
+ hero: ({ values }) => (
293
+ <section>
294
+ <h1>{values.title}</h1>
295
+ <p>{values.subtitle}</p>
259
296
  </section>
260
297
  ),
261
- });
298
+ };
262
299
 
263
- function Page({ blocks }) {
264
- return <BlockRenderer blocks={blocks} registry={registry} />;
300
+ function Page({ content }) {
301
+ return <BlockRenderer content={content} renderers={renderers} />;
265
302
  }
266
303
  ```
267
304
 
@@ -305,19 +342,15 @@ Legacy params (`history`, `viewOptions`, and `sidebar=preview`) are still read f
305
342
  ## Package Exports
306
343
 
307
344
  ```ts
308
- // Client (React components, builder, hooks)
345
+ // Client (React components, generated admin config, hooks)
309
346
  import {
310
- qa,
311
- adminModule,
312
347
  AdminRouter,
313
348
  createTypedHooks,
314
349
  BlockRenderer,
315
- createBlockRegistry,
316
350
  } from "@questpie/admin/client";
317
351
 
318
- // Server (admin module + plugin for QUESTPIE config)
352
+ // Server (admin module + server factories/config)
319
353
  import { adminModule, auditModule } from "@questpie/admin/server";
320
- import { adminPlugin } from "@questpie/admin/plugin";
321
354
 
322
355
  // Styles
323
356
  import "@questpie/admin/styles/index.css";
@@ -1,6 +1,6 @@
1
1
  import { BlockContent } from "./types.mjs";
2
2
  import * as React from "react";
3
- import * as react_jsx_runtime23 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/client/blocks/block-renderer.d.ts
6
6
 
@@ -40,6 +40,6 @@ declare function BlockRenderer({
40
40
  selectedBlockId,
41
41
  onBlockClick,
42
42
  className
43
- }: BlockRendererProps): react_jsx_runtime23.JSX.Element | null;
43
+ }: BlockRendererProps): react_jsx_runtime22.JSX.Element | null;
44
44
  //#endregion
45
45
  export { BlockRenderer, BlockRendererProps };
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime22 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime17 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/preview/block-scope-context.d.ts
5
5
 
@@ -35,7 +35,7 @@ declare function BlockScopeProvider({
35
35
  blockId,
36
36
  basePath,
37
37
  children
38
- }: BlockScopeProviderProps): react_jsx_runtime22.JSX.Element;
38
+ }: BlockScopeProviderProps): react_jsx_runtime17.JSX.Element;
39
39
  /**
40
40
  * Get current block scope context.
41
41
  *
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime21 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime18 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/preview/preview-banner.d.ts
4
4
 
@@ -40,6 +40,6 @@ declare function PreviewBanner({
40
40
  isPreviewMode,
41
41
  className,
42
42
  exitPreviewUrl
43
- }: PreviewBannerProps): react_jsx_runtime21.JSX.Element | null;
43
+ }: PreviewBannerProps): react_jsx_runtime18.JSX.Element | null;
44
44
  //#endregion
45
45
  export { PreviewBanner, PreviewBannerProps };
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime18 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime19 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/preview/preview-field.d.ts
5
5
 
@@ -45,7 +45,7 @@ declare function PreviewProvider({
45
45
  fieldType?: "regular" | "block" | "relation";
46
46
  }) => void;
47
47
  children: React.ReactNode;
48
- }): react_jsx_runtime18.JSX.Element;
48
+ }): react_jsx_runtime19.JSX.Element;
49
49
  /**
50
50
  * Hook to access preview context.
51
51
  */
@@ -81,7 +81,7 @@ declare function PreviewField({
81
81
  as: Component,
82
82
  className,
83
83
  onClick
84
- }: PreviewFieldProps): react_jsx_runtime18.JSX.Element;
84
+ }: PreviewFieldProps): react_jsx_runtime19.JSX.Element;
85
85
  /**
86
86
  * Standalone PreviewField that works without context.
87
87
  * Useful when you can't use PreviewProvider.
@@ -102,6 +102,6 @@ declare function StandalonePreviewField({
102
102
  blockId?: string;
103
103
  fieldType?: "regular" | "block" | "relation";
104
104
  }) => void;
105
- }): react_jsx_runtime18.JSX.Element;
105
+ }): react_jsx_runtime19.JSX.Element;
106
106
  //#endregion
107
107
  export { PreviewField, PreviewFieldProps, PreviewProvider, StandalonePreviewField, usePreviewContext };
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/views/auth/auth-layout.d.ts
5
5
  type AuthLayoutProps = {
@@ -38,6 +38,6 @@ declare function AuthLayout({
38
38
  footer,
39
39
  children,
40
40
  className
41
- }: AuthLayoutProps): react_jsx_runtime0.JSX.Element;
41
+ }: AuthLayoutProps): react_jsx_runtime2.JSX.Element;
42
42
  //#endregion
43
43
  export { AuthLayout };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime1 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/views/auth/forgot-password-form.d.ts
4
4
  /**
@@ -53,6 +53,6 @@ declare function ForgotPasswordForm({
53
53
  defaultValues,
54
54
  className,
55
55
  error
56
- }: ForgotPasswordFormProps): react_jsx_runtime1.JSX.Element;
56
+ }: ForgotPasswordFormProps): react_jsx_runtime0.JSX.Element;
57
57
  //#endregion
58
58
  export { ForgotPasswordForm };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/views/auth/login-form.d.ts
4
4
  /**
@@ -70,6 +70,6 @@ declare function LoginForm({
70
70
  className,
71
71
  error,
72
72
  minPasswordLength
73
- }: LoginFormProps): react_jsx_runtime2.JSX.Element;
73
+ }: LoginFormProps): react_jsx_runtime1.JSX.Element;
74
74
  //#endregion
75
75
  export { LoginForm };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime4 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/views/auth/setup-form.d.ts
4
4
  /**
@@ -55,6 +55,6 @@ declare function SetupForm({
55
55
  className,
56
56
  error,
57
57
  minPasswordLength
58
- }: SetupFormProps): react_jsx_runtime4.JSX.Element;
58
+ }: SetupFormProps): react_jsx_runtime6.JSX.Element;
59
59
  //#endregion
60
60
  export { SetupForm, SetupFormValues };
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime5 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/views/pages/accept-invite-page.d.ts
5
5
 
@@ -61,6 +61,6 @@ declare function AcceptInvitePage({
61
61
  redirectTo,
62
62
  loginPath,
63
63
  minPasswordLength
64
- }: AcceptInvitePageProps): react_jsx_runtime5.JSX.Element;
64
+ }: AcceptInvitePageProps): react_jsx_runtime4.JSX.Element;
65
65
  //#endregion
66
66
  export { AcceptInvitePage };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime6 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/views/pages/dashboard-page.d.ts
4
4
 
@@ -38,6 +38,6 @@ declare function DashboardPage({
38
38
  title,
39
39
  description,
40
40
  className
41
- }: DashboardPageProps): react_jsx_runtime6.JSX.Element;
41
+ }: DashboardPageProps): react_jsx_runtime5.JSX.Element;
42
42
  //#endregion
43
43
  export { DashboardPage };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime17 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime23 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/rich-text/rich-text-renderer.d.ts
4
4
  /**
@@ -98,6 +98,6 @@ declare function RichTextRenderer({
98
98
  content,
99
99
  styles: customStyles,
100
100
  className
101
- }: RichTextRendererProps): react_jsx_runtime17.JSX.Element | null;
101
+ }: RichTextRendererProps): react_jsx_runtime23.JSX.Element | null;
102
102
  //#endregion
103
103
  export { RichTextRenderer, RichTextStyles, TipTapDoc, TipTapNode };
@@ -14,6 +14,10 @@ interface BlocksPrefetchContext {
14
14
  db: unknown;
15
15
  /** Current locale */
16
16
  locale?: string;
17
+ /** Collections accessor */
18
+ collections?: unknown;
19
+ /** Globals accessor */
20
+ globals?: unknown;
17
21
  }
18
22
  /**
19
23
  * Process blocks data for a single blocks document.
@@ -1,71 +1,71 @@
1
- import * as questpie_shared23 from "questpie/shared";
2
- import * as questpie187 from "questpie";
3
- import * as drizzle_orm_pg_core55 from "drizzle-orm/pg-core";
4
- import * as drizzle_orm25 from "drizzle-orm";
5
- import * as questpie_src_server_modules_core_fields_email_js4 from "questpie/src/server/modules/core/fields/email.js";
6
- import * as questpie_src_server_modules_core_fields_json_js4 from "questpie/src/server/modules/core/fields/json.js";
1
+ import * as questpie_shared40 from "questpie/shared";
2
+ import * as questpie292 from "questpie";
3
+ import * as drizzle_orm_pg_core84 from "drizzle-orm/pg-core";
4
+ import * as drizzle_orm53 from "drizzle-orm";
5
+ import * as questpie_src_server_modules_core_fields_email_js7 from "questpie/src/server/modules/core/fields/email.js";
6
+ import * as questpie_src_server_modules_core_fields_json_js7 from "questpie/src/server/modules/core/fields/json.js";
7
7
 
8
8
  //#region src/server/modules/admin/collections/account.d.ts
9
- declare const _default: questpie187.CollectionBuilder<questpie_shared23.Override<questpie187.EmptyCollectionState<"account", undefined, {
10
- readonly text: typeof questpie187.text;
11
- readonly textarea: typeof questpie187.textarea;
12
- readonly email: typeof questpie_src_server_modules_core_fields_email_js4.email;
13
- readonly url: typeof questpie187.url;
14
- readonly number: typeof questpie187.number;
15
- readonly boolean: typeof questpie187.boolean;
16
- readonly date: typeof questpie187.date;
17
- readonly datetime: typeof questpie187.datetime;
18
- readonly time: typeof questpie187.time;
19
- readonly select: typeof questpie187.select;
20
- readonly upload: typeof questpie187.upload;
21
- readonly relation: typeof questpie187.relation;
22
- readonly object: typeof questpie187.object;
23
- readonly json: typeof questpie_src_server_modules_core_fields_json_js4.json;
24
- readonly from: typeof questpie187.from;
9
+ declare const _default: questpie292.CollectionBuilder<questpie_shared40.Override<questpie292.EmptyCollectionState<"account", undefined, {
10
+ readonly text: typeof questpie292.text;
11
+ readonly textarea: typeof questpie292.textarea;
12
+ readonly email: typeof questpie_src_server_modules_core_fields_email_js7.email;
13
+ readonly url: typeof questpie292.url;
14
+ readonly number: typeof questpie292.number;
15
+ readonly boolean: typeof questpie292.boolean;
16
+ readonly date: typeof questpie292.date;
17
+ readonly datetime: typeof questpie292.datetime;
18
+ readonly time: typeof questpie292.time;
19
+ readonly select: typeof questpie292.select;
20
+ readonly upload: typeof questpie292.upload;
21
+ readonly relation: typeof questpie292.relation;
22
+ readonly object: typeof questpie292.object;
23
+ readonly json: typeof questpie_src_server_modules_core_fields_json_js7.json;
24
+ readonly from: typeof questpie292.from;
25
25
  }>, {
26
26
  name: "account";
27
27
  fields: Record<string, any> & {
28
- readonly userId: drizzle_orm25.NotNull<drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>>;
29
- readonly accountId: drizzle_orm25.NotNull<drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>>;
30
- readonly providerId: drizzle_orm25.NotNull<drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>>;
31
- readonly accessToken: drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>;
32
- readonly refreshToken: drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>;
33
- readonly accessTokenExpiresAt: drizzle_orm_pg_core55.PgTimestampBuilder;
34
- readonly refreshTokenExpiresAt: drizzle_orm_pg_core55.PgTimestampBuilder;
35
- readonly scope: drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>;
36
- readonly idToken: drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>;
37
- readonly password: drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>;
28
+ readonly userId: drizzle_orm53.NotNull<drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>>;
29
+ readonly accountId: drizzle_orm53.NotNull<drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>>;
30
+ readonly providerId: drizzle_orm53.NotNull<drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>>;
31
+ readonly accessToken: drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>;
32
+ readonly refreshToken: drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>;
33
+ readonly accessTokenExpiresAt: drizzle_orm_pg_core84.PgTimestampBuilder;
34
+ readonly refreshTokenExpiresAt: drizzle_orm_pg_core84.PgTimestampBuilder;
35
+ readonly scope: drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>;
36
+ readonly idToken: drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>;
37
+ readonly password: drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>;
38
38
  };
39
39
  virtuals: undefined;
40
- relations: Record<string, questpie187.RelationConfig>;
40
+ relations: Record<string, questpie292.RelationConfig>;
41
41
  indexes: Record<string, any>;
42
42
  title: "providerId";
43
- options: questpie187.CollectionOptions & {
43
+ options: questpie292.CollectionOptions & {
44
44
  timestamps: true;
45
45
  };
46
46
  hooks: Record<string, any>;
47
47
  access: Record<string, any>;
48
48
  searchable: undefined;
49
49
  fieldDefinitions: {
50
- readonly userId: questpie187.Field<Omit<questpie187.TextFieldState, "notNull" | "column"> & {
50
+ readonly userId: questpie292.FieldWithMethods<Omit<questpie292.TextFieldState, "notNull" | "column"> & {
51
51
  notNull: true;
52
- column: drizzle_orm25.NotNull<drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>>;
53
- }>;
54
- readonly accountId: questpie187.Field<Omit<questpie187.TextFieldState, "notNull" | "column"> & {
52
+ column: drizzle_orm53.NotNull<drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>>;
53
+ }, questpie292.TextFieldMethods>;
54
+ readonly accountId: questpie292.FieldWithMethods<Omit<questpie292.TextFieldState, "notNull" | "column"> & {
55
55
  notNull: true;
56
- column: drizzle_orm25.NotNull<drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>>;
57
- }>;
58
- readonly providerId: questpie187.Field<Omit<questpie187.TextFieldState, "notNull" | "column"> & {
56
+ column: drizzle_orm53.NotNull<drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>>;
57
+ }, questpie292.TextFieldMethods>;
58
+ readonly providerId: questpie292.FieldWithMethods<Omit<questpie292.TextFieldState, "notNull" | "column"> & {
59
59
  notNull: true;
60
- column: drizzle_orm25.NotNull<drizzle_orm_pg_core55.PgVarcharBuilder<[string, ...string[]]>>;
61
- }>;
62
- readonly accessToken: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
63
- readonly refreshToken: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
64
- readonly accessTokenExpiresAt: questpie187.FieldWithMethods<questpie187.DatetimeFieldState, questpie187.DatetimeFieldMethods>;
65
- readonly refreshTokenExpiresAt: questpie187.FieldWithMethods<questpie187.DatetimeFieldState, questpie187.DatetimeFieldMethods>;
66
- readonly scope: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
67
- readonly idToken: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
68
- readonly password: questpie187.FieldWithMethods<questpie187.TextFieldState, questpie187.TextFieldMethods>;
60
+ column: drizzle_orm53.NotNull<drizzle_orm_pg_core84.PgVarcharBuilder<[string, ...string[]]>>;
61
+ }, questpie292.TextFieldMethods>;
62
+ readonly accessToken: questpie292.FieldWithMethods<questpie292.TextFieldState, questpie292.TextFieldMethods>;
63
+ readonly refreshToken: questpie292.FieldWithMethods<questpie292.TextFieldState, questpie292.TextFieldMethods>;
64
+ readonly accessTokenExpiresAt: questpie292.FieldWithMethods<questpie292.DatetimeFieldState, questpie292.DatetimeFieldMethods>;
65
+ readonly refreshTokenExpiresAt: questpie292.FieldWithMethods<questpie292.DatetimeFieldState, questpie292.DatetimeFieldMethods>;
66
+ readonly scope: questpie292.FieldWithMethods<questpie292.TextFieldState, questpie292.TextFieldMethods>;
67
+ readonly idToken: questpie292.FieldWithMethods<questpie292.TextFieldState, questpie292.TextFieldMethods>;
68
+ readonly password: questpie292.FieldWithMethods<questpie292.TextFieldState, questpie292.TextFieldMethods>;
69
69
  };
70
70
  upload: undefined;
71
71
  output: {};