tempest-express-sdk 0.24.0 → 0.25.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 +1 -1
- package/dist/{chunk-6KJTKSG5.js → chunk-TIW2KPT2.js} +3 -3
- package/dist/{chunk-6KJTKSG5.js.map → chunk-TIW2KPT2.js.map} +1 -1
- package/dist/cli.cjs +1 -1
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/index.cjs +398 -75
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +281 -119
- package/dist/index.d.ts +281 -119
- package/dist/index.js +396 -77
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export { z } from 'zod';
|
|
3
3
|
import * as tempest_db_js from 'tempest-db-js';
|
|
4
|
-
import { Model, ModelClass, BaseRepository, WhereInput, InferModel, InferInsert, PaginationFilter as PaginationFilter$1, PaginationResult, AsyncDriver,
|
|
4
|
+
import { Model, ModelClass, BaseRepository, WhereInput, InferModel, InferInsert, PaginationFilter as PaginationFilter$1, PaginationResult, AsyncDriver, AsyncSession, Column, AsyncEngine } from 'tempest-db-js';
|
|
5
5
|
export { AsyncDriver, AsyncEngine, AsyncResult, AsyncSession, BaseRepository, BelongsTo, ColType, Column, ColumnFlags, CompiledQuery, CondNode, Condition, DeleteBuilder, DeleteNode, Dialect, EngineOptions, Executable, HasMany, InferInsert, InferModel, InsertBuilder, InsertNode, Model, ModelClass, NoResultError, NodeSqliteDriver, Operator, OrderTerm, PaginationResult, ParsedDatabaseUrl, PostgresDialect, QueryNode, RecordNotFound, Relation, RelationValue, PaginationFilter as RepositoryPaginationFilter, Returning, RowOf, SelectBuilder, SelectNode, SortDirection, SqliteDialect, SyncEngine, SyncSession, UpdateBuilder, UpdateNode, WhereArg, WhereInput, WithRelations, and, belongsTo, column, columnsOf, createEngine, createSyncEngine, del, detectDialect, getDialect, hasMany, insert, join, loadRelations, not, or, parseDatabaseUrl, select, sql, update } from 'tempest-db-js';
|
|
6
6
|
import { Request, Response as Response$1, RequestHandler, Router, ErrorRequestHandler, Express } from 'express';
|
|
7
7
|
import * as ws from 'ws';
|
|
@@ -3492,6 +3492,216 @@ declare class MessagingHub {
|
|
|
3492
3492
|
broadcast(channel: string, recipients: string[], text: string, options?: BroadcastOptions): Promise<BroadcastResult[]>;
|
|
3493
3493
|
}
|
|
3494
3494
|
|
|
3495
|
+
/**
|
|
3496
|
+
* Signed-cookie sessions for the admin panel, mirroring `admin.session`.
|
|
3497
|
+
*
|
|
3498
|
+
* The panel's session is **stateless**: the principal id, display name, CSRF
|
|
3499
|
+
* token and expiry travel in the cookie itself, signed with HMAC-SHA256 over
|
|
3500
|
+
* the caller's secret. Nothing is kept server-side, so the panel survives a
|
|
3501
|
+
* restart and works across replicas without a shared store — the property that
|
|
3502
|
+
* matters most for an operator tool that is used in bursts and left open.
|
|
3503
|
+
*
|
|
3504
|
+
* The CSRF token lives inside the session payload, so every write form can
|
|
3505
|
+
* carry it and the server compares it against the cookie it already trusts.
|
|
3506
|
+
*/
|
|
3507
|
+
|
|
3508
|
+
/** The payload carried by the admin session cookie. */
|
|
3509
|
+
interface AdminSession {
|
|
3510
|
+
/** Stable id of the authenticated principal. */
|
|
3511
|
+
subject: string;
|
|
3512
|
+
/** Display name shown in the header. */
|
|
3513
|
+
displayName: string;
|
|
3514
|
+
/** Token every write form echoes back for CSRF validation. */
|
|
3515
|
+
csrfToken: string;
|
|
3516
|
+
/** Expiry, in epoch seconds. */
|
|
3517
|
+
expiresAt: number;
|
|
3518
|
+
/**
|
|
3519
|
+
* `true` once the second factor was accepted. Sessions issued for a
|
|
3520
|
+
* principal without MFA are complete from the start.
|
|
3521
|
+
*/
|
|
3522
|
+
mfaPassed: boolean;
|
|
3523
|
+
}
|
|
3524
|
+
/** Options for {@link AdminSessionStore}. */
|
|
3525
|
+
interface AdminSessionStoreOptions {
|
|
3526
|
+
/** HMAC key signing the cookie. At least 32 characters. */
|
|
3527
|
+
secret: string;
|
|
3528
|
+
/** Cookie name. Default `tempest_admin_session`. */
|
|
3529
|
+
cookieName?: string;
|
|
3530
|
+
/** Session lifetime in seconds. Default `28800` (8 hours). */
|
|
3531
|
+
maxAgeSeconds?: number;
|
|
3532
|
+
/** Send the cookie with `Secure` (HTTPS only). Default `true`. */
|
|
3533
|
+
cookieSecure?: boolean;
|
|
3534
|
+
/** Cookie `Path`. Default `/`. */
|
|
3535
|
+
cookiePath?: string;
|
|
3536
|
+
}
|
|
3537
|
+
/**
|
|
3538
|
+
* Issues, verifies and clears the admin session cookie.
|
|
3539
|
+
*
|
|
3540
|
+
* The cookie value is `<base64url payload>.<base64url signature>`; a payload
|
|
3541
|
+
* whose signature does not verify, or whose expiry has passed, resolves to
|
|
3542
|
+
* `null` — an operator with a tampered or stale cookie is simply logged out.
|
|
3543
|
+
*/
|
|
3544
|
+
declare class AdminSessionStore {
|
|
3545
|
+
private readonly secret;
|
|
3546
|
+
private readonly cookieName;
|
|
3547
|
+
private readonly maxAgeSeconds;
|
|
3548
|
+
private readonly cookieSecure;
|
|
3549
|
+
private readonly cookiePath;
|
|
3550
|
+
/**
|
|
3551
|
+
* Build the store.
|
|
3552
|
+
*
|
|
3553
|
+
* @param options - Secret, cookie name, lifetime and cookie flags.
|
|
3554
|
+
* @throws Error When the secret is shorter than 32 characters.
|
|
3555
|
+
*/
|
|
3556
|
+
constructor(options: AdminSessionStoreOptions);
|
|
3557
|
+
/**
|
|
3558
|
+
* Sign a payload.
|
|
3559
|
+
*
|
|
3560
|
+
* @param payload - The base64url payload to sign.
|
|
3561
|
+
* @returns The base64url signature.
|
|
3562
|
+
*/
|
|
3563
|
+
private sign;
|
|
3564
|
+
/**
|
|
3565
|
+
* Mint a fresh session for an authenticated principal.
|
|
3566
|
+
*
|
|
3567
|
+
* @param subject - The principal id.
|
|
3568
|
+
* @param displayName - The name shown in the header.
|
|
3569
|
+
* @param mfaPassed - Whether the second factor is already satisfied.
|
|
3570
|
+
* @returns The new session payload (not yet written to a response).
|
|
3571
|
+
*/
|
|
3572
|
+
issue(subject: string, displayName: string, mfaPassed?: boolean): AdminSession;
|
|
3573
|
+
/**
|
|
3574
|
+
* Read and verify the session carried by a request.
|
|
3575
|
+
*
|
|
3576
|
+
* @param req - The inbound request.
|
|
3577
|
+
* @returns The session, or `null` when absent, tampered with or expired.
|
|
3578
|
+
*/
|
|
3579
|
+
load(req: Request): AdminSession | null;
|
|
3580
|
+
/**
|
|
3581
|
+
* Write a session to the response as a signed cookie.
|
|
3582
|
+
*
|
|
3583
|
+
* @param res - The outbound response.
|
|
3584
|
+
* @param session - The session to persist.
|
|
3585
|
+
*/
|
|
3586
|
+
save(res: Response$1, session: AdminSession): void;
|
|
3587
|
+
/**
|
|
3588
|
+
* Drop the session cookie.
|
|
3589
|
+
*
|
|
3590
|
+
* @param res - The outbound response.
|
|
3591
|
+
*/
|
|
3592
|
+
clear(res: Response$1): void;
|
|
3593
|
+
/**
|
|
3594
|
+
* Render a `Set-Cookie` value with the configured flags.
|
|
3595
|
+
*
|
|
3596
|
+
* @param value - The cookie value.
|
|
3597
|
+
* @param maxAge - Lifetime in seconds (`0` expires it immediately).
|
|
3598
|
+
* @returns The header value.
|
|
3599
|
+
*/
|
|
3600
|
+
private cookie;
|
|
3601
|
+
}
|
|
3602
|
+
/**
|
|
3603
|
+
* Compare a submitted CSRF token against the session's, in constant time.
|
|
3604
|
+
*
|
|
3605
|
+
* @param session - The active session.
|
|
3606
|
+
* @param submitted - The `csrf_token` field from the form body.
|
|
3607
|
+
* @returns `true` when the tokens match.
|
|
3608
|
+
*/
|
|
3609
|
+
declare function csrfTokenMatches(session: AdminSession, submitted: unknown): boolean;
|
|
3610
|
+
|
|
3611
|
+
/**
|
|
3612
|
+
* Custom admin actions — operator-defined bulk operations, mirroring
|
|
3613
|
+
* `admin.actions`.
|
|
3614
|
+
*
|
|
3615
|
+
* The panel ships three built-in bulk operations (activate / deactivate /
|
|
3616
|
+
* delete). Anything domain-specific — "send welcome email", "mark as shipped",
|
|
3617
|
+
* "recalculate totals" — is a *custom action*: a handler registered on an
|
|
3618
|
+
* {@link AdminModel} through `actions`, which shows up in the list view's
|
|
3619
|
+
* bulk-action dropdown and runs against the checked rows.
|
|
3620
|
+
*
|
|
3621
|
+
* ```ts
|
|
3622
|
+
* const sendWelcome = adminAction(
|
|
3623
|
+
* { label: "Send welcome email" },
|
|
3624
|
+
* async ({ ids, repository }) => {
|
|
3625
|
+
* const users = await repository.list({ id: { in: ids } });
|
|
3626
|
+
* for (const user of users) await mailer.sendWelcome(user.email);
|
|
3627
|
+
* return { message: `Sent ${users.length} welcome emails.` };
|
|
3628
|
+
* },
|
|
3629
|
+
* );
|
|
3630
|
+
*
|
|
3631
|
+
* site.register(new AdminModel({ model: UserModel, actions: [sendWelcome] }));
|
|
3632
|
+
* ```
|
|
3633
|
+
*
|
|
3634
|
+
* The Python SDK attaches this metadata with an `@admin_action` decorator.
|
|
3635
|
+
* Here {@link adminAction} returns the descriptor instead: the handler stays a
|
|
3636
|
+
* plain function you can call and unit-test directly (`action.handler(ctx)`),
|
|
3637
|
+
* and there is no decorator syntax to enable in a consumer's build.
|
|
3638
|
+
*/
|
|
3639
|
+
|
|
3640
|
+
/** Banner style a custom action's message is flashed with. */
|
|
3641
|
+
type AdminActionCategory = "success" | "error" | "warning";
|
|
3642
|
+
/** Everything a custom action handler needs to do its work. */
|
|
3643
|
+
interface AdminActionContext<C extends ModelClass = ModelClass> {
|
|
3644
|
+
/** Identity values of the rows the operator checked. */
|
|
3645
|
+
ids: string[];
|
|
3646
|
+
/** Repository for this admin's model, bound to the request's DB session. */
|
|
3647
|
+
repository: BaseRepository<C>;
|
|
3648
|
+
/** The request's DB session, for work beyond the repository. */
|
|
3649
|
+
dbSession: AsyncSession;
|
|
3650
|
+
/** The inbound request. */
|
|
3651
|
+
request: Request;
|
|
3652
|
+
/** The authenticated admin session. */
|
|
3653
|
+
session: AdminSession;
|
|
3654
|
+
/** The resolved admin principal that triggered the action. */
|
|
3655
|
+
principal: unknown;
|
|
3656
|
+
}
|
|
3657
|
+
/** The outcome of a custom action, flashed on the list view. */
|
|
3658
|
+
interface AdminActionResult {
|
|
3659
|
+
/** Human-readable result shown to the operator. */
|
|
3660
|
+
message: string;
|
|
3661
|
+
/** Banner style. Default `"success"`. */
|
|
3662
|
+
category?: AdminActionCategory;
|
|
3663
|
+
}
|
|
3664
|
+
/** The function a custom action runs. Return `null` to flash nothing. */
|
|
3665
|
+
type AdminActionHandler<C extends ModelClass = ModelClass> = (context: AdminActionContext<C>) => Promise<AdminActionResult | null>;
|
|
3666
|
+
/** A registered custom action: metadata plus handler. */
|
|
3667
|
+
interface AdminAction<C extends ModelClass = ModelClass> {
|
|
3668
|
+
/** Stable identifier (the submitted form value); unique per model. */
|
|
3669
|
+
name: string;
|
|
3670
|
+
/** Text shown in the bulk-action dropdown. */
|
|
3671
|
+
label: string;
|
|
3672
|
+
/** The handler to run against the checked rows. */
|
|
3673
|
+
handler: AdminActionHandler<C>;
|
|
3674
|
+
/** Whether the UI marks this as destructive (a stronger confirm prompt). */
|
|
3675
|
+
dangerous: boolean;
|
|
3676
|
+
}
|
|
3677
|
+
/** Metadata accepted by {@link adminAction}. */
|
|
3678
|
+
interface AdminActionOptions {
|
|
3679
|
+
/** Dropdown label shown to the operator. */
|
|
3680
|
+
label: string;
|
|
3681
|
+
/** Stable identifier (the submitted form value). Defaults to a slug of `label`. */
|
|
3682
|
+
name?: string;
|
|
3683
|
+
/** Flag a destructive action, for a stronger confirm prompt. */
|
|
3684
|
+
dangerous?: boolean;
|
|
3685
|
+
}
|
|
3686
|
+
/**
|
|
3687
|
+
* Describe a custom bulk action.
|
|
3688
|
+
*
|
|
3689
|
+
* @param options - Label, optional stable name and the destructive flag.
|
|
3690
|
+
* @param handler - The async function run against the checked rows.
|
|
3691
|
+
* @returns The action descriptor to pass to `AdminModel({ actions: [...] })`.
|
|
3692
|
+
* @throws Error When the resolved name is empty.
|
|
3693
|
+
*/
|
|
3694
|
+
declare function adminAction<C extends ModelClass = ModelClass>(options: AdminActionOptions, handler: AdminActionHandler<C>): AdminAction<C>;
|
|
3695
|
+
/** A bulk-action option rendered in the list view's dropdown. */
|
|
3696
|
+
interface BulkActionOption {
|
|
3697
|
+
/** Submitted form value. Custom actions are namespaced `custom:<name>`. */
|
|
3698
|
+
value: string;
|
|
3699
|
+
/** Dropdown label. */
|
|
3700
|
+
label: string;
|
|
3701
|
+
/** Whether the action is destructive. */
|
|
3702
|
+
dangerous: boolean;
|
|
3703
|
+
}
|
|
3704
|
+
|
|
3495
3705
|
/**
|
|
3496
3706
|
* Column introspection for the admin panel, mirroring `admin.forms`' widget
|
|
3497
3707
|
* derivation.
|
|
@@ -3568,6 +3778,13 @@ declare function filterForColumn(column: Column<unknown>): {
|
|
|
3568
3778
|
kind: AdminFilterKind;
|
|
3569
3779
|
options: AdminSelectOption[];
|
|
3570
3780
|
};
|
|
3781
|
+
/**
|
|
3782
|
+
* Return the table a column points at, when it carries a foreign key.
|
|
3783
|
+
*
|
|
3784
|
+
* @param column - The column to inspect.
|
|
3785
|
+
* @returns The referenced table name, or `null` for a plain column.
|
|
3786
|
+
*/
|
|
3787
|
+
declare function foreignKeyTable(column: Column<unknown>): string | null;
|
|
3571
3788
|
/**
|
|
3572
3789
|
* Whether a column holds free text a `LIKE '%…%'` search can match.
|
|
3573
3790
|
*
|
|
@@ -3616,6 +3833,12 @@ interface AdminModelOptions<C extends ModelClass> {
|
|
|
3616
3833
|
canEdit?: boolean;
|
|
3617
3834
|
/** Whether the delete action is exposed. Default `true`. */
|
|
3618
3835
|
canDelete?: boolean;
|
|
3836
|
+
/**
|
|
3837
|
+
* Custom bulk actions, built with `adminAction`. Each one joins the list
|
|
3838
|
+
* view's action dropdown alongside the built-in activate / deactivate /
|
|
3839
|
+
* delete and runs against the checked rows.
|
|
3840
|
+
*/
|
|
3841
|
+
actions?: readonly AdminAction<C>[];
|
|
3619
3842
|
}
|
|
3620
3843
|
/**
|
|
3621
3844
|
* The admin configuration for one model.
|
|
@@ -3653,6 +3876,7 @@ declare class AdminModel<C extends ModelClass = ModelClass> {
|
|
|
3653
3876
|
readonly canEdit: boolean;
|
|
3654
3877
|
/** Whether the delete action is exposed. */
|
|
3655
3878
|
readonly canDelete: boolean;
|
|
3879
|
+
private readonly actions;
|
|
3656
3880
|
private readonly slugOverride;
|
|
3657
3881
|
private readonly listDisplayOverride;
|
|
3658
3882
|
private readonly verboseNameOverride;
|
|
@@ -3716,6 +3940,21 @@ declare class AdminModel<C extends ModelClass = ModelClass> {
|
|
|
3716
3940
|
* @returns The editable column keys, in declaration order.
|
|
3717
3941
|
*/
|
|
3718
3942
|
editableFieldNames(): string[];
|
|
3943
|
+
/**
|
|
3944
|
+
* Return the registered custom actions, in declaration order.
|
|
3945
|
+
*
|
|
3946
|
+
* @returns The actions passed via `actions` (empty when none). The model
|
|
3947
|
+
* type is erased here, the way {@link AdminSite} erases it when it stores a
|
|
3948
|
+
* configuration — a registry keyed by slug cannot stay generic.
|
|
3949
|
+
*/
|
|
3950
|
+
customActions(): AdminAction[];
|
|
3951
|
+
/**
|
|
3952
|
+
* Look a custom action up by name.
|
|
3953
|
+
*
|
|
3954
|
+
* @param name - The action identifier (its submitted form value).
|
|
3955
|
+
* @returns The action, or `null` when nothing matches.
|
|
3956
|
+
*/
|
|
3957
|
+
getAction(name: string): AdminAction | null;
|
|
3719
3958
|
/**
|
|
3720
3959
|
* Build a repository for this model bound to a session.
|
|
3721
3960
|
*
|
|
@@ -3771,6 +4010,12 @@ interface BuildFormFieldsOptions {
|
|
|
3771
4010
|
values?: Record<string, unknown>;
|
|
3772
4011
|
/** Per-field errors to surface, keyed by column. */
|
|
3773
4012
|
errors?: Record<string, string>;
|
|
4013
|
+
/**
|
|
4014
|
+
* Options for foreign-key columns whose target model is registered, keyed by
|
|
4015
|
+
* column. A field listed here renders as a `<select>` of related rows instead
|
|
4016
|
+
* of a raw identity text input.
|
|
4017
|
+
*/
|
|
4018
|
+
foreignKeyOptions?: Record<string, AdminSelectOption[]>;
|
|
3774
4019
|
}
|
|
3775
4020
|
/**
|
|
3776
4021
|
* Render a stored value into the string a control pre-fills with.
|
|
@@ -3814,6 +4059,25 @@ declare function parseFormBody(admin: AdminModel, body: Record<string, unknown>)
|
|
|
3814
4059
|
* @returns A display string (empty for `null`/`undefined`).
|
|
3815
4060
|
*/
|
|
3816
4061
|
declare function formatCellValue(value: unknown): string;
|
|
4062
|
+
/**
|
|
4063
|
+
* Return the editable foreign-key columns of an admin, as `field → table`.
|
|
4064
|
+
*
|
|
4065
|
+
* @param admin - The model configuration.
|
|
4066
|
+
* @returns One entry per editable column that references another table.
|
|
4067
|
+
*/
|
|
4068
|
+
declare function foreignKeyFields(admin: AdminModel): Record<string, string>;
|
|
4069
|
+
/**
|
|
4070
|
+
* Build a human label for a referenced row — the analog of Django's `__str__`.
|
|
4071
|
+
*
|
|
4072
|
+
* Prefers the referenced admin's first search field, then a conventional
|
|
4073
|
+
* display attribute, then the row's identity, so a dropdown of related rows
|
|
4074
|
+
* reads as names rather than as a column of UUIDs.
|
|
4075
|
+
*
|
|
4076
|
+
* @param admin - The **referenced** model's configuration.
|
|
4077
|
+
* @param row - The referenced row.
|
|
4078
|
+
* @returns A label for the option.
|
|
4079
|
+
*/
|
|
4080
|
+
declare function foreignKeyLabel(admin: AdminModel, row: Record<string, unknown>): string;
|
|
3817
4081
|
|
|
3818
4082
|
/**
|
|
3819
4083
|
* Authentication backends for the admin panel, mirroring `admin.auth`.
|
|
@@ -3996,122 +4260,6 @@ declare class UserModelAuthBackend implements AdminAuthBackend<UserPrincipalRow>
|
|
|
3996
4260
|
verifyMfa(principal: UserPrincipalRow, code: string): Promise<boolean>;
|
|
3997
4261
|
}
|
|
3998
4262
|
|
|
3999
|
-
/**
|
|
4000
|
-
* Signed-cookie sessions for the admin panel, mirroring `admin.session`.
|
|
4001
|
-
*
|
|
4002
|
-
* The panel's session is **stateless**: the principal id, display name, CSRF
|
|
4003
|
-
* token and expiry travel in the cookie itself, signed with HMAC-SHA256 over
|
|
4004
|
-
* the caller's secret. Nothing is kept server-side, so the panel survives a
|
|
4005
|
-
* restart and works across replicas without a shared store — the property that
|
|
4006
|
-
* matters most for an operator tool that is used in bursts and left open.
|
|
4007
|
-
*
|
|
4008
|
-
* The CSRF token lives inside the session payload, so every write form can
|
|
4009
|
-
* carry it and the server compares it against the cookie it already trusts.
|
|
4010
|
-
*/
|
|
4011
|
-
|
|
4012
|
-
/** The payload carried by the admin session cookie. */
|
|
4013
|
-
interface AdminSession {
|
|
4014
|
-
/** Stable id of the authenticated principal. */
|
|
4015
|
-
subject: string;
|
|
4016
|
-
/** Display name shown in the header. */
|
|
4017
|
-
displayName: string;
|
|
4018
|
-
/** Token every write form echoes back for CSRF validation. */
|
|
4019
|
-
csrfToken: string;
|
|
4020
|
-
/** Expiry, in epoch seconds. */
|
|
4021
|
-
expiresAt: number;
|
|
4022
|
-
/**
|
|
4023
|
-
* `true` once the second factor was accepted. Sessions issued for a
|
|
4024
|
-
* principal without MFA are complete from the start.
|
|
4025
|
-
*/
|
|
4026
|
-
mfaPassed: boolean;
|
|
4027
|
-
}
|
|
4028
|
-
/** Options for {@link AdminSessionStore}. */
|
|
4029
|
-
interface AdminSessionStoreOptions {
|
|
4030
|
-
/** HMAC key signing the cookie. At least 32 characters. */
|
|
4031
|
-
secret: string;
|
|
4032
|
-
/** Cookie name. Default `tempest_admin_session`. */
|
|
4033
|
-
cookieName?: string;
|
|
4034
|
-
/** Session lifetime in seconds. Default `28800` (8 hours). */
|
|
4035
|
-
maxAgeSeconds?: number;
|
|
4036
|
-
/** Send the cookie with `Secure` (HTTPS only). Default `true`. */
|
|
4037
|
-
cookieSecure?: boolean;
|
|
4038
|
-
/** Cookie `Path`. Default `/`. */
|
|
4039
|
-
cookiePath?: string;
|
|
4040
|
-
}
|
|
4041
|
-
/**
|
|
4042
|
-
* Issues, verifies and clears the admin session cookie.
|
|
4043
|
-
*
|
|
4044
|
-
* The cookie value is `<base64url payload>.<base64url signature>`; a payload
|
|
4045
|
-
* whose signature does not verify, or whose expiry has passed, resolves to
|
|
4046
|
-
* `null` — an operator with a tampered or stale cookie is simply logged out.
|
|
4047
|
-
*/
|
|
4048
|
-
declare class AdminSessionStore {
|
|
4049
|
-
private readonly secret;
|
|
4050
|
-
private readonly cookieName;
|
|
4051
|
-
private readonly maxAgeSeconds;
|
|
4052
|
-
private readonly cookieSecure;
|
|
4053
|
-
private readonly cookiePath;
|
|
4054
|
-
/**
|
|
4055
|
-
* Build the store.
|
|
4056
|
-
*
|
|
4057
|
-
* @param options - Secret, cookie name, lifetime and cookie flags.
|
|
4058
|
-
* @throws Error When the secret is shorter than 32 characters.
|
|
4059
|
-
*/
|
|
4060
|
-
constructor(options: AdminSessionStoreOptions);
|
|
4061
|
-
/**
|
|
4062
|
-
* Sign a payload.
|
|
4063
|
-
*
|
|
4064
|
-
* @param payload - The base64url payload to sign.
|
|
4065
|
-
* @returns The base64url signature.
|
|
4066
|
-
*/
|
|
4067
|
-
private sign;
|
|
4068
|
-
/**
|
|
4069
|
-
* Mint a fresh session for an authenticated principal.
|
|
4070
|
-
*
|
|
4071
|
-
* @param subject - The principal id.
|
|
4072
|
-
* @param displayName - The name shown in the header.
|
|
4073
|
-
* @param mfaPassed - Whether the second factor is already satisfied.
|
|
4074
|
-
* @returns The new session payload (not yet written to a response).
|
|
4075
|
-
*/
|
|
4076
|
-
issue(subject: string, displayName: string, mfaPassed?: boolean): AdminSession;
|
|
4077
|
-
/**
|
|
4078
|
-
* Read and verify the session carried by a request.
|
|
4079
|
-
*
|
|
4080
|
-
* @param req - The inbound request.
|
|
4081
|
-
* @returns The session, or `null` when absent, tampered with or expired.
|
|
4082
|
-
*/
|
|
4083
|
-
load(req: Request): AdminSession | null;
|
|
4084
|
-
/**
|
|
4085
|
-
* Write a session to the response as a signed cookie.
|
|
4086
|
-
*
|
|
4087
|
-
* @param res - The outbound response.
|
|
4088
|
-
* @param session - The session to persist.
|
|
4089
|
-
*/
|
|
4090
|
-
save(res: Response$1, session: AdminSession): void;
|
|
4091
|
-
/**
|
|
4092
|
-
* Drop the session cookie.
|
|
4093
|
-
*
|
|
4094
|
-
* @param res - The outbound response.
|
|
4095
|
-
*/
|
|
4096
|
-
clear(res: Response$1): void;
|
|
4097
|
-
/**
|
|
4098
|
-
* Render a `Set-Cookie` value with the configured flags.
|
|
4099
|
-
*
|
|
4100
|
-
* @param value - The cookie value.
|
|
4101
|
-
* @param maxAge - Lifetime in seconds (`0` expires it immediately).
|
|
4102
|
-
* @returns The header value.
|
|
4103
|
-
*/
|
|
4104
|
-
private cookie;
|
|
4105
|
-
}
|
|
4106
|
-
/**
|
|
4107
|
-
* Compare a submitted CSRF token against the session's, in constant time.
|
|
4108
|
-
*
|
|
4109
|
-
* @param session - The active session.
|
|
4110
|
-
* @param submitted - The `csrf_token` field from the form body.
|
|
4111
|
-
* @returns `true` when the tokens match.
|
|
4112
|
-
*/
|
|
4113
|
-
declare function csrfTokenMatches(session: AdminSession, submitted: unknown): boolean;
|
|
4114
|
-
|
|
4115
4263
|
/**
|
|
4116
4264
|
* Typed theming for the server-rendered admin panel, mirroring `admin.theme`.
|
|
4117
4265
|
*
|
|
@@ -4502,6 +4650,14 @@ interface AdminListView {
|
|
|
4502
4650
|
sort: Record<string, AdminSortView>;
|
|
4503
4651
|
/** URL of the create form, or `null` when creation is disabled. */
|
|
4504
4652
|
newUrl: string | null;
|
|
4653
|
+
/** Bulk actions offered above the table. Empty hides the whole bulk UI. */
|
|
4654
|
+
bulkActions: BulkActionOption[];
|
|
4655
|
+
/** URL the bulk form posts to. */
|
|
4656
|
+
bulkUrl: string;
|
|
4657
|
+
/** URL exporting the current result set as CSV. */
|
|
4658
|
+
exportCsvUrl: string;
|
|
4659
|
+
/** URL exporting the current result set as JSON. */
|
|
4660
|
+
exportJsonUrl: string;
|
|
4505
4661
|
}
|
|
4506
4662
|
/**
|
|
4507
4663
|
* Render the paginated list view, with its search box, filters and sortable
|
|
@@ -4612,6 +4768,12 @@ interface AdminRouterOptions {
|
|
|
4612
4768
|
sessionMaxAgeSeconds?: number;
|
|
4613
4769
|
/** Show the CPU/memory panel on the dashboard. Default `true`. */
|
|
4614
4770
|
showMetrics?: boolean;
|
|
4771
|
+
/**
|
|
4772
|
+
* Hard cap on rows the CSV/JSON export writes. Default `5000`. An export is
|
|
4773
|
+
* a full table scan streamed to a browser, so the cap is what keeps a curious
|
|
4774
|
+
* click on a large table from becoming an outage.
|
|
4775
|
+
*/
|
|
4776
|
+
exportMaxRows?: number;
|
|
4615
4777
|
}
|
|
4616
4778
|
/**
|
|
4617
4779
|
* Build the admin panel router.
|
|
@@ -6393,6 +6555,6 @@ declare function createTestDatabase(models: readonly ModelClass[]): TestDatabase
|
|
|
6393
6555
|
declare function withTestDatabase<T>(models: readonly ModelClass[], fn: (db: TestDatabase) => Promise<T>): Promise<T>;
|
|
6394
6556
|
|
|
6395
6557
|
/** The installed SDK version. Single source of truth for the barrel + CLI. */
|
|
6396
|
-
declare const VERSION = "0.
|
|
6558
|
+
declare const VERSION = "0.25.0";
|
|
6397
6559
|
|
|
6398
|
-
export { ADMIN_CSS, type ActivationInput, ActivationService, type ActivationServiceOptions, type ActivationStore, type AdminAuthBackend, type AdminAutomapOptions, type AdminDashboardCard, type AdminDashboardMetrics, type AdminDetailView, type AdminFilterKind, type AdminFilterView, type AdminFormField, type AdminFormView, type AdminJsonField, type AdminJsonListQuery, type AdminJsonListResult, type AdminJsonResource, type AdminJsonRouterOptions, AdminJsonSite, type AdminListView, type AdminMessage, type AdminMfaVerifier, AdminModel, type AdminModelOptions, type AdminNavEntry, type AdminRenderContext, type AdminRouterOptions, type AdminRow, type AdminSelectOption, type AdminSession, AdminSessionStore, type AdminSessionStoreOptions, AdminSite, type AdminSiteOptions, type AdminSortView, type AdminTheme, type AdminWidget, AppException, type AppExceptionHandlerOptions, type AppExceptionOptions, type AttachWebSocketOptions, AttemptThrottle, type AttemptThrottleOptions, AuditAction, type AuthResponse, type AuthResultPageOptions, type AuthRouterOptions, type AuthUser, type BackupOptions, type BaseAppSettings, BaseAuditLogModel, BaseController, BaseModel, BaseOAuthClient, BaseOutboxModel, type BaseResponse, BaseService, BaseUserModel, BaseUserRefreshTokenModel, BaseUserTokenModel, type BodySizeLimitOptions, type BroadcastOptions, type BroadcastResult, type BrokerManager, type BuildFormFieldsOptions, CEP_PATTERN, CNPJ_PATTERN, CPF_PATTERN, type CPUMetrics, CSRF_COOKIE_NAME, CSRF_HEADER_NAME, type CacheManager, type CachedOptions, type CachedResponse, type CatalogData, CircuitOpenError, type ClientIpOptions, CompositeFeatureFlagBackend, ConflictException, type CreateAppOpenApi, type CreateAppOptions, type CsrfOptions, type CursorPaginationFilter, DEFAULT_DOCS_FAVICON, DEFAULT_LOCALE, type DownloadOptions, type EmailMessage, type EmailOptions, EmailProvider, type EmailProviderOptions, EmailUtils, type Enum, type EnumHelpers, type EnumSpec, EnvFeatureFlagBackend, EventStream, type EventStreamOptions, type ExceptionDetails, ExpiredTokenException, type FeatureFlagBackend, FeatureFlags, type FieldChange, type FileLoggingHandle, type FileLoggingOptions, type FlagContext, ForbiddenException, type GPUMetrics, type GenerateOpenApiOptions, GitHubOAuthClient, GoogleOAuthClient, GracefulShutdown, type GracefulShutdownOptions, HTTPClient, type HTTPClientOptions, HTTP_500_LOG_FILE, HTTP_500_MARKER, type HandshakeInfo, type HealthCheck, type HealthRouterOptions, HttpMetrics, IDEMPOTENCY_HEADER, type IdempotencyOptions, type IdempotencyRedisLike, type IdempotencyStore, type InboundHandler, type InboundMessage, InvalidTokenException, type IssuedSession, JSONLogger, JWTUtils, type JWTUtilsOptions, type JwtAuthOptions, type JwtClaims, type JwtDecoderLike, LEVEL_LOG_FILES, LocalUploadStorage, type LocalUploadStorageOptions, type LogEntry, type LogExtra, type LogLevel, type LogSink, type LogSource, type LoginInput, type LoginResult, type LogsRouterOptions, type MediaKind, MemoryBroker, MemoryCacheManager, MemoryFeatureFlagBackend, MemoryIdempotencyStore, type MemoryMetrics, MemoryRateLimitStore, MemorySessionStore, MemoryThrottleBackend, MessageCatalog, type MessageHandler, MessagingHub, type MessagingProvider, type MetricsRouterOptions, MetricsUtils, type MfaChallenge, type MfaChallengeInput, type MfaCodeInput, type MfaEnrollment, MfaService, type MfaServiceOptions, type MfaStore, NotFoundException, type OAuthClientOptions, OAuthError, type OAuthTokens, type OAuthUser, OIDCProvider, type OIDCProviderOptions, type OpenApiDocument, type OpenApiInfo, type OutboundMedia, type OutboundResult, type OutboxPublisher, OutboxRelay, type OutboxRelayOptions, OutboxStatus, PHONE_BR_PATTERN, type PaginationFilter, type PaginationLinkOptions, type ParsedAdminForm, type PasswordResetConfirmInput, type PasswordResetFormOptions, type PasswordResetRequestInput, PasswordResetService, type PasswordResetServiceOptions, type PasswordResetStore, PasswordUtils, REDOC_CDN_URL, REQUEST_ID_HEADER, RabbitBroker, type RabbitBrokerOptions, type RateLimitKeyFunc, type RateLimitOptions, type RateLimitRedisLike, type RateLimitResult, type RateLimitStore, RedisCacheManager, RedisIdempotencyStore, type RedisLike, type RedisPublisherLike, RedisRateLimitStore, RedisSSEBroker, type RedisSSEBrokerOptions, RedisSessionStore, type RedisSubscriberLike, type RedocBundleSource, type RedocOptions, type RefreshInput, Region, type RegionValue, type RegisterExceptionHandlersOptions, type RequestContext, type RequestTracingOptions, type ResolvedAdminTheme, type ResponseMapper, RetryPolicy, type RunServerOptions, type S3ClientLike, S3UploadStorage, type S3UploadStorageOptions, SSEBroker, type SaveOptions, type SendOptions, ServerSentEvent, type ServerSentEventInit, type Session, type SessionMiddlewareOptions, type SessionRedisLike, SessionService, type SessionServiceOptions, type SessionStore, type SignupInput, type SlowQueryOptions, type SpecProvider, type StateBR, type SwaggerOptions, type SyncFilter, type SystemMetrics, TOTPHelper, type TOTPOptions, type TaskHandler, TaskManager, type TaskManagerOptions, TelegramProvider, type TelegramProviderOptions, TenantScopedRepository, type TestDatabase, type ThrottleBackend, type ThrottleStatus, type ToDictOptions, type TokenPair, TooManyRequestsException, type TooManyRequestsOptions, type ToolSpecOptions, TwilioSmsProvider, type TwilioSmsProviderOptions, type TwilioWebhookOptions, UF, type UFValue, UnauthorizedException, type UnhandledExceptionHandlerOptions, type UploadResult, type UploadStorage, UserAuthService, type UserAuthServiceOptions, UserModelAuthBackend, type UserModelAuthBackendOptions, type UserPublic, type UserStore, UserTokenPurpose, VERSION, ValidationException, type WSEnvelope, WebPushDispatcher, type WebPushDispatcherOptions, WebPushError, WebPushGoneError, type WebPushKeys, type WebPushPayload, type WebPushSubscription, type WebSocketConnection, WebSocketHub, type WebSocketHubOptions, type WebSocketLike, type WebhookSignatureOptions, WebhookSignatureVerifier, WhatsAppProvider, type WhatsAppProviderOptions, type WhatsAppWebhookOptions, type WidgetSpec, activationSchema, addLogSink, adminColumns, adminThemeCss, attachWebSocketHub, authResponseSchema, authSettingsShape, backupDatabase, baseAppSettingsSchema, baseAppSettingsShape, baseResponseSchema, bearerToken, bodySizeLimitMiddleware, broadcastText, buildContentDisposition, buildFormFields, buildPaginationLinkHeader, cached, centsField, cepField, citiesByUf, cnpjField, coerceFlag, configureFileLogging, configureLogging, corsSettingsShape, cpfField, cpfOrCnpjField, createApp, createOpenApiRegistry, createTestDatabase, createdByColumn, csrfMiddleware, csrfTokenMatches, cursorPaginationFilterSchema, cursorPaginationSchema, databaseSettingsShape, decodeCursor, defaultMessageCatalog, defineEnum, deletedAtColumn, diffSnapshots, emailSettingsShape, encodeCursor, looseBoolean as envBoolean, envList, escapeHtml, filterForColumn, formatCellValue, formatFieldValue, generateCsrfToken, generateOAuthState, generateOpaqueToken, generateOpenApiDocument, getAuth, getClientIp, getConditions, getPaginationConditions, getRequestId, getState, hashOpaqueToken, hexColorField, humanizeField, idempotencyMiddleware, inboundMessageSchema, isColumnOptional, isSearchableColumn, isValidCep, isValidCity, isValidCnpj, isValidCpf, isValidCpfCnpj, isValidPhoneBr, isValidUf, jwtSettingsShape, keyByHeader, keyByIp, keyByJwtClaim, keyByJwtSubject, latitudeField, listStates, loadSettings, logEntrySchema, logSettingsShape, loginSchema, longitudeField, looseBoolean, makeAdminJsonRouter, makeAdminRouter, makeAppExceptionHandler, makeAuthRouter, makeFlagGuard, makeHealthRouter, makeJwtAuthMiddleware, makeLogsRouter, makeMetricsRouter, makeSessionMiddleware, makeToolSpecRouter, makeTwilioWebhookRouter, makeUnhandledExceptionHandler, makeWhatsAppWebhookRouter, mfaChallengeSchema, mfaCodeSchema, mfaEnrollResponseSchema, minioSettingsShape, modifyDict, mountOpenApiJson, mountRedoc, mountSwaggerUi, nonEmptyStrField, nonNegativeFloatField, nonNegativeIntField, normalizeCep, normalizeCnpj, normalizeCpf, normalizeCpfCnpj, normalizePhoneBr, normalizeUf, notFoundHandler, onlyDigits, paginationFilterSchema, paginationSchema, parseAcceptLanguage, parseCookies, parseFormBody, passwordResetConfirmSchema, passwordResetRequestSchema, percentField, phoneBrField, portField, positiveFloatField, positiveIntField, priceField, prometheusMiddleware, rabbitmqSettingsShape, rateLimitMiddleware, ratingField, ratioField, redisSettingsShape, refreshSchema, registerExceptionHandlers, renderAuthResultPage, renderDashboardPage, renderDetailPage, renderFormPage, renderLayout, renderListPage, renderLoginPage, renderMfaPage, renderPasswordResetFormPage, requestIdMiddleware, requestTracingMiddleware, requireRoles, resolveAdminTheme, resolveDownloadPath, resolveRedocBundle, runServer, runWithRequestContext, sendBytesDownload, sendFileDownload, serverSettingsShape, sessionCookie, sessionSettingsShape, setRequestId, signupSchema, slugField, snapshot, sseResponse, statesByRegion, syncFilterSchema, syncPaginationSchema, tableNameFor, toDict, toUtc, tokenFromUrl, tokenPairSchema, tokenSettingsShape, ufField, updatedByColumn, uploadSettingsShape, userPublicSchema, utcnow, validateTwilioSignature, verifyOpaqueToken, webPushKeysSchema, webPushPayloadSchema, webPushSettingsShape, webPushSubscriptionSchema, webSocketSettingsShape, widgetForColumn, withTestDatabase, wrapWithSlowQueryLog, wsEnvelopeSchema };
|
|
6560
|
+
export { ADMIN_CSS, type ActivationInput, ActivationService, type ActivationServiceOptions, type ActivationStore, type AdminAction, type AdminActionCategory, type AdminActionContext, type AdminActionHandler, type AdminActionOptions, type AdminActionResult, type AdminAuthBackend, type AdminAutomapOptions, type AdminDashboardCard, type AdminDashboardMetrics, type AdminDetailView, type AdminFilterKind, type AdminFilterView, type AdminFormField, type AdminFormView, type AdminJsonField, type AdminJsonListQuery, type AdminJsonListResult, type AdminJsonResource, type AdminJsonRouterOptions, AdminJsonSite, type AdminListView, type AdminMessage, type AdminMfaVerifier, AdminModel, type AdminModelOptions, type AdminNavEntry, type AdminRenderContext, type AdminRouterOptions, type AdminRow, type AdminSelectOption, type AdminSession, AdminSessionStore, type AdminSessionStoreOptions, AdminSite, type AdminSiteOptions, type AdminSortView, type AdminTheme, type AdminWidget, AppException, type AppExceptionHandlerOptions, type AppExceptionOptions, type AttachWebSocketOptions, AttemptThrottle, type AttemptThrottleOptions, AuditAction, type AuthResponse, type AuthResultPageOptions, type AuthRouterOptions, type AuthUser, type BackupOptions, type BaseAppSettings, BaseAuditLogModel, BaseController, BaseModel, BaseOAuthClient, BaseOutboxModel, type BaseResponse, BaseService, BaseUserModel, BaseUserRefreshTokenModel, BaseUserTokenModel, type BodySizeLimitOptions, type BroadcastOptions, type BroadcastResult, type BrokerManager, type BuildFormFieldsOptions, type BulkActionOption, CEP_PATTERN, CNPJ_PATTERN, CPF_PATTERN, type CPUMetrics, CSRF_COOKIE_NAME, CSRF_HEADER_NAME, type CacheManager, type CachedOptions, type CachedResponse, type CatalogData, CircuitOpenError, type ClientIpOptions, CompositeFeatureFlagBackend, ConflictException, type CreateAppOpenApi, type CreateAppOptions, type CsrfOptions, type CursorPaginationFilter, DEFAULT_DOCS_FAVICON, DEFAULT_LOCALE, type DownloadOptions, type EmailMessage, type EmailOptions, EmailProvider, type EmailProviderOptions, EmailUtils, type Enum, type EnumHelpers, type EnumSpec, EnvFeatureFlagBackend, EventStream, type EventStreamOptions, type ExceptionDetails, ExpiredTokenException, type FeatureFlagBackend, FeatureFlags, type FieldChange, type FileLoggingHandle, type FileLoggingOptions, type FlagContext, ForbiddenException, type GPUMetrics, type GenerateOpenApiOptions, GitHubOAuthClient, GoogleOAuthClient, GracefulShutdown, type GracefulShutdownOptions, HTTPClient, type HTTPClientOptions, HTTP_500_LOG_FILE, HTTP_500_MARKER, type HandshakeInfo, type HealthCheck, type HealthRouterOptions, HttpMetrics, IDEMPOTENCY_HEADER, type IdempotencyOptions, type IdempotencyRedisLike, type IdempotencyStore, type InboundHandler, type InboundMessage, InvalidTokenException, type IssuedSession, JSONLogger, JWTUtils, type JWTUtilsOptions, type JwtAuthOptions, type JwtClaims, type JwtDecoderLike, LEVEL_LOG_FILES, LocalUploadStorage, type LocalUploadStorageOptions, type LogEntry, type LogExtra, type LogLevel, type LogSink, type LogSource, type LoginInput, type LoginResult, type LogsRouterOptions, type MediaKind, MemoryBroker, MemoryCacheManager, MemoryFeatureFlagBackend, MemoryIdempotencyStore, type MemoryMetrics, MemoryRateLimitStore, MemorySessionStore, MemoryThrottleBackend, MessageCatalog, type MessageHandler, MessagingHub, type MessagingProvider, type MetricsRouterOptions, MetricsUtils, type MfaChallenge, type MfaChallengeInput, type MfaCodeInput, type MfaEnrollment, MfaService, type MfaServiceOptions, type MfaStore, NotFoundException, type OAuthClientOptions, OAuthError, type OAuthTokens, type OAuthUser, OIDCProvider, type OIDCProviderOptions, type OpenApiDocument, type OpenApiInfo, type OutboundMedia, type OutboundResult, type OutboxPublisher, OutboxRelay, type OutboxRelayOptions, OutboxStatus, PHONE_BR_PATTERN, type PaginationFilter, type PaginationLinkOptions, type ParsedAdminForm, type PasswordResetConfirmInput, type PasswordResetFormOptions, type PasswordResetRequestInput, PasswordResetService, type PasswordResetServiceOptions, type PasswordResetStore, PasswordUtils, REDOC_CDN_URL, REQUEST_ID_HEADER, RabbitBroker, type RabbitBrokerOptions, type RateLimitKeyFunc, type RateLimitOptions, type RateLimitRedisLike, type RateLimitResult, type RateLimitStore, RedisCacheManager, RedisIdempotencyStore, type RedisLike, type RedisPublisherLike, RedisRateLimitStore, RedisSSEBroker, type RedisSSEBrokerOptions, RedisSessionStore, type RedisSubscriberLike, type RedocBundleSource, type RedocOptions, type RefreshInput, Region, type RegionValue, type RegisterExceptionHandlersOptions, type RequestContext, type RequestTracingOptions, type ResolvedAdminTheme, type ResponseMapper, RetryPolicy, type RunServerOptions, type S3ClientLike, S3UploadStorage, type S3UploadStorageOptions, SSEBroker, type SaveOptions, type SendOptions, ServerSentEvent, type ServerSentEventInit, type Session, type SessionMiddlewareOptions, type SessionRedisLike, SessionService, type SessionServiceOptions, type SessionStore, type SignupInput, type SlowQueryOptions, type SpecProvider, type StateBR, type SwaggerOptions, type SyncFilter, type SystemMetrics, TOTPHelper, type TOTPOptions, type TaskHandler, TaskManager, type TaskManagerOptions, TelegramProvider, type TelegramProviderOptions, TenantScopedRepository, type TestDatabase, type ThrottleBackend, type ThrottleStatus, type ToDictOptions, type TokenPair, TooManyRequestsException, type TooManyRequestsOptions, type ToolSpecOptions, TwilioSmsProvider, type TwilioSmsProviderOptions, type TwilioWebhookOptions, UF, type UFValue, UnauthorizedException, type UnhandledExceptionHandlerOptions, type UploadResult, type UploadStorage, UserAuthService, type UserAuthServiceOptions, UserModelAuthBackend, type UserModelAuthBackendOptions, type UserPublic, type UserStore, UserTokenPurpose, VERSION, ValidationException, type WSEnvelope, WebPushDispatcher, type WebPushDispatcherOptions, WebPushError, WebPushGoneError, type WebPushKeys, type WebPushPayload, type WebPushSubscription, type WebSocketConnection, WebSocketHub, type WebSocketHubOptions, type WebSocketLike, type WebhookSignatureOptions, WebhookSignatureVerifier, WhatsAppProvider, type WhatsAppProviderOptions, type WhatsAppWebhookOptions, type WidgetSpec, activationSchema, addLogSink, adminAction, adminColumns, adminThemeCss, attachWebSocketHub, authResponseSchema, authSettingsShape, backupDatabase, baseAppSettingsSchema, baseAppSettingsShape, baseResponseSchema, bearerToken, bodySizeLimitMiddleware, broadcastText, buildContentDisposition, buildFormFields, buildPaginationLinkHeader, cached, centsField, cepField, citiesByUf, cnpjField, coerceFlag, configureFileLogging, configureLogging, corsSettingsShape, cpfField, cpfOrCnpjField, createApp, createOpenApiRegistry, createTestDatabase, createdByColumn, csrfMiddleware, csrfTokenMatches, cursorPaginationFilterSchema, cursorPaginationSchema, databaseSettingsShape, decodeCursor, defaultMessageCatalog, defineEnum, deletedAtColumn, diffSnapshots, emailSettingsShape, encodeCursor, looseBoolean as envBoolean, envList, escapeHtml, filterForColumn, foreignKeyFields, foreignKeyLabel, foreignKeyTable, formatCellValue, formatFieldValue, generateCsrfToken, generateOAuthState, generateOpaqueToken, generateOpenApiDocument, getAuth, getClientIp, getConditions, getPaginationConditions, getRequestId, getState, hashOpaqueToken, hexColorField, humanizeField, idempotencyMiddleware, inboundMessageSchema, isColumnOptional, isSearchableColumn, isValidCep, isValidCity, isValidCnpj, isValidCpf, isValidCpfCnpj, isValidPhoneBr, isValidUf, jwtSettingsShape, keyByHeader, keyByIp, keyByJwtClaim, keyByJwtSubject, latitudeField, listStates, loadSettings, logEntrySchema, logSettingsShape, loginSchema, longitudeField, looseBoolean, makeAdminJsonRouter, makeAdminRouter, makeAppExceptionHandler, makeAuthRouter, makeFlagGuard, makeHealthRouter, makeJwtAuthMiddleware, makeLogsRouter, makeMetricsRouter, makeSessionMiddleware, makeToolSpecRouter, makeTwilioWebhookRouter, makeUnhandledExceptionHandler, makeWhatsAppWebhookRouter, mfaChallengeSchema, mfaCodeSchema, mfaEnrollResponseSchema, minioSettingsShape, modifyDict, mountOpenApiJson, mountRedoc, mountSwaggerUi, nonEmptyStrField, nonNegativeFloatField, nonNegativeIntField, normalizeCep, normalizeCnpj, normalizeCpf, normalizeCpfCnpj, normalizePhoneBr, normalizeUf, notFoundHandler, onlyDigits, paginationFilterSchema, paginationSchema, parseAcceptLanguage, parseCookies, parseFormBody, passwordResetConfirmSchema, passwordResetRequestSchema, percentField, phoneBrField, portField, positiveFloatField, positiveIntField, priceField, prometheusMiddleware, rabbitmqSettingsShape, rateLimitMiddleware, ratingField, ratioField, redisSettingsShape, refreshSchema, registerExceptionHandlers, renderAuthResultPage, renderDashboardPage, renderDetailPage, renderFormPage, renderLayout, renderListPage, renderLoginPage, renderMfaPage, renderPasswordResetFormPage, requestIdMiddleware, requestTracingMiddleware, requireRoles, resolveAdminTheme, resolveDownloadPath, resolveRedocBundle, runServer, runWithRequestContext, sendBytesDownload, sendFileDownload, serverSettingsShape, sessionCookie, sessionSettingsShape, setRequestId, signupSchema, slugField, snapshot, sseResponse, statesByRegion, syncFilterSchema, syncPaginationSchema, tableNameFor, toDict, toUtc, tokenFromUrl, tokenPairSchema, tokenSettingsShape, ufField, updatedByColumn, uploadSettingsShape, userPublicSchema, utcnow, validateTwilioSignature, verifyOpaqueToken, webPushKeysSchema, webPushPayloadSchema, webPushSettingsShape, webPushSubscriptionSchema, webSocketSettingsShape, widgetForColumn, withTestDatabase, wrapWithSlowQueryLog, wsEnvelopeSchema };
|