@isaijs/core 0.1.5 → 0.1.8
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/adapters/storage/r2/index.d.ts +3 -0
- package/dist/adapters/storage/r2/index.js +13 -2
- package/dist/auth/index.d.ts +2 -2
- package/dist/auth/index.js +2 -2
- package/dist/cli/index.js +79 -11
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.js +18 -13
- package/dist/{create-auth-BHdX68Ng.js → create-auth-BCvMwlVD.js} +18 -10
- package/dist/{data-layer-C5oJZ8V1.js → data-layer-CVCFjPyv.js} +15 -10
- package/dist/{data-layer-43pme0Gy.d.ts → data-layer-nvm_ivGQ.d.ts} +6 -2
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.js +5 -5
- package/dist/{index-D0FEnMhn.d.ts → index-Bb9Px6SR.d.ts} +116 -22
- package/dist/{index-CYcklQ1l.d.ts → index-CaR3hb0i.d.ts} +5 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +169 -79
- package/dist/{make-ByA-84h8.js → make-jMJABOWI.js} +21 -3
- package/dist/{makers-P9kg68C8.js → makers-A0Pj6Tda.js} +3 -3
- package/dist/{migrator-B25prc9n.js → migrator-DxTpns_-.js} +174 -30
- package/dist/{model-Dc3HunKb.js → model-6pJBqqGd.js} +31 -1
- package/dist/{policies-KsqmlX67.js → policies-C_oiSgmY.js} +1 -1
- package/dist/{resource-BQK7bkPQ.js → resource-BIMAiOre.js} +8 -6
- package/dist/{tables-DgSwge7s.js → tables-DjW96Ubl.js} +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +4 -4
- package/dist/{types-BgOkJy5d.d.ts → types-D5SIVeej.d.ts} +59 -2
- package/dist/validation/index.d.ts +2 -2
- package/dist/validation/index.js +1 -1
- package/dist/{validation-Cppmd0RV.js → validation-C3MCRBQO.js} +26 -3
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as DatabaseDriver, b as TenantDatabases, d as RateLimiter, g as Storage, l as PdfRenderer, n as Body, p as Runtime, r as Cache, s as MailDriver, u as Queue } from "./index-Ce5p2-EB.js";
|
|
2
|
-
import { C as ObjectShape, Y as StoredFile, w as Output } from "./index-
|
|
3
|
-
import { $ as Expr, C as WithIncludes, D as PageOptions, E as Page, J as Models, Q as Embed, S as Key, T as NumberedPageOptions, V as AnyModel, X as Condition, Z as Conditional, b as RowOf, ct as ColumnNode, gt as FieldSpec, i as Row, lt as ConditionNode, n as Patch, p as Database, t as Insert, u as Seed, ut as Operand, v as OrderKey, w as NumberedPage, x as IncludePath } from "./types-
|
|
4
|
-
import { a as PROVIDERS, i as HELD, k as Manifest } from "./data-layer-
|
|
1
|
+
import { a as DatabaseDriver, b as TenantDatabases, d as RateLimiter, f as Row, g as Storage, l as PdfRenderer, n as Body, p as Runtime, r as Cache, s as MailDriver, u as Queue } from "./index-Ce5p2-EB.js";
|
|
2
|
+
import { C as ObjectShape, Y as StoredFile, w as Output } from "./index-CaR3hb0i.js";
|
|
3
|
+
import { $ as Expr, C as WithIncludes, D as PageOptions, E as Page, J as Models, O as Write, Q as Embed, S as Key, T as NumberedPageOptions, V as AnyModel, X as Condition, Z as Conditional, b as RowOf, ct as ColumnNode, gt as FieldSpec, i as Row$1, lt as ConditionNode, n as Patch, p as Database, t as Insert, u as Seed, ut as Operand, v as OrderKey, w as NumberedPage, x as IncludePath } from "./types-D5SIVeej.js";
|
|
4
|
+
import { a as PROVIDERS, i as HELD, k as Manifest } from "./data-layer-nvm_ivGQ.js";
|
|
5
5
|
//#region src/api/fail.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* `fail(code, message)`: the app's own business rules, for what can't be a `.check()`, a flow or a
|
|
@@ -33,10 +33,10 @@ interface BuiltinUser {
|
|
|
33
33
|
}
|
|
34
34
|
type UserRow = Models extends {
|
|
35
35
|
readonly User: infer U extends AnyModel;
|
|
36
|
-
} ? Row<U> : BuiltinUser;
|
|
36
|
+
} ? Row$1<U> : BuiltinUser;
|
|
37
37
|
type TenantRow$1 = Models extends {
|
|
38
38
|
readonly Tenant: infer T extends AnyModel;
|
|
39
|
-
} ? Row<T> : {
|
|
39
|
+
} ? Row$1<T> : {
|
|
40
40
|
readonly id: string;
|
|
41
41
|
readonly name: string;
|
|
42
42
|
};
|
|
@@ -133,12 +133,12 @@ type Simplify<T> = { [K in keyof T]: T[K]; } & {};
|
|
|
133
133
|
type OwnedInsert<M extends AnyModel> = Simplify<Omit<Insert<M>, OwnerKeys<M>> & Partial<Pick<Insert<M>, OwnerKeys<M> & keyof Insert<M>>>>;
|
|
134
134
|
/** The route context's `db`. Transactions, upserts and raw SQL are for services (`app.db`). */
|
|
135
135
|
interface RouteDatabase {
|
|
136
|
-
findOne<M extends AnyModel>(model: M, key: Key<M>): CheckedOne<M, Row<M>>;
|
|
137
|
-
findMany<M extends AnyModel>(model: M): CheckedQuery<M, Row<M>>;
|
|
138
|
-
createOne<M extends AnyModel>(model: M, input: OwnedInsert<M>): Ends<Row<M>>;
|
|
139
|
-
createMany<M extends AnyModel>(model: M, inputs: readonly OwnedInsert<M>[]): Ends<Row<M>[]>;
|
|
140
|
-
updateOne<M extends AnyModel>(model: M, key: Key<M>, patch: Patch<M>): CheckedMaybe<Row<M>>;
|
|
141
|
-
deleteOne<M extends AnyModel>(model: M, key: Key<M>): CheckedMaybe<Row<M>>;
|
|
136
|
+
findOne<M extends AnyModel>(model: M, key: Key<M>): CheckedOne<M, Row$1<M>>;
|
|
137
|
+
findMany<M extends AnyModel>(model: M): CheckedQuery<M, Row$1<M>>;
|
|
138
|
+
createOne<M extends AnyModel>(model: M, input: OwnedInsert<M>): Ends<Row$1<M>>;
|
|
139
|
+
createMany<M extends AnyModel>(model: M, inputs: readonly OwnedInsert<M>[]): Ends<Row$1<M>[]>;
|
|
140
|
+
updateOne<M extends AnyModel>(model: M, key: Key<M>, patch: Patch<M>): CheckedMaybe<Row$1<M>>;
|
|
141
|
+
deleteOne<M extends AnyModel>(model: M, key: Key<M>): CheckedMaybe<Row$1<M>>;
|
|
142
142
|
updateMany<M extends AnyModel>(model: M, patch: Patch<M>): CheckedMany<M>;
|
|
143
143
|
deleteMany<M extends AnyModel>(model: M): CheckedMany<M>;
|
|
144
144
|
}
|
|
@@ -153,7 +153,7 @@ type Method = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
|
153
153
|
*/
|
|
154
154
|
type User = Models extends {
|
|
155
155
|
readonly User: infer U extends AnyModel;
|
|
156
|
-
} ? Row<U> : {
|
|
156
|
+
} ? Row$1<U> : {
|
|
157
157
|
readonly id: string;
|
|
158
158
|
};
|
|
159
159
|
/**
|
|
@@ -162,7 +162,7 @@ type User = Models extends {
|
|
|
162
162
|
*/
|
|
163
163
|
type PlatformUser = Models extends {
|
|
164
164
|
readonly PlatformUser: infer U extends AnyModel;
|
|
165
|
-
} ? Row<U> : {
|
|
165
|
+
} ? Row$1<U> : {
|
|
166
166
|
readonly id: string;
|
|
167
167
|
};
|
|
168
168
|
type ParamNames<P extends string> = P extends `${string}:${infer Name}/${infer Rest}` ? Name | ParamNames<`/${Rest}`> : P extends `${string}:${infer Name}` ? Name : never;
|
|
@@ -178,14 +178,28 @@ interface RouteOptions<S extends ObjectShape = ObjectShape, A extends boolean =
|
|
|
178
178
|
* the platform's, `user` a platform user.
|
|
179
179
|
*/
|
|
180
180
|
readonly platform?: Pl;
|
|
181
|
+
/**
|
|
182
|
+
* Runs before each upload to this route's file inputs is stored, once its size and type are
|
|
183
|
+
* known: throw (`fail`) to refuse it. `pending` is the bytes of every upload not yet attached, so
|
|
184
|
+
* a cap counts them: `upload: async (_, { size, pending }) => { if (used() + pending + size > cap) fail(…) }`.
|
|
185
|
+
*/
|
|
186
|
+
readonly upload?: UploadCheck<A, Pl>;
|
|
187
|
+
}
|
|
188
|
+
/** An upload about to be stored: its route input's key, bytes, media type, and the bytes pending. */
|
|
189
|
+
interface UploadInfo {
|
|
190
|
+
readonly field: string;
|
|
191
|
+
readonly size: number;
|
|
192
|
+
readonly type: string;
|
|
193
|
+
readonly pending: number;
|
|
181
194
|
}
|
|
195
|
+
type UploadCheck<A extends boolean = boolean, Pl extends boolean = boolean> = (context: RouteContext<string, Record<never, never>, A, Pl>, upload: UploadInfo) => unknown;
|
|
182
196
|
/**
|
|
183
197
|
* The current tenant's row, with tenancy: the app's `Tenant` (its own columns too) once it's in the
|
|
184
198
|
* `Models` registry; `undefined` in a single-tenant app.
|
|
185
199
|
*/
|
|
186
200
|
type TenantRow = Models extends {
|
|
187
201
|
readonly Tenant: infer T extends AnyModel;
|
|
188
|
-
} ? Row<T> : undefined;
|
|
202
|
+
} ? Row$1<T> : undefined;
|
|
189
203
|
interface RouteContext<P extends string, S extends ObjectShape, A extends boolean, Pl extends boolean = false> {
|
|
190
204
|
/**
|
|
191
205
|
* The app's database at the boundary: each query ends in `.allowed(action)` (the model's policy
|
|
@@ -219,6 +233,8 @@ declare class Route<O = unknown> {
|
|
|
219
233
|
readonly handler: (context: RouteContext<string, ObjectShape, boolean>) => unknown;
|
|
220
234
|
/** Served on the platform's host instead of a tenant's. */
|
|
221
235
|
readonly platform: boolean;
|
|
236
|
+
/** Checks each upload to its file inputs before it's stored (`upload` in its options). */
|
|
237
|
+
readonly upload?: UploadCheck | undefined;
|
|
222
238
|
/** Type only: what the handler returns. */
|
|
223
239
|
readonly "~output": O;
|
|
224
240
|
constructor(method: Method, path: string,
|
|
@@ -228,7 +244,9 @@ declare class Route<O = unknown> {
|
|
|
228
244
|
*/
|
|
229
245
|
input: ObjectShape | "own", anonymous: boolean, handler: (context: RouteContext<string, ObjectShape, boolean>) => unknown,
|
|
230
246
|
/** Served on the platform's host instead of a tenant's. */
|
|
231
|
-
platform?: boolean
|
|
247
|
+
platform?: boolean,
|
|
248
|
+
/** Checks each upload to its file inputs before it's stored (`upload` in its options). */
|
|
249
|
+
upload?: UploadCheck | undefined);
|
|
232
250
|
}
|
|
233
251
|
/** A route that takes no input. */
|
|
234
252
|
type NoInput = Record<never, never>;
|
|
@@ -285,6 +303,16 @@ interface TenancyConfig {
|
|
|
285
303
|
type Named<T> = {
|
|
286
304
|
readonly default: T;
|
|
287
305
|
} & Readonly<Record<string, T>>;
|
|
306
|
+
/** Where a committed write happened, for `onWrite`. */
|
|
307
|
+
interface WriteContext {
|
|
308
|
+
/** The database's name (`tenant`, `platform`, or the one database's). */
|
|
309
|
+
readonly database: string;
|
|
310
|
+
/**
|
|
311
|
+
* The tenant whose request or service made it (isolated tenancy). None on the platform's
|
|
312
|
+
* database, nor for what a tenant's database writes as it wakes (the roles from `app.ts`).
|
|
313
|
+
*/
|
|
314
|
+
readonly tenant?: Row;
|
|
315
|
+
}
|
|
288
316
|
/** The application layer: what `app.ts` returns from `createApp`'s configure callback. */
|
|
289
317
|
interface AppConfig {
|
|
290
318
|
/**
|
|
@@ -314,6 +342,14 @@ interface AppConfig {
|
|
|
314
342
|
readonly language: string;
|
|
315
343
|
readonly timezone: string;
|
|
316
344
|
};
|
|
345
|
+
/**
|
|
346
|
+
* Called after every committed write on any of the app's databases, with what it created,
|
|
347
|
+
* changed and deleted (an `atomic`'s writes in one call): for what has to follow a change outside
|
|
348
|
+
* the database, such as purging a cache of pages built from it. Rows the database changes
|
|
349
|
+
* itself (cascade deletes, counts) aren't listed, nor are migrations' writes. It runs before the
|
|
350
|
+
* write returns; a failure is logged and never fails the write, which is already committed.
|
|
351
|
+
*/
|
|
352
|
+
readonly onWrite?: (writes: readonly Write[], context: WriteContext) => void | Promise<void>;
|
|
317
353
|
readonly api?: {
|
|
318
354
|
/**
|
|
319
355
|
* Anonymous writes (POST, PUT, PATCH, DELETE with no session) are counted per client IP:
|
|
@@ -430,6 +466,13 @@ interface AppFiles {
|
|
|
430
466
|
}): Promise<string>;
|
|
431
467
|
/** Removes the file (and its sizes) from its storage. */
|
|
432
468
|
delete(file: StoredFile): Promise<void>;
|
|
469
|
+
/**
|
|
470
|
+
* Removes the uploads no write attached before their expiry, from storage and the `Upload` table,
|
|
471
|
+
* in the current database (the tenant's, inside one). Run it from a schedule.
|
|
472
|
+
*/
|
|
473
|
+
sweep(): Promise<{
|
|
474
|
+
readonly removed: number;
|
|
475
|
+
}>;
|
|
433
476
|
}
|
|
434
477
|
//#endregion
|
|
435
478
|
//#region src/tenancy/services.d.ts
|
|
@@ -437,6 +480,40 @@ interface AppFiles {
|
|
|
437
480
|
type AppServices = () => readonly Promise<object>[];
|
|
438
481
|
type Service = (...args: any[]) => unknown;
|
|
439
482
|
//#endregion
|
|
483
|
+
//#region src/tasks/schedule.d.ts
|
|
484
|
+
/**
|
|
485
|
+
* Schedules: work the app runs on the clock, each a named export of an app module listed in `apps`
|
|
486
|
+
* (`apps/<name>/tasks.ts`), found like routes.
|
|
487
|
+
*
|
|
488
|
+
* export const nightly = schedule({ daily: "03:00" }, async ({ now }) => { … })
|
|
489
|
+
* export const hourly = schedule({ hourly: true }, async () => { … })
|
|
490
|
+
*
|
|
491
|
+
* Times are in the app's timezone (`fallbackLocale.timezone`, else UTC), on the hour. The runtime
|
|
492
|
+
* calls `app.tick(now)` from one hourly timer (on `workers`, the cron line `"0 * * * *"` in
|
|
493
|
+
* `wrangler.jsonc`), and each tick runs the schedules due in that hour. A tick that's missed is
|
|
494
|
+
* skipped, never caught up, so a schedule's work is safe to leave to the next time it runs.
|
|
495
|
+
*
|
|
496
|
+
* A schedule runs outside any tenant: with isolated tenancy it reaches a tenant through
|
|
497
|
+
* `app.tenant(id).run(service)`, and the platform through `app.platform.db`.
|
|
498
|
+
*/
|
|
499
|
+
/** When a schedule runs: every hour, or once a day at a whole hour (`"03:00"`). */
|
|
500
|
+
type When = {
|
|
501
|
+
readonly hourly: true;
|
|
502
|
+
} | {
|
|
503
|
+
readonly daily: `${number}:00`;
|
|
504
|
+
};
|
|
505
|
+
interface ScheduleContext {
|
|
506
|
+
/** The tick's time: the hour it's for. */
|
|
507
|
+
readonly now: Date;
|
|
508
|
+
}
|
|
509
|
+
declare class Schedule {
|
|
510
|
+
readonly when: When;
|
|
511
|
+
readonly run: (context: ScheduleContext) => unknown;
|
|
512
|
+
constructor(when: When, run: (context: ScheduleContext) => unknown);
|
|
513
|
+
}
|
|
514
|
+
/** `schedule(when, run)` in `#app`. */
|
|
515
|
+
declare function schedule(when: When, run: (context: ScheduleContext) => unknown): Schedule;
|
|
516
|
+
//#endregion
|
|
440
517
|
//#region src/app/create-app.d.ts
|
|
441
518
|
/**
|
|
442
519
|
* The app instance services import from `#app`. It's usable at module scope; what it
|
|
@@ -468,7 +545,7 @@ interface App {
|
|
|
468
545
|
}
|
|
469
546
|
interface AppOptions {
|
|
470
547
|
/**
|
|
471
|
-
* Every `apps/<name>/routes.ts` and `
|
|
548
|
+
* Every `apps/<name>/routes.ts`, `resources.ts` and `tasks.ts`, each as a lazy import, like Django's
|
|
472
549
|
* INSTALLED_APPS. Lazy, because those modules import `#app` themselves.
|
|
473
550
|
*/
|
|
474
551
|
readonly apps?: AppModules;
|
|
@@ -502,6 +579,8 @@ interface CreatedApp<Served, TenantHost = undefined> {
|
|
|
502
579
|
/** `resource(Model, options)`: what the API exposes over a model. */
|
|
503
580
|
readonly resource: typeof resource;
|
|
504
581
|
readonly fail: typeof fail;
|
|
582
|
+
/** `schedule({ daily: "03:00" }, run)`: work on the clock, exported from an app module. */
|
|
583
|
+
readonly schedule: typeof schedule;
|
|
505
584
|
}
|
|
506
585
|
/**
|
|
507
586
|
* `configure` runs once, the first time the runtime starts the core with an env.
|
|
@@ -553,6 +632,11 @@ interface InviteInput {
|
|
|
553
632
|
/** `"platform"`: the tenant's people can't take the role away. */
|
|
554
633
|
readonly held?: (typeof HELD)[number];
|
|
555
634
|
}
|
|
635
|
+
/** What `auth.revoke` takes: an email, and the key of a role from `app.ts`. */
|
|
636
|
+
interface RevokeInput {
|
|
637
|
+
readonly email: string;
|
|
638
|
+
readonly role: string;
|
|
639
|
+
}
|
|
556
640
|
//#endregion
|
|
557
641
|
//#region src/auth/create-auth.d.ts
|
|
558
642
|
type Provider = (typeof PROVIDERS)[number];
|
|
@@ -600,6 +684,11 @@ interface AuthConfig {
|
|
|
600
684
|
/** Every permission key: every policy's actions, and `auth.perms`. */
|
|
601
685
|
permissionKeys(): readonly string[];
|
|
602
686
|
}
|
|
687
|
+
/** `auth.invite` and `auth.revoke`, on the app's current database: the core's to attach. */
|
|
688
|
+
interface AuthPeople {
|
|
689
|
+
invite(input: InviteInput): Promise<void>;
|
|
690
|
+
revoke(input: RevokeInput): Promise<void>;
|
|
691
|
+
}
|
|
603
692
|
declare class Auth<Env = unknown> {
|
|
604
693
|
private readonly define;
|
|
605
694
|
readonly perms: {
|
|
@@ -612,8 +701,8 @@ declare class Auth<Env = unknown> {
|
|
|
612
701
|
};
|
|
613
702
|
/** The policies made with this instance's `policy()`. */
|
|
614
703
|
readonly policies: PolicyRegistry;
|
|
615
|
-
/** Set by the app's core when it starts: `invite` on its current database. */
|
|
616
|
-
private
|
|
704
|
+
/** Set by the app's core when it starts: `invite` and `revoke` on its current database. */
|
|
705
|
+
private people;
|
|
617
706
|
constructor(define: (env: Env) => AuthDefinition);
|
|
618
707
|
/**
|
|
619
708
|
* Gives `email` a role from `app.ts`, from code (a tenant's setup service, a seed): now, if it has
|
|
@@ -621,8 +710,13 @@ declare class Auth<Env = unknown> {
|
|
|
621
710
|
* `held: "platform"` puts the assignment beyond the tenant's reach.
|
|
622
711
|
*/
|
|
623
712
|
invite(input: InviteInput): Promise<void>;
|
|
624
|
-
/**
|
|
625
|
-
|
|
713
|
+
/**
|
|
714
|
+
* Takes a role from `email`, from code (replacing a tenant's owner): its invite to the role is
|
|
715
|
+
* deleted, and the role taken away if it has an account in the current database. Safe to repeat.
|
|
716
|
+
*/
|
|
717
|
+
revoke(input: RevokeInput): Promise<void>;
|
|
718
|
+
/** The core's: where `invite` and `revoke` write. */
|
|
719
|
+
attach(people: AuthPeople): void;
|
|
626
720
|
/** The config, for this env. Checked here for itself; against the databases by the core. */
|
|
627
721
|
resolve(env: Env): AuthConfig;
|
|
628
722
|
}
|
|
@@ -648,4 +742,4 @@ interface CreatedAuth<Env> {
|
|
|
648
742
|
/** The auth instance, from `auth.ts`, with `policy()` and the placeholders policies are written with. */
|
|
649
743
|
declare function createAuth<Env = unknown>(define: (env: Env) => AuthDefinition): CreatedAuth<Env>;
|
|
650
744
|
//#endregion
|
|
651
|
-
export {
|
|
745
|
+
export { RouteContext as A, Rules as B, AppConfig as C, Params as D, Method as E, AnyPolicy as F, Rejected as H, Bound as I, DefinePolicy as L, RouteOptions as M, User as N, Route as O, Permissions as P, Perms as R, ResourceOptions as S, WriteContext as T, fail as U, StandardAction as V, Schedule as _, OAuthMethod as a, CustomAction as b, Roles as c, NotImplementedError as d, AppModules as f, createApp as g, CreatedApp as h, Methods as i, RouteHandler as j, RouteBuilder as k, SignInMethod as l, AppOptions as m, AuthConfig as n, Provider as o, App as p, AuthDefinition as r, RoleDefinition as s, Auth as t, createAuth as u, ScheduleContext as v, Named as w, Resource as x, When as y, Policy as z };
|
|
@@ -222,6 +222,8 @@ declare function file(options?: FileOptions & {
|
|
|
222
222
|
declare function image(options?: FileOptions & {
|
|
223
223
|
readonly types?: readonly ImageType[];
|
|
224
224
|
}): Kind<StoredFile>;
|
|
225
|
+
/** A PDF or an image to print or read whole (never resized), up to 100 MB. */
|
|
226
|
+
declare function document(options?: FileOptions): Kind<StoredFile>;
|
|
225
227
|
/** Up to 10 files. */
|
|
226
228
|
declare const files: (options?: FileOptions & {
|
|
227
229
|
readonly types?: readonly FileType[];
|
|
@@ -230,6 +232,8 @@ declare const files: (options?: FileOptions & {
|
|
|
230
232
|
declare const images: (options?: FileOptions & {
|
|
231
233
|
readonly types?: readonly ImageType[];
|
|
232
234
|
}) => Kind<StoredFile[], StoredFile[], false, false>;
|
|
235
|
+
/** Up to 100 documents (PDFs and images, each up to 100 MB). */
|
|
236
|
+
declare const documents: (options?: FileOptions) => Kind<StoredFile[], StoredFile[], false, false>;
|
|
233
237
|
//#endregion
|
|
234
238
|
//#region src/validation/kinds/phone.d.ts
|
|
235
239
|
/**
|
|
@@ -382,4 +386,4 @@ declare const email: () => Kind<string, string, false, false>;
|
|
|
382
386
|
/** An http(s) URL, up to 2,048 characters. */
|
|
383
387
|
declare const url: () => Kind<string, string, false, false>;
|
|
384
388
|
//#endregion
|
|
385
|
-
export {
|
|
389
|
+
export { files as $, validate as A, money as B, ObjectShape as C, object as D, list as E, datetime as F, FileType as G, sequence as H, fakeUlid as I, SIZES_MAX as J, ImageSize as K, flag as L, IdInput as M, choice as N, serialize as O, date as P, file as Q, id as R, LIST_MAX as S, Shape as T, phone as U, quantity as V, phoneKind as W, document as X, StoredFile as Y, documents as Z, define as _, newToken as a, FileSpec as at, CarriesKind as b, slug as c, KindTypes as ct, text as d, TypeText as dt, image as et, textKind as f, kind as ft, KindDefinition as g, StandardSchemaV1 as gt, Definable as h, StandardResult as ht, markdown as i, AnyKind as it, CalendarDate as j, toKind as k, slugify as l, Measure as lt, url as m, StandardProps as mt, host as n, Fake as nt, personName as o, Kind as ot, token as p, StandardIssue as pt, ImageType as q, line as r, FakeContext as rt, secret as s, KindSpec as st, email as t, images as tt, subdomain as u, Sensitivity as ut, json as v, Output as w, Input as x, urls as y, int as z };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { p as Runtime, t as AppCore } from "./index-Ce5p2-EB.js";
|
|
2
|
-
import { C as
|
|
3
|
-
export { type App, type AppConfig, type AppCore, type AppModules, type AppOptions, type CreatedApp, type CustomAction, type Method, type Named, NotImplementedError, type Params, Rejected, type Resource, type ResourceOptions, Route, type RouteBuilder, type RouteContext, type RouteHandler, type RouteOptions, type Runtime, type User, createApp, fail };
|
|
2
|
+
import { A as RouteContext, C as AppConfig, D as Params, E as Method, H as Rejected, M as RouteOptions, N as User, O as Route, S as ResourceOptions, T as WriteContext, U as fail, _ as Schedule, b as CustomAction, d as NotImplementedError, f as AppModules, g as createApp, h as CreatedApp, j as RouteHandler, k as RouteBuilder, m as AppOptions, p as App, v as ScheduleContext, w as Named, x as Resource, y as When } from "./index-Bb9Px6SR.js";
|
|
3
|
+
export { type App, type AppConfig, type AppCore, type AppModules, type AppOptions, type CreatedApp, type CustomAction, type Method, type Named, NotImplementedError, type Params, Rejected, type Resource, type ResourceOptions, Route, type RouteBuilder, type RouteContext, type RouteHandler, type RouteOptions, type Runtime, Schedule, type ScheduleContext, type User, type When, type WriteContext, createApp, fail };
|