@fluxbase/sdk 0.0.1-rc.106 → 0.0.1-rc.108

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/dist/index.d.ts CHANGED
@@ -59,10 +59,14 @@ interface User {
59
59
  interface SignInCredentials {
60
60
  email: string;
61
61
  password: string;
62
+ /** CAPTCHA token for bot protection (optional, required if CAPTCHA is enabled) */
63
+ captchaToken?: string;
62
64
  }
63
65
  interface SignUpCredentials {
64
66
  email: string;
65
67
  password: string;
68
+ /** CAPTCHA token for bot protection (optional, required if CAPTCHA is enabled) */
69
+ captchaToken?: string;
66
70
  options?: {
67
71
  /** User metadata to store in raw_user_meta_data (Supabase-compatible) */
68
72
  data?: Record<string, unknown>;
@@ -409,7 +413,10 @@ interface ListOptions {
409
413
  offset?: number;
410
414
  }
411
415
  interface SignedUrlOptions {
416
+ /** Expiration time in seconds (default: 3600 = 1 hour) */
412
417
  expiresIn?: number;
418
+ /** Image transformation options (only applies to images) */
419
+ transform?: TransformOptions;
413
420
  }
414
421
  interface DownloadOptions {
415
422
  /** If true, returns a ReadableStream instead of Blob */
@@ -601,6 +608,8 @@ interface VerifyResetTokenResponse {
601
608
  type ResetPasswordResponse = AuthResponseData;
602
609
  interface MagicLinkOptions {
603
610
  redirect_to?: string;
611
+ /** CAPTCHA token for bot protection (optional, required if CAPTCHA is enabled) */
612
+ captchaToken?: string;
604
613
  }
605
614
  /**
606
615
  * Magic link sent response (Supabase-compatible)
@@ -622,6 +631,66 @@ interface OAuthUrlResponse {
622
631
  url: string;
623
632
  provider: string;
624
633
  }
634
+ /**
635
+ * SAML Identity Provider configuration
636
+ */
637
+ interface SAMLProvider {
638
+ /** Unique provider identifier (slug name) */
639
+ id: string;
640
+ /** Display name of the provider */
641
+ name: string;
642
+ /** Whether the provider is enabled */
643
+ enabled: boolean;
644
+ /** Provider's entity ID (used for SP metadata) */
645
+ entity_id: string;
646
+ /** SSO endpoint URL */
647
+ sso_url: string;
648
+ /** Single Logout endpoint URL (optional) */
649
+ slo_url?: string;
650
+ }
651
+ /**
652
+ * Response containing list of SAML providers
653
+ */
654
+ interface SAMLProvidersResponse {
655
+ providers: SAMLProvider[];
656
+ }
657
+ /**
658
+ * Options for initiating SAML login
659
+ */
660
+ interface SAMLLoginOptions {
661
+ /** URL to redirect after successful authentication */
662
+ redirectUrl?: string;
663
+ }
664
+ /**
665
+ * Response containing SAML login URL
666
+ */
667
+ interface SAMLLoginResponse {
668
+ /** URL to redirect user to for SAML authentication */
669
+ url: string;
670
+ /** Provider name */
671
+ provider: string;
672
+ }
673
+ /**
674
+ * SAML session information
675
+ */
676
+ interface SAMLSession {
677
+ /** Session ID */
678
+ id: string;
679
+ /** User ID */
680
+ user_id: string;
681
+ /** Provider name */
682
+ provider_name: string;
683
+ /** SAML NameID */
684
+ name_id: string;
685
+ /** Session index from IdP */
686
+ session_index?: string;
687
+ /** SAML attributes */
688
+ attributes?: Record<string, string[]>;
689
+ /** Session expiration time */
690
+ expires_at?: string;
691
+ /** Session creation time */
692
+ created_at: string;
693
+ }
625
694
  type OTPType = 'signup' | 'invite' | 'magiclink' | 'recovery' | 'email_change' | 'sms' | 'phone_change' | 'email';
626
695
  interface SignInWithOtpCredentials {
627
696
  email?: string;
@@ -1478,6 +1547,59 @@ interface ListImpersonationSessionsResponse {
1478
1547
  sessions: ImpersonationSession[];
1479
1548
  total: number;
1480
1549
  }
1550
+ /**
1551
+ * Fit mode for image transformations
1552
+ * - cover: Resize to cover target dimensions, cropping if needed (default)
1553
+ * - contain: Resize to fit within target dimensions, letterboxing if needed
1554
+ * - fill: Stretch to exactly fill target dimensions
1555
+ * - inside: Resize to fit within target, only scale down
1556
+ * - outside: Resize to be at least as large as target
1557
+ */
1558
+ type ImageFitMode = 'cover' | 'contain' | 'fill' | 'inside' | 'outside';
1559
+ /**
1560
+ * Output format for image transformations
1561
+ */
1562
+ type ImageFormat = 'webp' | 'jpg' | 'png' | 'avif';
1563
+ /**
1564
+ * Options for on-the-fly image transformations
1565
+ * Applied to storage downloads via query parameters
1566
+ */
1567
+ interface TransformOptions {
1568
+ /** Target width in pixels (0 or undefined = auto based on height) */
1569
+ width?: number;
1570
+ /** Target height in pixels (0 or undefined = auto based on width) */
1571
+ height?: number;
1572
+ /** Output format (defaults to original format) */
1573
+ format?: ImageFormat;
1574
+ /** Output quality 1-100 (default: 80) */
1575
+ quality?: number;
1576
+ /** How to fit the image within target dimensions (default: cover) */
1577
+ fit?: ImageFitMode;
1578
+ }
1579
+ /**
1580
+ * CAPTCHA provider types supported by Fluxbase
1581
+ * - hcaptcha: Privacy-focused visual challenge
1582
+ * - recaptcha_v3: Google's invisible risk-based CAPTCHA
1583
+ * - turnstile: Cloudflare's invisible CAPTCHA
1584
+ * - cap: Self-hosted proof-of-work CAPTCHA (https://capjs.js.org/)
1585
+ */
1586
+ type CaptchaProvider = 'hcaptcha' | 'recaptcha_v3' | 'turnstile' | 'cap';
1587
+ /**
1588
+ * Public CAPTCHA configuration returned from the server
1589
+ * Used by clients to know which CAPTCHA provider to load
1590
+ */
1591
+ interface CaptchaConfig {
1592
+ /** Whether CAPTCHA is enabled */
1593
+ enabled: boolean;
1594
+ /** CAPTCHA provider name */
1595
+ provider?: CaptchaProvider;
1596
+ /** Public site key for the CAPTCHA widget (hcaptcha, recaptcha, turnstile) */
1597
+ site_key?: string;
1598
+ /** Endpoints that require CAPTCHA verification */
1599
+ endpoints?: string[];
1600
+ /** Cap server URL - only present when provider is 'cap' */
1601
+ cap_server_url?: string;
1602
+ }
1481
1603
  /**
1482
1604
  * Auth state change events
1483
1605
  */
@@ -3412,6 +3534,12 @@ declare class FluxbaseAuth {
3412
3534
  * Returns null session when email confirmation is required
3413
3535
  */
3414
3536
  signUp(credentials: SignUpCredentials): Promise<FluxbaseAuthResponse>;
3537
+ /**
3538
+ * Get CAPTCHA configuration from the server
3539
+ * Use this to determine which CAPTCHA provider to load and configure
3540
+ * @returns Promise with CAPTCHA configuration (provider, site key, enabled endpoints)
3541
+ */
3542
+ getCaptchaConfig(): Promise<DataResponse<CaptchaConfig>>;
3415
3543
  /**
3416
3544
  * Sign out the current user
3417
3545
  */
@@ -3490,17 +3618,21 @@ declare class FluxbaseAuth {
3490
3618
  * Send password reset email (Supabase-compatible)
3491
3619
  * Sends a password reset link to the provided email address
3492
3620
  * @param email - Email address to send reset link to
3621
+ * @param options - Optional configuration including CAPTCHA token
3493
3622
  * @returns Promise with OTP-style response
3494
3623
  */
3495
- sendPasswordReset(email: string): Promise<DataResponse<PasswordResetResponse>>;
3624
+ sendPasswordReset(email: string, options?: {
3625
+ captchaToken?: string;
3626
+ }): Promise<DataResponse<PasswordResetResponse>>;
3496
3627
  /**
3497
3628
  * Supabase-compatible alias for sendPasswordReset()
3498
3629
  * @param email - Email address to send reset link to
3499
- * @param _options - Optional redirect configuration (currently not used)
3630
+ * @param options - Optional redirect and CAPTCHA configuration
3500
3631
  * @returns Promise with OTP-style response
3501
3632
  */
3502
- resetPasswordForEmail(email: string, _options?: {
3633
+ resetPasswordForEmail(email: string, options?: {
3503
3634
  redirectTo?: string;
3635
+ captchaToken?: string;
3504
3636
  }): Promise<DataResponse<PasswordResetResponse>>;
3505
3637
  /**
3506
3638
  * Verify password reset token
@@ -3613,6 +3745,87 @@ declare class FluxbaseAuth {
3613
3745
  * @returns Promise with user and session
3614
3746
  */
3615
3747
  signInWithIdToken(credentials: SignInWithIdTokenCredentials): Promise<FluxbaseAuthResponse>;
3748
+ /**
3749
+ * Get list of available SAML SSO providers
3750
+ * @returns Promise with list of configured SAML providers
3751
+ *
3752
+ * @example
3753
+ * ```typescript
3754
+ * const { data, error } = await client.auth.getSAMLProviders()
3755
+ * if (!error) {
3756
+ * console.log('Available providers:', data.providers)
3757
+ * }
3758
+ * ```
3759
+ */
3760
+ getSAMLProviders(): Promise<DataResponse<SAMLProvidersResponse>>;
3761
+ /**
3762
+ * Get SAML login URL for a specific provider
3763
+ * Use this to redirect the user to the IdP for authentication
3764
+ * @param provider - SAML provider name/ID
3765
+ * @param options - Optional login configuration
3766
+ * @returns Promise with SAML login URL
3767
+ *
3768
+ * @example
3769
+ * ```typescript
3770
+ * const { data, error } = await client.auth.getSAMLLoginUrl('okta')
3771
+ * if (!error) {
3772
+ * window.location.href = data.url
3773
+ * }
3774
+ * ```
3775
+ */
3776
+ getSAMLLoginUrl(provider: string, options?: SAMLLoginOptions): Promise<DataResponse<SAMLLoginResponse>>;
3777
+ /**
3778
+ * Initiate SAML login and redirect to IdP
3779
+ * This is a convenience method that redirects the user to the SAML IdP
3780
+ * @param provider - SAML provider name/ID
3781
+ * @param options - Optional login configuration
3782
+ * @returns Promise with provider and URL (browser will redirect)
3783
+ *
3784
+ * @example
3785
+ * ```typescript
3786
+ * // In browser, this will redirect to the SAML IdP
3787
+ * await client.auth.signInWithSAML('okta')
3788
+ * ```
3789
+ */
3790
+ signInWithSAML(provider: string, options?: SAMLLoginOptions): Promise<DataResponse<{
3791
+ provider: string;
3792
+ url: string;
3793
+ }>>;
3794
+ /**
3795
+ * Handle SAML callback after IdP authentication
3796
+ * Call this from your SAML callback page to complete authentication
3797
+ * @param samlResponse - Base64-encoded SAML response from the ACS endpoint
3798
+ * @param provider - SAML provider name (optional, extracted from RelayState)
3799
+ * @returns Promise with user and session
3800
+ *
3801
+ * @example
3802
+ * ```typescript
3803
+ * // In your SAML callback page
3804
+ * const urlParams = new URLSearchParams(window.location.search)
3805
+ * const samlResponse = urlParams.get('SAMLResponse')
3806
+ *
3807
+ * if (samlResponse) {
3808
+ * const { data, error } = await client.auth.handleSAMLCallback(samlResponse)
3809
+ * if (!error) {
3810
+ * console.log('Logged in:', data.user)
3811
+ * }
3812
+ * }
3813
+ * ```
3814
+ */
3815
+ handleSAMLCallback(samlResponse: string, provider?: string): Promise<FluxbaseAuthResponse>;
3816
+ /**
3817
+ * Get SAML Service Provider metadata for a specific provider configuration
3818
+ * Use this when configuring your IdP to download the SP metadata XML
3819
+ * @param provider - SAML provider name/ID
3820
+ * @returns Promise with SP metadata URL
3821
+ *
3822
+ * @example
3823
+ * ```typescript
3824
+ * const metadataUrl = client.auth.getSAMLMetadataUrl('okta')
3825
+ * // Share this URL with your IdP administrator
3826
+ * ```
3827
+ */
3828
+ getSAMLMetadataUrl(provider: string): string;
3616
3829
  /**
3617
3830
  * Internal: Set the session and persist it
3618
3831
  */
@@ -3879,10 +4092,66 @@ declare class StorageBucket {
3879
4092
  publicUrl: string;
3880
4093
  };
3881
4094
  };
4095
+ /**
4096
+ * Build query string from transform options
4097
+ * @private
4098
+ */
4099
+ private buildTransformQuery;
4100
+ /**
4101
+ * Get a public URL for a file with image transformations applied
4102
+ * Only works for image files (JPEG, PNG, WebP, GIF, AVIF, etc.)
4103
+ *
4104
+ * @param path - The file path
4105
+ * @param transform - Transformation options (width, height, format, quality, fit)
4106
+ *
4107
+ * @example
4108
+ * ```typescript
4109
+ * // Get a 300x200 WebP thumbnail
4110
+ * const url = storage.from('images').getTransformUrl('photo.jpg', {
4111
+ * width: 300,
4112
+ * height: 200,
4113
+ * format: 'webp',
4114
+ * quality: 85,
4115
+ * fit: 'cover'
4116
+ * });
4117
+ *
4118
+ * // Get a resized image maintaining aspect ratio
4119
+ * const url = storage.from('images').getTransformUrl('photo.jpg', {
4120
+ * width: 800,
4121
+ * format: 'webp'
4122
+ * });
4123
+ * ```
4124
+ */
4125
+ getTransformUrl(path: string, transform: TransformOptions): string;
3882
4126
  /**
3883
4127
  * Create a signed URL for temporary access to a file
4128
+ * Optionally include image transformation parameters
4129
+ *
3884
4130
  * @param path - The file path
3885
- * @param options - Signed URL options
4131
+ * @param options - Signed URL options including expiration and transforms
4132
+ *
4133
+ * @example
4134
+ * ```typescript
4135
+ * // Simple signed URL (1 hour expiry)
4136
+ * const { data, error } = await storage.from('images').createSignedUrl('photo.jpg');
4137
+ *
4138
+ * // Signed URL with custom expiry
4139
+ * const { data, error } = await storage.from('images').createSignedUrl('photo.jpg', {
4140
+ * expiresIn: 7200 // 2 hours
4141
+ * });
4142
+ *
4143
+ * // Signed URL with image transformation
4144
+ * const { data, error } = await storage.from('images').createSignedUrl('photo.jpg', {
4145
+ * expiresIn: 3600,
4146
+ * transform: {
4147
+ * width: 400,
4148
+ * height: 300,
4149
+ * format: 'webp',
4150
+ * quality: 85,
4151
+ * fit: 'cover'
4152
+ * }
4153
+ * });
4154
+ * ```
3886
4155
  */
3887
4156
  createSignedUrl(path: string, options?: SignedUrlOptions): Promise<{
3888
4157
  data: {
@@ -9238,6 +9507,270 @@ declare class FluxbaseVector {
9238
9507
  search<T = Record<string, unknown>>(options: VectorSearchOptions): Promise<FluxbaseResponse<VectorSearchResult<T>>>;
9239
9508
  }
9240
9509
 
9510
+ /**
9511
+ * GraphQL client for Fluxbase
9512
+ *
9513
+ * Provides a type-safe interface for executing GraphQL queries and mutations
9514
+ * against the auto-generated GraphQL schema from your database tables.
9515
+ *
9516
+ * @example
9517
+ * ```typescript
9518
+ * import { createClient } from '@fluxbase/sdk'
9519
+ *
9520
+ * const client = createClient({ url: 'http://localhost:8080' })
9521
+ *
9522
+ * // Execute a query
9523
+ * const { data, errors } = await client.graphql.query(`
9524
+ * query GetUsers($limit: Int) {
9525
+ * users(limit: $limit) {
9526
+ * id
9527
+ * email
9528
+ * posts {
9529
+ * title
9530
+ * }
9531
+ * }
9532
+ * }
9533
+ * `, { limit: 10 })
9534
+ *
9535
+ * // Execute a mutation
9536
+ * const { data, errors } = await client.graphql.mutation(`
9537
+ * mutation CreateUser($data: UserInput!) {
9538
+ * insertUser(data: $data) {
9539
+ * id
9540
+ * email
9541
+ * }
9542
+ * }
9543
+ * `, { data: { email: 'user@example.com' } })
9544
+ * ```
9545
+ *
9546
+ * @category GraphQL
9547
+ */
9548
+
9549
+ /**
9550
+ * GraphQL error location in the query
9551
+ */
9552
+ interface GraphQLErrorLocation {
9553
+ line: number;
9554
+ column: number;
9555
+ }
9556
+ /**
9557
+ * GraphQL error returned from the server
9558
+ */
9559
+ interface GraphQLError {
9560
+ message: string;
9561
+ locations?: GraphQLErrorLocation[];
9562
+ path?: (string | number)[];
9563
+ extensions?: Record<string, unknown>;
9564
+ }
9565
+ /**
9566
+ * GraphQL response from the server
9567
+ */
9568
+ interface GraphQLResponse<T = unknown> {
9569
+ data?: T;
9570
+ errors?: GraphQLError[];
9571
+ }
9572
+ /**
9573
+ * Options for GraphQL requests
9574
+ */
9575
+ interface GraphQLRequestOptions {
9576
+ /**
9577
+ * Custom headers to include in the request
9578
+ */
9579
+ headers?: Record<string, string>;
9580
+ /**
9581
+ * Request timeout in milliseconds
9582
+ */
9583
+ timeout?: number;
9584
+ }
9585
+ /**
9586
+ * GraphQL client class for executing queries and mutations
9587
+ *
9588
+ * @category GraphQL
9589
+ */
9590
+ declare class FluxbaseGraphQL {
9591
+ private fetch;
9592
+ /**
9593
+ * Create a new GraphQL client
9594
+ * @param fetch - The HTTP client to use for requests
9595
+ */
9596
+ constructor(fetch: FluxbaseFetch);
9597
+ /**
9598
+ * Execute a GraphQL query
9599
+ *
9600
+ * @typeParam T - The expected response data type
9601
+ * @param query - The GraphQL query string
9602
+ * @param variables - Variables to pass to the query
9603
+ * @param options - Additional request options
9604
+ * @returns Promise resolving to the GraphQL response
9605
+ *
9606
+ * @example
9607
+ * ```typescript
9608
+ * interface UsersQuery {
9609
+ * users: Array<{ id: string; email: string }>
9610
+ * }
9611
+ *
9612
+ * const { data, errors } = await client.graphql.query<UsersQuery>(`
9613
+ * query {
9614
+ * users { id email }
9615
+ * }
9616
+ * `)
9617
+ *
9618
+ * if (data) {
9619
+ * console.log(data.users)
9620
+ * }
9621
+ * ```
9622
+ */
9623
+ query<T = unknown>(query: string, variables?: Record<string, unknown>, options?: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
9624
+ /**
9625
+ * Execute a GraphQL mutation
9626
+ *
9627
+ * @typeParam T - The expected response data type
9628
+ * @param mutation - The GraphQL mutation string
9629
+ * @param variables - Variables to pass to the mutation
9630
+ * @param options - Additional request options
9631
+ * @returns Promise resolving to the GraphQL response
9632
+ *
9633
+ * @example
9634
+ * ```typescript
9635
+ * interface CreateUserMutation {
9636
+ * insertUser: { id: string; email: string }
9637
+ * }
9638
+ *
9639
+ * const { data, errors } = await client.graphql.mutation<CreateUserMutation>(`
9640
+ * mutation CreateUser($data: UserInput!) {
9641
+ * insertUser(data: $data) {
9642
+ * id
9643
+ * email
9644
+ * }
9645
+ * }
9646
+ * `, { data: { email: 'user@example.com' } })
9647
+ * ```
9648
+ */
9649
+ mutation<T = unknown>(mutation: string, variables?: Record<string, unknown>, options?: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
9650
+ /**
9651
+ * Execute a GraphQL request with an operation name
9652
+ *
9653
+ * Use this when your query document contains multiple operations
9654
+ * and you need to specify which one to execute.
9655
+ *
9656
+ * @typeParam T - The expected response data type
9657
+ * @param query - The GraphQL document containing one or more operations
9658
+ * @param variables - Variables to pass to the operation
9659
+ * @param operationName - The name of the operation to execute
9660
+ * @param options - Additional request options
9661
+ * @returns Promise resolving to the GraphQL response
9662
+ *
9663
+ * @example
9664
+ * ```typescript
9665
+ * const { data } = await client.graphql.execute(`
9666
+ * query GetUser($id: ID!) {
9667
+ * user(id: $id) { id email }
9668
+ * }
9669
+ * query ListUsers {
9670
+ * users { id email }
9671
+ * }
9672
+ * `, { id: '123' }, 'GetUser')
9673
+ * ```
9674
+ */
9675
+ execute<T = unknown>(query: string, variables?: Record<string, unknown>, operationName?: string, options?: GraphQLRequestOptions): Promise<GraphQLResponse<T>>;
9676
+ /**
9677
+ * Fetch the GraphQL schema via introspection
9678
+ *
9679
+ * Returns the full schema information including types, fields, and directives.
9680
+ * Useful for tooling and documentation.
9681
+ *
9682
+ * @param options - Additional request options
9683
+ * @returns Promise resolving to the introspection result
9684
+ *
9685
+ * @example
9686
+ * ```typescript
9687
+ * const { data, errors } = await client.graphql.introspect()
9688
+ *
9689
+ * if (data) {
9690
+ * console.log('Types:', data.__schema.types.length)
9691
+ * }
9692
+ * ```
9693
+ */
9694
+ introspect(options?: GraphQLRequestOptions): Promise<GraphQLResponse<{
9695
+ __schema: IntrospectionSchema;
9696
+ }>>;
9697
+ }
9698
+ /**
9699
+ * GraphQL introspection schema type
9700
+ */
9701
+ interface IntrospectionSchema {
9702
+ queryType: {
9703
+ name: string;
9704
+ };
9705
+ mutationType?: {
9706
+ name: string;
9707
+ };
9708
+ subscriptionType?: {
9709
+ name: string;
9710
+ };
9711
+ types: IntrospectionType[];
9712
+ directives: IntrospectionDirective[];
9713
+ }
9714
+ /**
9715
+ * GraphQL introspection type
9716
+ */
9717
+ interface IntrospectionType {
9718
+ kind: string;
9719
+ name: string;
9720
+ description?: string;
9721
+ fields?: IntrospectionField[];
9722
+ inputFields?: IntrospectionInputValue[];
9723
+ interfaces?: IntrospectionTypeRef[];
9724
+ enumValues?: IntrospectionEnumValue[];
9725
+ possibleTypes?: IntrospectionTypeRef[];
9726
+ }
9727
+ /**
9728
+ * GraphQL introspection field
9729
+ */
9730
+ interface IntrospectionField {
9731
+ name: string;
9732
+ description?: string;
9733
+ args: IntrospectionInputValue[];
9734
+ type: IntrospectionTypeRef;
9735
+ isDeprecated: boolean;
9736
+ deprecationReason?: string;
9737
+ }
9738
+ /**
9739
+ * GraphQL introspection input value
9740
+ */
9741
+ interface IntrospectionInputValue {
9742
+ name: string;
9743
+ description?: string;
9744
+ type: IntrospectionTypeRef;
9745
+ defaultValue?: string;
9746
+ }
9747
+ /**
9748
+ * GraphQL introspection type reference
9749
+ */
9750
+ interface IntrospectionTypeRef {
9751
+ kind: string;
9752
+ name?: string;
9753
+ ofType?: IntrospectionTypeRef;
9754
+ }
9755
+ /**
9756
+ * GraphQL introspection enum value
9757
+ */
9758
+ interface IntrospectionEnumValue {
9759
+ name: string;
9760
+ description?: string;
9761
+ isDeprecated: boolean;
9762
+ deprecationReason?: string;
9763
+ }
9764
+ /**
9765
+ * GraphQL introspection directive
9766
+ */
9767
+ interface IntrospectionDirective {
9768
+ name: string;
9769
+ description?: string;
9770
+ locations: string[];
9771
+ args: IntrospectionInputValue[];
9772
+ }
9773
+
9241
9774
  /**
9242
9775
  * PostgreSQL query builder for Fluxbase SDK
9243
9776
  * Inspired by Supabase's PostgREST client
@@ -9925,6 +10458,38 @@ declare class FluxbaseClient<Database = unknown, _SchemaName extends string & ke
9925
10458
  * @category Vector Search
9926
10459
  */
9927
10460
  vector: FluxbaseVector;
10461
+ /**
10462
+ * GraphQL module for executing queries and mutations
10463
+ *
10464
+ * Provides a type-safe interface for the auto-generated GraphQL schema
10465
+ * from your database tables.
10466
+ *
10467
+ * @example
10468
+ * ```typescript
10469
+ * // Execute a query
10470
+ * const { data, errors } = await client.graphql.query(`
10471
+ * query GetUsers($limit: Int) {
10472
+ * users(limit: $limit) {
10473
+ * id
10474
+ * email
10475
+ * }
10476
+ * }
10477
+ * `, { limit: 10 })
10478
+ *
10479
+ * // Execute a mutation
10480
+ * const { data, errors } = await client.graphql.mutation(`
10481
+ * mutation CreateUser($data: UserInput!) {
10482
+ * insertUser(data: $data) {
10483
+ * id
10484
+ * email
10485
+ * }
10486
+ * }
10487
+ * `, { data: { email: 'user@example.com' } })
10488
+ * ```
10489
+ *
10490
+ * @category GraphQL
10491
+ */
10492
+ graphql: FluxbaseGraphQL;
9928
10493
  /**
9929
10494
  * RPC module for calling PostgreSQL functions - Supabase compatible
9930
10495
  *
@@ -10320,4 +10885,4 @@ declare function isBoolean(value: unknown): value is boolean;
10320
10885
  */
10321
10886
  declare function assertType<T>(value: unknown, validator: (v: unknown) => v is T, errorMessage?: string): asserts value is T;
10322
10887
 
10323
- export { type AIChatClientMessage, type AIChatEvent, type AIChatEventType, type AIChatMessageRole, type AIChatOptions, type AIChatServerMessage, type AIChatbot, type AIChatbotSummary, type AIConversation, type AIConversationMessage, type AIProvider, type AIProviderType, type AIUsageStats, type AIUserConversationDetail, type AIUserConversationSummary, type AIUserMessage, type AIUserQueryResult, type AIUserUsageStats, type APIKey, APIKeysManager, type AcceptInvitationRequest, type AcceptInvitationResponse, type AdminAuthResponse, type AdminBucket, type AdminListBucketsResponse, type AdminListObjectsResponse, type AdminLoginRequest, type AdminMeResponse, type AdminRefreshRequest, type AdminRefreshResponse, type AdminSetupRequest, type AdminSetupStatusResponse, type AdminStorageObject, type AdminUser, type AppSettings, AppSettingsManager, type ApplyMigrationRequest, type ApplyPendingRequest, type AuthResponse, type AuthResponseData, type AuthSession, type AuthSettings, AuthSettingsManager, type AuthenticationSettings, type BroadcastCallback, type BroadcastMessage, type BundleOptions, type BundleResult, type ChatbotSpec, type ChunkedUploadSession, type Column, type CreateAIProviderRequest, type CreateAPIKeyRequest, type CreateAPIKeyResponse, type CreateColumnRequest, type CreateFunctionRequest, type CreateInvitationRequest, type CreateInvitationResponse, type CreateMigrationRequest, type CreateOAuthProviderRequest, type CreateOAuthProviderResponse, type CreateSchemaRequest, type CreateSchemaResponse, type CreateTableRequest, type CreateTableResponse, type CreateWebhookRequest, DDLManager, type DataResponse, type DeleteAPIKeyResponse, type DeleteOAuthProviderResponse, type DeleteTableResponse, type DeleteUserResponse, type DeleteWebhookResponse, type DownloadOptions, type DownloadProgress, type EdgeFunction, type EdgeFunctionExecution, type EmailProviderSettings, type EmailSettingOverride, type EmailSettings, EmailSettingsManager, type EmailTemplate, EmailTemplateManager, type EmailTemplateType, type EmbedRequest, type EmbedResponse, type EnrichedUser, type ExecutionLog, type ExecutionLogCallback, type ExecutionLogConfig, type ExecutionLogEvent, type ExecutionLogLevel, ExecutionLogsChannel, type ExecutionType, type FeatureSettings, type FileObject, type FilterOperator, FluxbaseAI, FluxbaseAIChat, FluxbaseAdmin, FluxbaseAdminAI, FluxbaseAdminFunctions, FluxbaseAdminJobs, FluxbaseAdminMigrations, FluxbaseAdminRPC, FluxbaseAdminStorage, FluxbaseAuth, type FluxbaseAuthResponse, FluxbaseClient, type FluxbaseClientOptions, type FluxbaseError, FluxbaseFetch, FluxbaseFunctions, FluxbaseJobs, FluxbaseManagement, FluxbaseOAuth, FluxbaseRPC, FluxbaseRealtime, type FluxbaseResponse, FluxbaseSettings, FluxbaseStorage, FluxbaseVector, type FunctionInvokeOptions, type FunctionSpec, type GetImpersonationResponse, type HealthResponse, type HttpMethod, type ImpersonateAnonRequest, type ImpersonateServiceRequest, type ImpersonateUserRequest, ImpersonationManager, type ImpersonationSession, type ImpersonationTargetUser, type ImpersonationType, type Invitation, InvitationsManager, type InviteUserRequest, type InviteUserResponse, type ListAPIKeysResponse, type ListConversationsOptions, type ListConversationsResult, type ListEmailTemplatesResponse, type ListImpersonationSessionsOptions, type ListImpersonationSessionsResponse, type ListInvitationsOptions, type ListInvitationsResponse, type ListOAuthProvidersResponse, type ListOptions, type ListSchemasResponse, type ListSystemSettingsResponse, type ListTablesResponse, type ListUsersOptions, type ListUsersResponse, type ListWebhookDeliveriesResponse, type ListWebhooksResponse, type MailgunSettings, type Migration, type MigrationExecution, type OAuthProvider, OAuthProviderManager, type OrderBy, type OrderDirection, type PostgresChangesConfig, type PostgrestError, type PostgrestResponse, type PresenceCallback, type PresenceState, QueryBuilder, type QueryFilter, type RPCExecution, type RPCExecutionFilters, type RPCExecutionLog, type RPCExecutionStatus, type RPCInvokeResponse, type RPCProcedure, type RPCProcedureSpec, type RPCProcedureSummary, type RealtimeBroadcastPayload, type RealtimeCallback, type RealtimeChangePayload, RealtimeChannel, type RealtimeChannelConfig, type RealtimeMessage, type RealtimePostgresChangesPayload, type RealtimePresencePayload, type RequestOptions, type ResetUserPasswordResponse, type ResumableDownloadData, type ResumableDownloadOptions, type ResumableUploadOptions, type ResumableUploadProgress, type RevokeAPIKeyResponse, type RevokeInvitationResponse, type RollbackMigrationRequest, type SESSettings, type SMTPSettings, type Schema, SchemaQueryBuilder, type SecuritySettings, type SendEmailRequest, type SendGridSettings, type SessionResponse, SettingsClient, type SignInCredentials, type SignInWith2FAResponse, type SignUpCredentials, type SignedUrlOptions, type SignedUrlResponse, type StartImpersonationResponse, type StopImpersonationResponse, StorageBucket, type StorageObject, type StreamDownloadData, type StreamUploadOptions, type SupabaseAuthResponse, type SupabaseResponse, type SyncChatbotsOptions, type SyncChatbotsResult, type SyncError, type SyncFunctionsOptions, type SyncFunctionsResult, type SyncMigrationsOptions, type SyncMigrationsResult, type SyncRPCOptions, type SyncRPCResult, type SystemSetting, SystemSettingsManager, type Table, type TestEmailSettingsResponse, type TestEmailTemplateRequest, type TestWebhookResponse, type TwoFactorEnableResponse, type TwoFactorSetupResponse, type TwoFactorStatusResponse, type TwoFactorVerifyRequest, type UpdateAIProviderRequest, type UpdateAPIKeyRequest, type UpdateAppSettingsRequest, type UpdateAuthSettingsRequest, type UpdateAuthSettingsResponse, type UpdateConversationOptions, type UpdateEmailProviderSettingsRequest, type UpdateEmailTemplateRequest, type UpdateFunctionRequest, type UpdateMigrationRequest, type UpdateOAuthProviderRequest, type UpdateOAuthProviderResponse, type UpdateRPCProcedureRequest, type UpdateSystemSettingRequest, type UpdateUserAttributes, type UpdateUserRoleRequest, type UpdateWebhookRequest, type UploadOptions, type UploadProgress, type UpsertOptions, type User, type UserResponse, type ValidateInvitationResponse, type VectorMetric, type VectorOrderOptions, type VectorSearchOptions, type VectorSearchResult, type VoidResponse, type WeakPassword, type Webhook, type WebhookDelivery, WebhooksManager, assertType, bundleCode, createClient, denoExternalPlugin, hasPostgrestError, isArray, isAuthError, isAuthSuccess, isBoolean, isFluxbaseError, isFluxbaseSuccess, isNumber, isObject, isPostgrestSuccess, isString, loadImportMap };
10888
+ export { type AIChatClientMessage, type AIChatEvent, type AIChatEventType, type AIChatMessageRole, type AIChatOptions, type AIChatServerMessage, type AIChatbot, type AIChatbotSummary, type AIConversation, type AIConversationMessage, type AIProvider, type AIProviderType, type AIUsageStats, type AIUserConversationDetail, type AIUserConversationSummary, type AIUserMessage, type AIUserQueryResult, type AIUserUsageStats, type APIKey, APIKeysManager, type AcceptInvitationRequest, type AcceptInvitationResponse, type AdminAuthResponse, type AdminBucket, type AdminListBucketsResponse, type AdminListObjectsResponse, type AdminLoginRequest, type AdminMeResponse, type AdminRefreshRequest, type AdminRefreshResponse, type AdminSetupRequest, type AdminSetupStatusResponse, type AdminStorageObject, type AdminUser, type AppSettings, AppSettingsManager, type ApplyMigrationRequest, type ApplyPendingRequest, type AuthResponse, type AuthResponseData, type AuthSession, type AuthSettings, AuthSettingsManager, type AuthenticationSettings, type BroadcastCallback, type BroadcastMessage, type BundleOptions, type BundleResult, type CaptchaConfig, type CaptchaProvider, type ChatbotSpec, type ChunkedUploadSession, type Column, type CreateAIProviderRequest, type CreateAPIKeyRequest, type CreateAPIKeyResponse, type CreateColumnRequest, type CreateFunctionRequest, type CreateInvitationRequest, type CreateInvitationResponse, type CreateMigrationRequest, type CreateOAuthProviderRequest, type CreateOAuthProviderResponse, type CreateSchemaRequest, type CreateSchemaResponse, type CreateTableRequest, type CreateTableResponse, type CreateWebhookRequest, DDLManager, type DataResponse, type DeleteAPIKeyResponse, type DeleteOAuthProviderResponse, type DeleteTableResponse, type DeleteUserResponse, type DeleteWebhookResponse, type DownloadOptions, type DownloadProgress, type EdgeFunction, type EdgeFunctionExecution, type EmailProviderSettings, type EmailSettingOverride, type EmailSettings, EmailSettingsManager, type EmailTemplate, EmailTemplateManager, type EmailTemplateType, type EmbedRequest, type EmbedResponse, type EnrichedUser, type ExecutionLog, type ExecutionLogCallback, type ExecutionLogConfig, type ExecutionLogEvent, type ExecutionLogLevel, ExecutionLogsChannel, type ExecutionType, type FeatureSettings, type FileObject, type FilterOperator, FluxbaseAI, FluxbaseAIChat, FluxbaseAdmin, FluxbaseAdminAI, FluxbaseAdminFunctions, FluxbaseAdminJobs, FluxbaseAdminMigrations, FluxbaseAdminRPC, FluxbaseAdminStorage, FluxbaseAuth, type FluxbaseAuthResponse, FluxbaseClient, type FluxbaseClientOptions, type FluxbaseError, FluxbaseFetch, FluxbaseFunctions, FluxbaseGraphQL, FluxbaseJobs, FluxbaseManagement, FluxbaseOAuth, FluxbaseRPC, FluxbaseRealtime, type FluxbaseResponse, FluxbaseSettings, FluxbaseStorage, FluxbaseVector, type FunctionInvokeOptions, type FunctionSpec, type GetImpersonationResponse, type GraphQLError, type GraphQLErrorLocation, type GraphQLRequestOptions, type GraphQLResponse, type HealthResponse, type HttpMethod, type ImageFitMode, type ImageFormat, type ImpersonateAnonRequest, type ImpersonateServiceRequest, type ImpersonateUserRequest, ImpersonationManager, type ImpersonationSession, type ImpersonationTargetUser, type ImpersonationType, type IntrospectionDirective, type IntrospectionEnumValue, type IntrospectionField, type IntrospectionInputValue, type IntrospectionSchema, type IntrospectionType, type IntrospectionTypeRef, type Invitation, InvitationsManager, type InviteUserRequest, type InviteUserResponse, type ListAPIKeysResponse, type ListConversationsOptions, type ListConversationsResult, type ListEmailTemplatesResponse, type ListImpersonationSessionsOptions, type ListImpersonationSessionsResponse, type ListInvitationsOptions, type ListInvitationsResponse, type ListOAuthProvidersResponse, type ListOptions, type ListSchemasResponse, type ListSystemSettingsResponse, type ListTablesResponse, type ListUsersOptions, type ListUsersResponse, type ListWebhookDeliveriesResponse, type ListWebhooksResponse, type MailgunSettings, type Migration, type MigrationExecution, type OAuthProvider, OAuthProviderManager, type OrderBy, type OrderDirection, type PostgresChangesConfig, type PostgrestError, type PostgrestResponse, type PresenceCallback, type PresenceState, QueryBuilder, type QueryFilter, type RPCExecution, type RPCExecutionFilters, type RPCExecutionLog, type RPCExecutionStatus, type RPCInvokeResponse, type RPCProcedure, type RPCProcedureSpec, type RPCProcedureSummary, type RealtimeBroadcastPayload, type RealtimeCallback, type RealtimeChangePayload, RealtimeChannel, type RealtimeChannelConfig, type RealtimeMessage, type RealtimePostgresChangesPayload, type RealtimePresencePayload, type RequestOptions, type ResetUserPasswordResponse, type ResumableDownloadData, type ResumableDownloadOptions, type ResumableUploadOptions, type ResumableUploadProgress, type RevokeAPIKeyResponse, type RevokeInvitationResponse, type RollbackMigrationRequest, type SAMLLoginOptions, type SAMLLoginResponse, type SAMLProvider, type SAMLProvidersResponse, type SAMLSession, type SESSettings, type SMTPSettings, type Schema, SchemaQueryBuilder, type SecuritySettings, type SendEmailRequest, type SendGridSettings, type SessionResponse, SettingsClient, type SignInCredentials, type SignInWith2FAResponse, type SignUpCredentials, type SignedUrlOptions, type SignedUrlResponse, type StartImpersonationResponse, type StopImpersonationResponse, StorageBucket, type StorageObject, type StreamDownloadData, type StreamUploadOptions, type SupabaseAuthResponse, type SupabaseResponse, type SyncChatbotsOptions, type SyncChatbotsResult, type SyncError, type SyncFunctionsOptions, type SyncFunctionsResult, type SyncMigrationsOptions, type SyncMigrationsResult, type SyncRPCOptions, type SyncRPCResult, type SystemSetting, SystemSettingsManager, type Table, type TestEmailSettingsResponse, type TestEmailTemplateRequest, type TestWebhookResponse, type TransformOptions, type TwoFactorEnableResponse, type TwoFactorSetupResponse, type TwoFactorStatusResponse, type TwoFactorVerifyRequest, type UpdateAIProviderRequest, type UpdateAPIKeyRequest, type UpdateAppSettingsRequest, type UpdateAuthSettingsRequest, type UpdateAuthSettingsResponse, type UpdateConversationOptions, type UpdateEmailProviderSettingsRequest, type UpdateEmailTemplateRequest, type UpdateFunctionRequest, type UpdateMigrationRequest, type UpdateOAuthProviderRequest, type UpdateOAuthProviderResponse, type UpdateRPCProcedureRequest, type UpdateSystemSettingRequest, type UpdateUserAttributes, type UpdateUserRoleRequest, type UpdateWebhookRequest, type UploadOptions, type UploadProgress, type UpsertOptions, type User, type UserResponse, type ValidateInvitationResponse, type VectorMetric, type VectorOrderOptions, type VectorSearchOptions, type VectorSearchResult, type VoidResponse, type WeakPassword, type Webhook, type WebhookDelivery, WebhooksManager, assertType, bundleCode, createClient, denoExternalPlugin, hasPostgrestError, isArray, isAuthError, isAuthSuccess, isBoolean, isFluxbaseError, isFluxbaseSuccess, isNumber, isObject, isPostgrestSuccess, isString, loadImportMap };