@inneropen/marvin-sdk 2.0.1 → 3.0.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 +179 -14
- package/dist/{HttpClient-CLtgQGXH.d.cts → HttpClient-CdF3IHM1.d.cts} +49 -2
- package/dist/{HttpClient-CLtgQGXH.d.ts → HttpClient-CdF3IHM1.d.ts} +49 -2
- package/dist/chunk-SGZG7U7V.js +1015 -0
- package/dist/chunk-WJC4X7TB.js +738 -0
- package/dist/index.cjs +574 -28
- package/dist/index.d.cts +20 -544
- package/dist/index.d.ts +20 -544
- package/dist/index.js +27 -791
- package/dist/marvin-BAslemIz.d.cts +666 -0
- package/dist/marvin-BmbMUJXh.d.ts +666 -0
- package/dist/platform.cjs +511 -55
- package/dist/platform.d.cts +287 -35
- package/dist/platform.d.ts +287 -35
- package/dist/platform.js +282 -45
- package/dist/publish.cjs +1515 -0
- package/dist/publish.d.cts +49 -0
- package/dist/publish.d.ts +49 -0
- package/dist/publish.js +75 -0
- package/dist/types/index.d.cts +46 -1
- package/dist/types/index.d.ts +46 -1
- package/package.json +11 -6
- package/dist/chunk-25F3IF6S.js +0 -396
package/dist/platform.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { H as HttpClient } from './HttpClient-
|
|
1
|
+
import { H as HttpClient } from './HttpClient-CdF3IHM1.cjs';
|
|
2
|
+
import { AuthToken } from './types/index.cjs';
|
|
2
3
|
|
|
3
4
|
interface components {
|
|
4
5
|
schemas: {
|
|
@@ -322,11 +323,6 @@ interface components {
|
|
|
322
323
|
* @enum {string}
|
|
323
324
|
*/
|
|
324
325
|
AuthMethod: "MARVIN" | "LDAP" | "OIDC";
|
|
325
|
-
/** Body_debug_openai_api_admin_debug_openai_post */
|
|
326
|
-
Body_debug_openai_api_admin_debug_openai_post: {
|
|
327
|
-
/** Image */
|
|
328
|
-
image?: string | null;
|
|
329
|
-
};
|
|
330
326
|
/** Body_get_token_api_auth_token_post */
|
|
331
327
|
Body_get_token_api_auth_token_post: {
|
|
332
328
|
/**
|
|
@@ -506,19 +502,6 @@ interface components {
|
|
|
506
502
|
/** Entryids */
|
|
507
503
|
entryIds?: string[] | null;
|
|
508
504
|
};
|
|
509
|
-
/**
|
|
510
|
-
* DebugResponse
|
|
511
|
-
* @description Schema for a standardized response from debugging endpoints.
|
|
512
|
-
*
|
|
513
|
-
* Indicates the success status of a debug operation and provides an optional
|
|
514
|
-
* response message or data string.
|
|
515
|
-
*/
|
|
516
|
-
DebugResponse: {
|
|
517
|
-
/** Success */
|
|
518
|
-
success: boolean;
|
|
519
|
-
/** Response */
|
|
520
|
-
response?: string | null;
|
|
521
|
-
};
|
|
522
505
|
/**
|
|
523
506
|
* EmailInitationResponse
|
|
524
507
|
* @description Schema for the response after attempting to send an email invitation.
|
|
@@ -665,9 +648,15 @@ interface components {
|
|
|
665
648
|
} | null;
|
|
666
649
|
/** Enabled */
|
|
667
650
|
enabled: boolean;
|
|
668
|
-
/**
|
|
651
|
+
/**
|
|
652
|
+
* Createdat
|
|
653
|
+
* Format: date-time
|
|
654
|
+
*/
|
|
669
655
|
createdAt: string;
|
|
670
|
-
/**
|
|
656
|
+
/**
|
|
657
|
+
* Updateat
|
|
658
|
+
* Format: date-time
|
|
659
|
+
*/
|
|
671
660
|
updateAt: string;
|
|
672
661
|
};
|
|
673
662
|
/**
|
|
@@ -943,6 +932,27 @@ interface components {
|
|
|
943
932
|
/** Order */
|
|
944
933
|
order?: number | null;
|
|
945
934
|
};
|
|
935
|
+
/**
|
|
936
|
+
* EntryTypeCapabilities
|
|
937
|
+
* @description Capabilities for a published entry type.
|
|
938
|
+
*/
|
|
939
|
+
EntryTypeCapabilities: {
|
|
940
|
+
/**
|
|
941
|
+
* Publishable
|
|
942
|
+
* @default true
|
|
943
|
+
*/
|
|
944
|
+
publishable: boolean;
|
|
945
|
+
/**
|
|
946
|
+
* Submittable
|
|
947
|
+
* @default false
|
|
948
|
+
*/
|
|
949
|
+
submittable: boolean;
|
|
950
|
+
/**
|
|
951
|
+
* Routable
|
|
952
|
+
* @default true
|
|
953
|
+
*/
|
|
954
|
+
routable: boolean;
|
|
955
|
+
};
|
|
946
956
|
/**
|
|
947
957
|
* EntryTypeCreate
|
|
948
958
|
* @description Schema for creating an entry type.
|
|
@@ -968,6 +978,11 @@ interface components {
|
|
|
968
978
|
* @default false
|
|
969
979
|
*/
|
|
970
980
|
isSystem: boolean;
|
|
981
|
+
/**
|
|
982
|
+
* Isrendered
|
|
983
|
+
* @default false
|
|
984
|
+
*/
|
|
985
|
+
isRendered: boolean;
|
|
971
986
|
/**
|
|
972
987
|
* Schema Json
|
|
973
988
|
* @description Entry type schema definition (EntryTypeSchemaDefinition)
|
|
@@ -975,6 +990,20 @@ interface components {
|
|
|
975
990
|
schema_json?: {
|
|
976
991
|
[key: string]: unknown;
|
|
977
992
|
} | null;
|
|
993
|
+
/**
|
|
994
|
+
* Rendering Json
|
|
995
|
+
* @description Rendering configuration (RenderingDefinition)
|
|
996
|
+
*/
|
|
997
|
+
rendering_json?: {
|
|
998
|
+
[key: string]: unknown;
|
|
999
|
+
} | null;
|
|
1000
|
+
/**
|
|
1001
|
+
* Capabilities Json
|
|
1002
|
+
* @description Behavioral capabilities (CapabilitiesDefinition)
|
|
1003
|
+
*/
|
|
1004
|
+
capabilities_json?: {
|
|
1005
|
+
[key: string]: unknown;
|
|
1006
|
+
} | null;
|
|
978
1007
|
};
|
|
979
1008
|
/**
|
|
980
1009
|
* EntryTypeRead
|
|
@@ -1005,6 +1034,11 @@ interface components {
|
|
|
1005
1034
|
sortOrder: number;
|
|
1006
1035
|
/** Issystem */
|
|
1007
1036
|
isSystem: boolean;
|
|
1037
|
+
/**
|
|
1038
|
+
* Isrendered
|
|
1039
|
+
* @default false
|
|
1040
|
+
*/
|
|
1041
|
+
isRendered: boolean;
|
|
1008
1042
|
/**
|
|
1009
1043
|
* Schemajson
|
|
1010
1044
|
* @description Entry type schema definition (EntryTypeSchemaDefinition)
|
|
@@ -1012,10 +1046,42 @@ interface components {
|
|
|
1012
1046
|
schemaJson?: {
|
|
1013
1047
|
[key: string]: unknown;
|
|
1014
1048
|
} | null;
|
|
1049
|
+
/**
|
|
1050
|
+
* Renderingjson
|
|
1051
|
+
* @description Rendering configuration (RenderingDefinition)
|
|
1052
|
+
*/
|
|
1053
|
+
renderingJson?: {
|
|
1054
|
+
[key: string]: unknown;
|
|
1055
|
+
} | null;
|
|
1056
|
+
/**
|
|
1057
|
+
* Capabilitiesjson
|
|
1058
|
+
* @description Behavioral capabilities (CapabilitiesDefinition)
|
|
1059
|
+
*/
|
|
1060
|
+
capabilitiesJson?: {
|
|
1061
|
+
[key: string]: unknown;
|
|
1062
|
+
} | null;
|
|
1015
1063
|
/** Createdat */
|
|
1016
1064
|
createdAt?: string | null;
|
|
1017
1065
|
/** Updateat */
|
|
1018
1066
|
updateAt?: string | null;
|
|
1067
|
+
/** Warnings */
|
|
1068
|
+
warnings?: string[] | null;
|
|
1069
|
+
};
|
|
1070
|
+
/**
|
|
1071
|
+
* EntryTypeRendering
|
|
1072
|
+
* @description Rendering configuration for a published entry type.
|
|
1073
|
+
*/
|
|
1074
|
+
EntryTypeRendering: {
|
|
1075
|
+
/** Renderer */
|
|
1076
|
+
renderer?: string | null;
|
|
1077
|
+
/** Package */
|
|
1078
|
+
package?: string | null;
|
|
1079
|
+
/** Version */
|
|
1080
|
+
version?: string | null;
|
|
1081
|
+
/** Config */
|
|
1082
|
+
config?: {
|
|
1083
|
+
[key: string]: unknown;
|
|
1084
|
+
} | null;
|
|
1019
1085
|
};
|
|
1020
1086
|
/**
|
|
1021
1087
|
* EntryTypeUpdate
|
|
@@ -1036,6 +1102,8 @@ interface components {
|
|
|
1036
1102
|
sortOrder?: number | null;
|
|
1037
1103
|
/** Issystem */
|
|
1038
1104
|
isSystem?: boolean | null;
|
|
1105
|
+
/** Isrendered */
|
|
1106
|
+
isRendered?: boolean | null;
|
|
1039
1107
|
/**
|
|
1040
1108
|
* Schema Json
|
|
1041
1109
|
* @description Entry type schema definition (EntryTypeSchemaDefinition)
|
|
@@ -1043,6 +1111,20 @@ interface components {
|
|
|
1043
1111
|
schema_json?: {
|
|
1044
1112
|
[key: string]: unknown;
|
|
1045
1113
|
} | null;
|
|
1114
|
+
/**
|
|
1115
|
+
* Rendering Json
|
|
1116
|
+
* @description Rendering configuration (RenderingDefinition)
|
|
1117
|
+
*/
|
|
1118
|
+
rendering_json?: {
|
|
1119
|
+
[key: string]: unknown;
|
|
1120
|
+
} | null;
|
|
1121
|
+
/**
|
|
1122
|
+
* Capabilities Json
|
|
1123
|
+
* @description Behavioral capabilities (CapabilitiesDefinition)
|
|
1124
|
+
*/
|
|
1125
|
+
capabilities_json?: {
|
|
1126
|
+
[key: string]: unknown;
|
|
1127
|
+
} | null;
|
|
1046
1128
|
};
|
|
1047
1129
|
/**
|
|
1048
1130
|
* EntryUpdate
|
|
@@ -2096,6 +2178,7 @@ interface components {
|
|
|
2096
2178
|
title: string;
|
|
2097
2179
|
/** Entrytype */
|
|
2098
2180
|
entryType: string;
|
|
2181
|
+
entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
|
|
2099
2182
|
/** Summary */
|
|
2100
2183
|
summary?: string | null;
|
|
2101
2184
|
/** Publishedat */
|
|
@@ -2137,6 +2220,7 @@ interface components {
|
|
|
2137
2220
|
title: string;
|
|
2138
2221
|
/** Entrytype */
|
|
2139
2222
|
entryType: string;
|
|
2223
|
+
entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
|
|
2140
2224
|
/** Summary */
|
|
2141
2225
|
summary?: string | null;
|
|
2142
2226
|
/** Data */
|
|
@@ -2167,6 +2251,56 @@ interface components {
|
|
|
2167
2251
|
/** Order */
|
|
2168
2252
|
order?: number | null;
|
|
2169
2253
|
};
|
|
2254
|
+
/**
|
|
2255
|
+
* PublishedEntryTypeInfo
|
|
2256
|
+
* @description Flattened entry type rendering and capabilities info for published entries.
|
|
2257
|
+
*/
|
|
2258
|
+
PublishedEntryTypeInfo: {
|
|
2259
|
+
/** Slug */
|
|
2260
|
+
slug: string;
|
|
2261
|
+
/** Renderer */
|
|
2262
|
+
renderer?: string | null;
|
|
2263
|
+
/** Package */
|
|
2264
|
+
package?: string | null;
|
|
2265
|
+
/** Version */
|
|
2266
|
+
version?: string | null;
|
|
2267
|
+
/** Config */
|
|
2268
|
+
config?: {
|
|
2269
|
+
[key: string]: unknown;
|
|
2270
|
+
} | null;
|
|
2271
|
+
/**
|
|
2272
|
+
* Publishable
|
|
2273
|
+
* @default true
|
|
2274
|
+
*/
|
|
2275
|
+
publishable: boolean;
|
|
2276
|
+
/**
|
|
2277
|
+
* Submittable
|
|
2278
|
+
* @default false
|
|
2279
|
+
*/
|
|
2280
|
+
submittable: boolean;
|
|
2281
|
+
/**
|
|
2282
|
+
* Routable
|
|
2283
|
+
* @default true
|
|
2284
|
+
*/
|
|
2285
|
+
routable: boolean;
|
|
2286
|
+
};
|
|
2287
|
+
/**
|
|
2288
|
+
* PublishedEntryTypeRead
|
|
2289
|
+
* @description Schema for entry types in the publishing API.
|
|
2290
|
+
*/
|
|
2291
|
+
PublishedEntryTypeRead: {
|
|
2292
|
+
/** Slug */
|
|
2293
|
+
slug: string;
|
|
2294
|
+
/** Name */
|
|
2295
|
+
name: string;
|
|
2296
|
+
/**
|
|
2297
|
+
* Isrendered
|
|
2298
|
+
* @default false
|
|
2299
|
+
*/
|
|
2300
|
+
isRendered: boolean;
|
|
2301
|
+
rendering?: components["schemas"]["EntryTypeRendering"] | null;
|
|
2302
|
+
capabilities?: components["schemas"]["EntryTypeCapabilities"] | null;
|
|
2303
|
+
};
|
|
2170
2304
|
/**
|
|
2171
2305
|
* PublishedFormRead
|
|
2172
2306
|
* @description Schema for published forms in the publishing API.
|
|
@@ -3396,9 +3530,19 @@ declare class ResourcesModule {
|
|
|
3396
3530
|
* CRUD operations and file upload for assets
|
|
3397
3531
|
*/
|
|
3398
3532
|
|
|
3533
|
+
interface FileUploadOptions {
|
|
3534
|
+
/** Maximum file size in bytes (default: 100MB) */
|
|
3535
|
+
maxFileSize?: number;
|
|
3536
|
+
/** Allowed MIME types (if not provided, all types allowed) */
|
|
3537
|
+
allowedMimeTypes?: string[];
|
|
3538
|
+
}
|
|
3399
3539
|
declare class AssetsModule {
|
|
3400
3540
|
private http;
|
|
3401
3541
|
constructor(http: HttpClient);
|
|
3542
|
+
/**
|
|
3543
|
+
* Validate file before upload
|
|
3544
|
+
*/
|
|
3545
|
+
private validateFile;
|
|
3402
3546
|
/**
|
|
3403
3547
|
* List all assets
|
|
3404
3548
|
*/
|
|
@@ -3412,9 +3556,22 @@ declare class AssetsModule {
|
|
|
3412
3556
|
*
|
|
3413
3557
|
* @param file - The file to upload (File or Blob)
|
|
3414
3558
|
* @param metadata - Asset metadata (slug, name, altText, description, metadata)
|
|
3559
|
+
* @param options - Upload options (file size limits, allowed types)
|
|
3415
3560
|
* @returns The created asset with extracted metadata
|
|
3561
|
+
*
|
|
3562
|
+
* @example
|
|
3563
|
+
* ```typescript
|
|
3564
|
+
* // Upload with default limits (100MB, all types)
|
|
3565
|
+
* const asset = await assets.upload(file, { slug: 'my-image', name: 'My Image' });
|
|
3566
|
+
*
|
|
3567
|
+
* // Upload with restrictions
|
|
3568
|
+
* const asset = await assets.upload(file,
|
|
3569
|
+
* { slug: 'avatar', name: 'Avatar' },
|
|
3570
|
+
* { maxFileSize: 5 * 1024 * 1024, allowedMimeTypes: ['image/*'] }
|
|
3571
|
+
* );
|
|
3572
|
+
* ```
|
|
3416
3573
|
*/
|
|
3417
|
-
upload(file: File | Blob, metadata: PlatformAssetUpload): Promise<PlatformAsset>;
|
|
3574
|
+
upload(file: File | Blob, metadata: PlatformAssetUpload, options?: FileUploadOptions): Promise<PlatformAsset>;
|
|
3418
3575
|
/**
|
|
3419
3576
|
* Update an asset (editable fields only: slug, name, altText, description, metadata)
|
|
3420
3577
|
*/
|
|
@@ -3423,6 +3580,11 @@ declare class AssetsModule {
|
|
|
3423
3580
|
* Delete an asset (removes file from storage and database)
|
|
3424
3581
|
*/
|
|
3425
3582
|
delete(id: string): Promise<void>;
|
|
3583
|
+
/**
|
|
3584
|
+
* Get download URL for an asset file
|
|
3585
|
+
* Use this to create download links or fetch the file directly
|
|
3586
|
+
*/
|
|
3587
|
+
getDownloadUrl(id: string, baseUrl?: string): string;
|
|
3426
3588
|
}
|
|
3427
3589
|
|
|
3428
3590
|
/**
|
|
@@ -3475,7 +3637,10 @@ interface EntryTypeCreate {
|
|
|
3475
3637
|
icon?: string;
|
|
3476
3638
|
color?: string;
|
|
3477
3639
|
sortOrder?: number;
|
|
3640
|
+
isRendered?: boolean;
|
|
3478
3641
|
schemaJson?: Record<string, unknown>;
|
|
3642
|
+
renderingJson?: Record<string, unknown>;
|
|
3643
|
+
capabilitiesJson?: Record<string, unknown>;
|
|
3479
3644
|
}
|
|
3480
3645
|
interface EntryTypeUpdate {
|
|
3481
3646
|
name?: string;
|
|
@@ -3484,7 +3649,10 @@ interface EntryTypeUpdate {
|
|
|
3484
3649
|
icon?: string;
|
|
3485
3650
|
color?: string;
|
|
3486
3651
|
sortOrder?: number;
|
|
3652
|
+
isRendered?: boolean;
|
|
3487
3653
|
schemaJson?: Record<string, unknown>;
|
|
3654
|
+
renderingJson?: Record<string, unknown>;
|
|
3655
|
+
capabilitiesJson?: Record<string, unknown>;
|
|
3488
3656
|
}
|
|
3489
3657
|
declare class EntryTypesModule {
|
|
3490
3658
|
private http;
|
|
@@ -3571,11 +3739,21 @@ interface WorkspaceUpdate {
|
|
|
3571
3739
|
name?: string;
|
|
3572
3740
|
description?: string | null;
|
|
3573
3741
|
}
|
|
3742
|
+
/**
|
|
3743
|
+
* Workspace preferences - dynamic key-value store
|
|
3744
|
+
* Common keys include: theme, locale, notifications, etc.
|
|
3745
|
+
*/
|
|
3574
3746
|
interface WorkspacePreferences {
|
|
3575
|
-
|
|
3747
|
+
theme?: string;
|
|
3748
|
+
locale?: string;
|
|
3749
|
+
notifications?: boolean;
|
|
3750
|
+
[key: string]: unknown;
|
|
3576
3751
|
}
|
|
3577
3752
|
interface WorkspacePreferencesUpdate {
|
|
3578
|
-
|
|
3753
|
+
theme?: string;
|
|
3754
|
+
locale?: string;
|
|
3755
|
+
notifications?: boolean;
|
|
3756
|
+
[key: string]: unknown;
|
|
3579
3757
|
}
|
|
3580
3758
|
declare class WorkspacesModule {
|
|
3581
3759
|
private http;
|
|
@@ -3609,6 +3787,13 @@ declare class WorkspacesModule {
|
|
|
3609
3787
|
* Delete a workspace (requires SUPER_ADMIN)
|
|
3610
3788
|
*/
|
|
3611
3789
|
delete(id: string, force?: boolean): Promise<void>;
|
|
3790
|
+
/**
|
|
3791
|
+
* Export workspace data as JSON (collections, entry types, entries, site config)
|
|
3792
|
+
*/
|
|
3793
|
+
export(options?: {
|
|
3794
|
+
includeSystemTypes?: boolean;
|
|
3795
|
+
pretty?: boolean;
|
|
3796
|
+
}): Promise<Record<string, unknown>>;
|
|
3612
3797
|
/**
|
|
3613
3798
|
* Get workspace preferences
|
|
3614
3799
|
*/
|
|
@@ -3657,7 +3842,19 @@ declare class InvitesModule {
|
|
|
3657
3842
|
delete(tokenId: string): Promise<void>;
|
|
3658
3843
|
/**
|
|
3659
3844
|
* Generate invitation URL from a token
|
|
3660
|
-
*
|
|
3845
|
+
*
|
|
3846
|
+
* @param token - Invitation token
|
|
3847
|
+
* @param baseUrl - Base URL for the frontend (required in browser environments)
|
|
3848
|
+
* @returns Full invitation URL
|
|
3849
|
+
*
|
|
3850
|
+
* @example
|
|
3851
|
+
* ```typescript
|
|
3852
|
+
* // Node.js (can use env vars)
|
|
3853
|
+
* const url = invites.getInvitationUrl(token);
|
|
3854
|
+
*
|
|
3855
|
+
* // Browser (must provide baseUrl)
|
|
3856
|
+
* const url = invites.getInvitationUrl(token, 'https://app.example.com');
|
|
3857
|
+
* ```
|
|
3661
3858
|
*/
|
|
3662
3859
|
getInvitationUrl(token: string, baseUrl?: string): string;
|
|
3663
3860
|
}
|
|
@@ -3743,6 +3940,10 @@ interface WebhookUpdate {
|
|
|
3743
3940
|
declare class WebhooksModule {
|
|
3744
3941
|
private http;
|
|
3745
3942
|
constructor(http: HttpClient);
|
|
3943
|
+
/**
|
|
3944
|
+
* Validate webhook URL to prevent SSRF attacks
|
|
3945
|
+
*/
|
|
3946
|
+
private validateWebhookUrl;
|
|
3746
3947
|
/**
|
|
3747
3948
|
* List all webhooks for the current workspace
|
|
3748
3949
|
*/
|
|
@@ -3753,10 +3954,12 @@ declare class WebhooksModule {
|
|
|
3753
3954
|
get(id: string): Promise<Webhook>;
|
|
3754
3955
|
/**
|
|
3755
3956
|
* Create a new webhook
|
|
3957
|
+
* Validates URL to prevent SSRF attacks
|
|
3756
3958
|
*/
|
|
3757
3959
|
create(data: WebhookCreate): Promise<Webhook>;
|
|
3758
3960
|
/**
|
|
3759
3961
|
* Update a webhook
|
|
3962
|
+
* Validates URL if provided to prevent SSRF attacks
|
|
3760
3963
|
*/
|
|
3761
3964
|
update(id: string, data: WebhookUpdate): Promise<Webhook>;
|
|
3762
3965
|
/**
|
|
@@ -3836,7 +4039,22 @@ declare class AdminUsersModule {
|
|
|
3836
4039
|
*/
|
|
3837
4040
|
|
|
3838
4041
|
type AdminAboutInfo = components['schemas']['AdminAboutInfo'];
|
|
4042
|
+
/**
|
|
4043
|
+
* Email settings returned from API (read-only)
|
|
4044
|
+
* Password is never returned for security reasons
|
|
4045
|
+
*/
|
|
3839
4046
|
interface EmailSettings {
|
|
4047
|
+
host?: string;
|
|
4048
|
+
port?: number;
|
|
4049
|
+
username?: string;
|
|
4050
|
+
from?: string;
|
|
4051
|
+
useTls?: boolean;
|
|
4052
|
+
}
|
|
4053
|
+
/**
|
|
4054
|
+
* Email settings for updates (write-only)
|
|
4055
|
+
* Password can be provided to update settings
|
|
4056
|
+
*/
|
|
4057
|
+
interface EmailSettingsUpdate {
|
|
3840
4058
|
host?: string;
|
|
3841
4059
|
port?: number;
|
|
3842
4060
|
username?: string;
|
|
@@ -3852,6 +4070,18 @@ interface SystemStatistics {
|
|
|
3852
4070
|
resources?: number;
|
|
3853
4071
|
assets?: number;
|
|
3854
4072
|
}
|
|
4073
|
+
interface StartupInfo {
|
|
4074
|
+
version: string;
|
|
4075
|
+
api_port: number;
|
|
4076
|
+
api_docs: boolean;
|
|
4077
|
+
database_url: string;
|
|
4078
|
+
database_provider: string;
|
|
4079
|
+
default_group?: string;
|
|
4080
|
+
allow_signup: boolean;
|
|
4081
|
+
theme?: string;
|
|
4082
|
+
custom_middleware?: string[];
|
|
4083
|
+
[key: string]: unknown;
|
|
4084
|
+
}
|
|
3855
4085
|
declare class AdminSystemModule {
|
|
3856
4086
|
private http;
|
|
3857
4087
|
constructor(http: HttpClient);
|
|
@@ -3868,7 +4098,7 @@ declare class AdminSystemModule {
|
|
|
3868
4098
|
/**
|
|
3869
4099
|
* Get startup information
|
|
3870
4100
|
*/
|
|
3871
|
-
getStartupInfo(): Promise<
|
|
4101
|
+
getStartupInfo(): Promise<StartupInfo>;
|
|
3872
4102
|
/**
|
|
3873
4103
|
* Get system statistics
|
|
3874
4104
|
*/
|
|
@@ -3879,8 +4109,9 @@ declare class AdminSystemModule {
|
|
|
3879
4109
|
getEmailSettings(): Promise<EmailSettings>;
|
|
3880
4110
|
/**
|
|
3881
4111
|
* Update email settings
|
|
4112
|
+
* Note: Password field is write-only and will not be returned in response
|
|
3882
4113
|
*/
|
|
3883
|
-
updateEmailSettings(data:
|
|
4114
|
+
updateEmailSettings(data: EmailSettingsUpdate): Promise<EmailSettings>;
|
|
3884
4115
|
}
|
|
3885
4116
|
|
|
3886
4117
|
/**
|
|
@@ -4138,10 +4369,6 @@ declare class EventLogModule {
|
|
|
4138
4369
|
* Authenticated session management (logout, refresh)
|
|
4139
4370
|
*/
|
|
4140
4371
|
|
|
4141
|
-
interface AuthToken {
|
|
4142
|
-
accessToken: string;
|
|
4143
|
-
tokenType: string;
|
|
4144
|
-
}
|
|
4145
4372
|
declare class AuthModule {
|
|
4146
4373
|
private http;
|
|
4147
4374
|
constructor(http: HttpClient);
|
|
@@ -4212,7 +4439,7 @@ interface EmailTemplateSummary {
|
|
|
4212
4439
|
description?: string;
|
|
4213
4440
|
enabled: boolean;
|
|
4214
4441
|
created_at: string;
|
|
4215
|
-
|
|
4442
|
+
updated_at: string;
|
|
4216
4443
|
}
|
|
4217
4444
|
interface EmailTemplateRead extends EmailTemplateSummary {
|
|
4218
4445
|
subject: string;
|
|
@@ -4366,6 +4593,13 @@ declare class ScheduledTasksModule {
|
|
|
4366
4593
|
declare class FormsModule {
|
|
4367
4594
|
private http;
|
|
4368
4595
|
constructor(http: HttpClient);
|
|
4596
|
+
/**
|
|
4597
|
+
* Validate form submission data
|
|
4598
|
+
* - Prevents XSS by checking for script tags
|
|
4599
|
+
* - Validates data is a proper object
|
|
4600
|
+
* - Checks for reasonable size limits
|
|
4601
|
+
*/
|
|
4602
|
+
private validateFormData;
|
|
4369
4603
|
/**
|
|
4370
4604
|
* List all forms
|
|
4371
4605
|
*/
|
|
@@ -4396,6 +4630,7 @@ declare class FormsModule {
|
|
|
4396
4630
|
getPublishedForm(slug: string): Promise<PlatformForm>;
|
|
4397
4631
|
/**
|
|
4398
4632
|
* Submit data to a published form (Publishing API - public access)
|
|
4633
|
+
* Validates data before submission to prevent XSS and malicious content
|
|
4399
4634
|
*/
|
|
4400
4635
|
submitForm(slug: string, data: Record<string, unknown>): Promise<PlatformFormSubmission>;
|
|
4401
4636
|
}
|
|
@@ -4407,10 +4642,11 @@ declare class FormsModule {
|
|
|
4407
4642
|
*/
|
|
4408
4643
|
|
|
4409
4644
|
interface PlatformClientConfig {
|
|
4410
|
-
apiUrl
|
|
4645
|
+
apiUrl?: string;
|
|
4411
4646
|
userToken?: string;
|
|
4412
4647
|
credentials?: RequestCredentials;
|
|
4413
4648
|
}
|
|
4649
|
+
declare function createPlatformConfigFromEnv(overrides?: Partial<PlatformClientConfig>): PlatformClientConfig;
|
|
4414
4650
|
declare class PlatformClient extends HttpClient {
|
|
4415
4651
|
entries: EntriesModule;
|
|
4416
4652
|
collections: CollectionsModule;
|
|
@@ -4438,7 +4674,23 @@ declare class PlatformClient extends HttpClient {
|
|
|
4438
4674
|
}
|
|
4439
4675
|
/**
|
|
4440
4676
|
* Create a Platform API client
|
|
4677
|
+
*
|
|
4678
|
+
* @example
|
|
4679
|
+
* ```ts
|
|
4680
|
+
* // From environment (MARVIN_API_URL, MARVIN_USER_TOKEN)
|
|
4681
|
+
* const platform = createPlatformClient();
|
|
4682
|
+
*
|
|
4683
|
+
* // With explicit user token (for programmatic admin)
|
|
4684
|
+
* const platform = createPlatformClient({
|
|
4685
|
+
* userToken: 'user-token-here'
|
|
4686
|
+
* });
|
|
4687
|
+
*
|
|
4688
|
+
* // Browser with session cookies (admin UI)
|
|
4689
|
+
* const platform = createPlatformClient({
|
|
4690
|
+
* credentials: 'include'
|
|
4691
|
+
* });
|
|
4692
|
+
* ```
|
|
4441
4693
|
*/
|
|
4442
|
-
declare function createPlatformClient(config
|
|
4694
|
+
declare function createPlatformClient(config?: Partial<PlatformClientConfig>): PlatformClient;
|
|
4443
4695
|
|
|
4444
|
-
export { APIClientsModule, type AdminAboutInfo, AdminMaintenanceModule, AdminSystemModule, AdminUsersModule, type ApiToken, type ApiTokenCreate, type ApiTokenWithToken, type AppTheme, AssetsModule, AuthModule,
|
|
4696
|
+
export { APIClientsModule, type AdminAboutInfo, AdminMaintenanceModule, AdminSystemModule, AdminUsersModule, type ApiToken, type ApiTokenCreate, type ApiTokenWithToken, type AppTheme, AssetsModule, AuthModule, CollectionsModule, type EmailInvitationRequest, type EmailSettings, type EmailSettingsUpdate, type EmailTemplateCreate, type EmailTemplateRead, type EmailTemplateSummary, type EmailTemplateUpdate, EmailTemplatesClient, EntriesModule, EntryTypesModule, type EventLogEntry, EventLogModule, type EventLogQueryParams, type EventLogSummary, type EventOption, EventsModule, FormsModule, type InviteTokenCreate, type InviteTokenPagination, type InviteTokenSummary, InvitesModule, type MaintenanceStorageDetails, type MaintenanceSummary, type Notification, type NotificationCreate, type NotificationUpdate, NotificationsModule, type PasswordChange, type PasswordResetTokenRequest, type PasswordResetTokenResponse, type PlatformAPIClient, type PlatformAPIClientCreate, type PlatformAPIClientUpdate, type PlatformAPIClientWithToken, type PlatformAsset, type PlatformAssetUpdate, PlatformClient, type PlatformClientConfig, type PlatformCollection, type PlatformCollectionCreate, type PlatformCollectionUpdate, type PlatformEntry, type PlatformEntryCreate, type PlatformEntryType, type PlatformEntryUpdate, type PlatformForm, type PlatformFormCreate, type PlatformFormSubmission, type PlatformFormUpdate, type PlatformResource, type PlatformResourceCreate, type PlatformResourceUpdate, type PlatformWorkspaceMember, type PlatformWorkspaceMemberCreate, type PlatformWorkspaceMemberUpdate, ResourcesModule, type ScheduledTask, type ScheduledTaskCreate, type ScheduledTaskExecutionLog, type ScheduledTaskUpdate, ScheduledTasksModule, type StartupInfo, type SystemStatistics, type TaskTypeInfo, type TestEmailRequest, type TestEmailResponse, ThemeModule, type UnlockUserRequest, type User, type UserCreate, UserModule, type UserPagination, type UserProfile, type UserProfileUpdate, type UserSummary, type UserUpdate, type Webhook, type WebhookCreate, type WebhookMethod, type WebhookPagination, type WebhookUpdate, WebhooksModule, type Workspace, type WorkspaceActivationRequest, type WorkspaceCreate, WorkspaceMembersModule, type WorkspacePreferences, type WorkspacePreferencesUpdate, type WorkspaceUpdate, type WorkspaceWithMembership, WorkspacesModule, createPlatformClient, createPlatformConfigFromEnv };
|