alepha 0.10.2 → 0.10.3

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 CHANGED
@@ -128,8 +128,8 @@ class Db {
128
128
  handler: async () => {
129
129
  await this.users.create({
130
130
  name: "John Doe",
131
- })
132
- this.log.info("Users:", await this.users.find())
131
+ });
132
+ this.log.info("Users:", await this.users.find());
133
133
  }
134
134
  })
135
135
  }
@@ -141,7 +141,7 @@ run(Db)
141
141
  node app.ts
142
142
  ```
143
143
 
144
- ### React SSR Page
144
+ ### React Application
145
145
 
146
146
  Alepha has built-in React **CSR** & **SSR** support.
147
147
 
@@ -158,8 +158,8 @@ import { run, t } from "alepha";
158
158
  import { $page } from "alepha/react";
159
159
  import { useState } from "react";
160
160
 
161
- const Hello = (props: { start: number }) => {
162
- const [ count, setCount ] = useState(props.start);
161
+ const Hello = (props: { count: number }) => {
162
+ const [ count, setCount ] = useState(props.count);
163
163
  return <button onClick={() => setCount(count + 1)}>Clicked: {count}</button>
164
164
  }
165
165
 
@@ -167,12 +167,12 @@ class HomePage {
167
167
  index = $page({
168
168
  schema: {
169
169
  query: t.object({
170
- s: t.number({ default: 0 }),
170
+ start: t.number({ default: 0 }),
171
171
  })
172
172
  },
173
173
  component: Hello,
174
174
  resolve: (req) => {
175
- return { start: req.query.s };
175
+ return { count: req.query.start };
176
176
  },
177
177
  });
178
178
  }
@@ -186,6 +186,8 @@ run(HomePage);
186
186
  npm install -D vite
187
187
  ```
188
188
 
189
+ Add the Alepha Vite plugin to your Vite config:
190
+
189
191
  ```ts
190
192
  // vite.config.ts
191
193
  import { viteAlepha } from "alepha/vite";
@@ -198,6 +200,8 @@ export default defineConfig({
198
200
  });
199
201
  ```
200
202
 
203
+ Create an `index.html` file:
204
+
201
205
  ```html
202
206
  <!-- index.html -->
203
207
  <!DOCTYPE html>
@@ -212,18 +216,12 @@ export default defineConfig({
212
216
  </html>
213
217
  ```
214
218
 
219
+ Then run Vite:
220
+
215
221
  ```bash
216
222
  npx vite
217
223
  ```
218
224
 
219
- ## Core Concepts
220
-
221
- - **Descriptors**: Define your app logic with `$action`, `$page`, `$repository`, `$cache`, `$email`, etc.
222
- - **Type Safety**: TypeBox schemas validate data from DB to API to frontend
223
- - **DI Container**: Built-in dependency injection using `$inject()`
224
- - **Convention over Config**: Minimal boilerplate, sensible defaults
225
- - **Full-Stack**: React SSR, Vite, class-based router with type-safe routing
226
-
227
225
  Plenty of other features are available, please check the [documentation](https://feunard.github.io/alepha/).
228
226
 
229
227
  ## License
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alepha",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22.0.0"
@@ -15,48 +15,48 @@
15
15
  "main": "./core.js",
16
16
  "types": "./core.d.ts",
17
17
  "dependencies": {
18
- "@alepha/batch": "0.10.2",
19
- "@alepha/bucket": "0.10.2",
20
- "@alepha/cache": "0.10.2",
21
- "@alepha/cache-redis": "0.10.2",
22
- "@alepha/command": "0.10.2",
23
- "@alepha/core": "0.10.2",
24
- "@alepha/datetime": "0.10.2",
25
- "@alepha/email": "0.10.2",
26
- "@alepha/file": "0.10.2",
27
- "@alepha/lock": "0.10.2",
28
- "@alepha/lock-redis": "0.10.2",
29
- "@alepha/logger": "0.10.2",
30
- "@alepha/postgres": "0.10.2",
31
- "@alepha/queue": "0.10.2",
32
- "@alepha/queue-redis": "0.10.2",
33
- "@alepha/react": "0.10.2",
34
- "@alepha/react-auth": "0.10.2",
35
- "@alepha/react-form": "0.10.2",
36
- "@alepha/react-head": "0.10.2",
37
- "@alepha/react-i18n": "0.10.2",
38
- "@alepha/redis": "0.10.2",
39
- "@alepha/retry": "0.10.2",
40
- "@alepha/router": "0.10.2",
41
- "@alepha/scheduler": "0.10.2",
42
- "@alepha/security": "0.10.2",
43
- "@alepha/server": "0.10.2",
44
- "@alepha/server-cache": "0.10.2",
45
- "@alepha/server-compress": "0.10.2",
46
- "@alepha/server-cookies": "0.10.2",
47
- "@alepha/server-cors": "0.10.2",
48
- "@alepha/server-health": "0.10.2",
49
- "@alepha/server-helmet": "0.10.2",
50
- "@alepha/server-links": "0.10.2",
51
- "@alepha/server-metrics": "0.10.2",
52
- "@alepha/server-multipart": "0.10.2",
53
- "@alepha/server-proxy": "0.10.2",
54
- "@alepha/server-security": "0.10.2",
55
- "@alepha/server-static": "0.10.2",
56
- "@alepha/server-swagger": "0.10.2",
57
- "@alepha/topic": "0.10.2",
58
- "@alepha/topic-redis": "0.10.2",
59
- "@alepha/vite": "0.10.2"
18
+ "@alepha/batch": "0.10.3",
19
+ "@alepha/bucket": "0.10.3",
20
+ "@alepha/cache": "0.10.3",
21
+ "@alepha/cache-redis": "0.10.3",
22
+ "@alepha/command": "0.10.3",
23
+ "@alepha/core": "0.10.3",
24
+ "@alepha/datetime": "0.10.3",
25
+ "@alepha/email": "0.10.3",
26
+ "@alepha/file": "0.10.3",
27
+ "@alepha/lock": "0.10.3",
28
+ "@alepha/lock-redis": "0.10.3",
29
+ "@alepha/logger": "0.10.3",
30
+ "@alepha/postgres": "0.10.3",
31
+ "@alepha/queue": "0.10.3",
32
+ "@alepha/queue-redis": "0.10.3",
33
+ "@alepha/react": "0.10.3",
34
+ "@alepha/react-auth": "0.10.3",
35
+ "@alepha/react-form": "0.10.3",
36
+ "@alepha/react-head": "0.10.3",
37
+ "@alepha/react-i18n": "0.10.3",
38
+ "@alepha/redis": "0.10.3",
39
+ "@alepha/retry": "0.10.3",
40
+ "@alepha/router": "0.10.3",
41
+ "@alepha/scheduler": "0.10.3",
42
+ "@alepha/security": "0.10.3",
43
+ "@alepha/server": "0.10.3",
44
+ "@alepha/server-cache": "0.10.3",
45
+ "@alepha/server-compress": "0.10.3",
46
+ "@alepha/server-cookies": "0.10.3",
47
+ "@alepha/server-cors": "0.10.3",
48
+ "@alepha/server-health": "0.10.3",
49
+ "@alepha/server-helmet": "0.10.3",
50
+ "@alepha/server-links": "0.10.3",
51
+ "@alepha/server-metrics": "0.10.3",
52
+ "@alepha/server-multipart": "0.10.3",
53
+ "@alepha/server-proxy": "0.10.3",
54
+ "@alepha/server-security": "0.10.3",
55
+ "@alepha/server-static": "0.10.3",
56
+ "@alepha/server-swagger": "0.10.3",
57
+ "@alepha/topic": "0.10.3",
58
+ "@alepha/topic-redis": "0.10.3",
59
+ "@alepha/vite": "0.10.3"
60
60
  },
61
61
  "devDependencies": {
62
62
  "tsdown": "^0.15.6"
package/postgres.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _alepha_core1 from "alepha";
2
2
  import { Alepha, AlephaError, Descriptor, KIND, Service, Static, TArray, TBigInt, TBoolean, TInteger, TKeysToIndexer, TNull, TNumber, TNumberOptions, TObject, TObjectOptions, TOptional, TOptionalAdd, TPick, TRecord, TSchema as TSchema$1, TString, TStringOptions, TUnion } from "alepha";
3
- import * as drizzle_orm0 from "drizzle-orm";
3
+ import * as drizzle_orm6 from "drizzle-orm";
4
4
  import { BuildColumns, BuildExtraConfigColumns, SQL, SQLWrapper, TableConfig, sql } from "drizzle-orm";
5
5
  import * as pg$1 from "drizzle-orm/pg-core";
6
6
  import { AnyPgColumn, LockConfig, LockStrength, PgColumn, PgColumnBuilderBase, PgDatabase, PgInsertValue, PgSequenceOptions, PgTableExtraConfigValue, PgTableWithColumns, PgTransaction, PgTransactionConfig, SelectedFields, TableConfig as TableConfig$1, UpdateDeleteAction } from "drizzle-orm/pg-core";
@@ -10,7 +10,7 @@ import * as _alepha_lock0 from "alepha/lock";
10
10
  import { PostgresJsDatabase } from "drizzle-orm/postgres-js";
11
11
  import postgres from "postgres";
12
12
  import * as _alepha_retry0 from "alepha/retry";
13
- import * as typebox0 from "typebox";
13
+ import * as typebox1 from "typebox";
14
14
  import { PgTransactionConfig as PgTransactionConfig$1 } from "drizzle-orm/pg-core/session";
15
15
  import * as DrizzleKit from "drizzle-kit/api";
16
16
  import { MigrationConfig } from "drizzle-orm/migrator";
@@ -105,14 +105,14 @@ declare const schemaToPgColumns: <T extends TObject>(schema: T) => FromSchema<T>
105
105
  * @param value The value of the field.
106
106
  * @returns The PG column.
107
107
  */
108
- declare const mapFieldToColumn: (name: string, value: TSchema$1) => pg$1.PgSerialBuilderInitial<string> | pg$1.PgIntegerBuilderInitial<string> | drizzle_orm0.IsIdentity<pg$1.PgBigInt64BuilderInitial<"">, "byDefault"> | drizzle_orm0.IsIdentity<pg$1.PgBigInt64BuilderInitial<"">, "always"> | pg$1.PgBigInt53BuilderInitial<string> | pg$1.PgNumericBuilderInitial<string> | pg$1.PgTimestampBuilderInitial<string> | pg$1.PgUUIDBuilderInitial<string> | pg$1.PgCustomColumnBuilder<{
108
+ declare const mapFieldToColumn: (name: string, value: TSchema$1) => pg$1.PgSerialBuilderInitial<string> | pg$1.PgIntegerBuilderInitial<string> | drizzle_orm6.IsIdentity<pg$1.PgBigInt64BuilderInitial<"">, "byDefault"> | drizzle_orm6.IsIdentity<pg$1.PgBigInt64BuilderInitial<"">, "always"> | pg$1.PgBigInt53BuilderInitial<string> | pg$1.PgNumericBuilderInitial<string> | pg$1.PgTimestampBuilderInitial<string> | pg$1.PgUUIDBuilderInitial<string> | pg$1.PgCustomColumnBuilder<{
109
109
  name: string;
110
110
  dataType: "custom";
111
111
  columnType: "PgCustomColumn";
112
112
  data: Buffer<ArrayBufferLike>;
113
113
  driverParam: unknown;
114
114
  enumValues: undefined;
115
- }> | pg$1.PgTimestampStringBuilderInitial<string> | pg$1.PgDateStringBuilderInitial<string> | pg$1.PgTextBuilderInitial<string, [string, ...string[]]> | pg$1.PgBooleanBuilderInitial<string> | drizzle_orm0.$Type<pg$1.PgCustomColumnBuilder<{
115
+ }> | pg$1.PgTimestampStringBuilderInitial<string> | pg$1.PgDateStringBuilderInitial<string> | pg$1.PgTextBuilderInitial<string, [string, ...string[]]> | pg$1.PgBooleanBuilderInitial<string> | drizzle_orm6.$Type<pg$1.PgCustomColumnBuilder<{
116
116
  name: string;
117
117
  dataType: "custom";
118
118
  columnType: "PgCustomColumn";
@@ -127,14 +127,14 @@ declare const mapFieldToColumn: (name: string, value: TSchema$1) => pg$1.PgSeria
127
127
  [x: string]: unknown;
128
128
  [x: number]: unknown;
129
129
  [x: symbol]: unknown;
130
- }> | drizzle_orm0.$Type<pg$1.PgCustomColumnBuilder<{
130
+ }> | drizzle_orm6.$Type<pg$1.PgCustomColumnBuilder<{
131
131
  name: string;
132
132
  dataType: "custom";
133
133
  columnType: "PgCustomColumn";
134
134
  data: Record<string, unknown>;
135
135
  driverParam: string;
136
136
  enumValues: undefined;
137
- }>, Record<string, unknown>> | drizzle_orm0.$Type<pg$1.PgCustomColumnBuilder<{
137
+ }>, Record<string, unknown>> | drizzle_orm6.$Type<pg$1.PgCustomColumnBuilder<{
138
138
  name: string;
139
139
  dataType: "custom";
140
140
  columnType: "PgCustomColumn";
@@ -1235,10 +1235,10 @@ declare abstract class PostgresProvider {
1235
1235
  }
1236
1236
  //#endregion
1237
1237
  //#region src/schemas/pageQuerySchema.d.ts
1238
- declare const pageQuerySchema: typebox0.TObject<{
1239
- page: typebox0.TOptional<typebox0.TInteger>;
1240
- size: typebox0.TOptional<typebox0.TInteger>;
1241
- sort: typebox0.TOptional<typebox0.TString>;
1238
+ declare const pageQuerySchema: typebox1.TObject<{
1239
+ page: typebox1.TOptional<typebox1.TInteger>;
1240
+ size: typebox1.TOptional<typebox1.TInteger>;
1241
+ sort: typebox1.TOptional<typebox1.TString>;
1242
1242
  }>;
1243
1243
  type PageQuery = Static<typeof pageQuerySchema>;
1244
1244
  //#endregion
@@ -1685,7 +1685,7 @@ declare class RepositoryDescriptor<EntityTableConfig extends TableConfig, Entity
1685
1685
  /**
1686
1686
  * Getter for the database connection from the database provider.
1687
1687
  */
1688
- protected get db(): PgDatabase<any, Record<string, never>, drizzle_orm0.ExtractTablesWithRelations<Record<string, never>>>;
1688
+ protected get db(): PgDatabase<any, Record<string, never>, drizzle_orm6.ExtractTablesWithRelations<Record<string, never>>>;
1689
1689
  /**
1690
1690
  * Execute a SQL query.
1691
1691
  */
@@ -1710,10 +1710,10 @@ declare class RepositoryDescriptor<EntityTableConfig extends TableConfig, Entity
1710
1710
  *
1711
1711
  * @returns The SELECT query builder.
1712
1712
  */
1713
- protected select(opts?: StatementOptions): pg$1.PgSelectBase<string, Record<string, PgColumn<drizzle_orm0.ColumnBaseConfig<drizzle_orm0.ColumnDataType, string>, {}, {}>>, "single", Record<string, "not-null">, false, never, {
1713
+ protected select(opts?: StatementOptions): pg$1.PgSelectBase<string, Record<string, PgColumn<drizzle_orm6.ColumnBaseConfig<drizzle_orm6.ColumnDataType, string>, {}, {}>>, "single", Record<string, "not-null">, false, never, {
1714
1714
  [x: string]: unknown;
1715
1715
  }[], {
1716
- [x: string]: PgColumn<drizzle_orm0.ColumnBaseConfig<drizzle_orm0.ColumnDataType, string>, {}, {}>;
1716
+ [x: string]: PgColumn<drizzle_orm6.ColumnBaseConfig<drizzle_orm6.ColumnDataType, string>, {}, {}>;
1717
1717
  }>;
1718
1718
  protected selectDistinct(opts: StatementOptions | undefined, fields: SelectedFields): pg$1.PgSelectBase<string, SelectedFields, "partial", Record<string, "not-null">, false, never, {
1719
1719
  [x: string]: unknown;
@@ -1930,7 +1930,7 @@ declare class RepositoryDescriptor<EntityTableConfig extends TableConfig, Entity
1930
1930
  */
1931
1931
  protected getPrimaryKey(schema: TObject): {
1932
1932
  key: string;
1933
- col: PgColumn<drizzle_orm0.ColumnBaseConfig<drizzle_orm0.ColumnDataType, string>, {}, {}>;
1933
+ col: PgColumn<drizzle_orm6.ColumnBaseConfig<drizzle_orm6.ColumnDataType, string>, {}, {}>;
1934
1934
  type: TSchema$1;
1935
1935
  };
1936
1936
  }
@@ -2668,7 +2668,7 @@ declare class PostgresTypeProvider {
2668
2668
  * This is used to mark rows as deleted without actually removing them from the database.
2669
2669
  * The column is nullable - NULL means not deleted, timestamp means deleted.
2670
2670
  */
2671
- readonly deletedAt: (options?: TStringOptions) => PgAttr<typebox0.TOptional<TString>, typeof PG_DELETED_AT>;
2671
+ readonly deletedAt: (options?: TStringOptions) => PgAttr<typebox1.TOptional<TString>, typeof PG_DELETED_AT>;
2672
2672
  /**
2673
2673
  * Creates a reference to another table or schema. Basically a foreign key.
2674
2674
  */
@@ -2688,13 +2688,13 @@ declare const pg: PostgresTypeProvider;
2688
2688
  /**
2689
2689
  * @deprecated Use `pg.primaryKey()` instead.
2690
2690
  */
2691
- declare const legacyIdSchema: PgAttr<PgAttr<PgAttr<typebox0.TInteger, typeof PG_PRIMARY_KEY>, typeof PG_SERIAL>, typeof PG_DEFAULT>;
2691
+ declare const legacyIdSchema: PgAttr<PgAttr<PgAttr<typebox1.TInteger, typeof PG_PRIMARY_KEY>, typeof PG_SERIAL>, typeof PG_DEFAULT>;
2692
2692
  //#endregion
2693
2693
  //#region src/types/schema.d.ts
2694
2694
  /**
2695
2695
  * Postgres schema type.
2696
2696
  */
2697
- declare const schema: <TDocument extends TSchema$1>(name: string, document: TDocument) => drizzle_orm0.$Type<pg$1.PgCustomColumnBuilder<{
2697
+ declare const schema: <TDocument extends TSchema$1>(name: string, document: TDocument) => drizzle_orm6.$Type<pg$1.PgCustomColumnBuilder<{
2698
2698
  name: string;
2699
2699
  dataType: "custom";
2700
2700
  columnType: "PgCustomColumn";
@@ -2746,5 +2746,5 @@ declare const schema: <TDocument extends TSchema$1>(name: string, document: TDoc
2746
2746
  */
2747
2747
  declare const AlephaPostgres: _alepha_core1.Service<_alepha_core1.Module<{}>>;
2748
2748
  //#endregion
2749
- export { $entity, $repository, $sequence, $transaction, AlephaPostgres, DrizzleKitProvider, Entity, EntityDescriptorOptions, FilterOperators, FromSchema, NodePostgresProvider, NodePostgresProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SCHEMA, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, Page, PageQuery, PgDefault, PgEntityNotFoundError, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryResult, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgSymbolKeys, PgSymbols, PgTableConfig, PgTableWithColumnsAndSchema, PostgresProvider, PostgresTypeProvider, RepositoryDescriptor, RepositoryDescriptorOptions, RepositoryProvider, SQLLike, SequenceDescriptor, SequenceDescriptorOptions, StatementOptions, TObjectInsert, TObjectUpdate, TPage, TransactionContext, TransactionDescriptorOptions, camelToSnakeCase, drizzle_orm0 as drizzle, insertSchema, legacyIdSchema, mapFieldToColumn, mapStringToColumn, pageQuerySchema, pageSchema, pg, schema, schemaToPgColumns, sql, updateSchema };
2749
+ export { $entity, $repository, $sequence, $transaction, AlephaPostgres, DrizzleKitProvider, Entity, EntityDescriptorOptions, FilterOperators, FromSchema, NodePostgresProvider, NodePostgresProviderOptions, OrderBy, OrderByClause, OrderDirection, PG_CREATED_AT, PG_DEFAULT, PG_DELETED_AT, PG_IDENTITY, PG_PRIMARY_KEY, PG_REF, PG_SCHEMA, PG_SERIAL, PG_UPDATED_AT, PG_VERSION, Page, PageQuery, PgDefault, PgEntityNotFoundError, PgIdentityOptions, PgPrimaryKey, PgQuery, PgQueryResult, PgQueryWhere, PgQueryWhereOrSQL, PgRef, PgRefOptions, PgSymbolKeys, PgSymbols, PgTableConfig, PgTableWithColumnsAndSchema, PostgresProvider, PostgresTypeProvider, RepositoryDescriptor, RepositoryDescriptorOptions, RepositoryProvider, SQLLike, SequenceDescriptor, SequenceDescriptorOptions, StatementOptions, TObjectInsert, TObjectUpdate, TPage, TransactionContext, TransactionDescriptorOptions, camelToSnakeCase, drizzle_orm6 as drizzle, insertSchema, legacyIdSchema, mapFieldToColumn, mapStringToColumn, pageQuerySchema, pageSchema, pg, schema, schemaToPgColumns, sql, updateSchema };
2750
2750
  //# sourceMappingURL=index.d.ts.map
package/react/form.d.ts CHANGED
@@ -65,7 +65,7 @@ type FormCtrlOptions<T extends TObject> = {
65
65
  * Optional initial values for the form fields.
66
66
  * This can be used to pre-populate the form with existing data.
67
67
  */
68
- initialValues?: Static<T>;
68
+ initialValues?: Partial<Static<T>>;
69
69
  /**
70
70
  * Optional function to create custom field attributes.
71
71
  * This can be used to add custom validation, styles, or other attributes.
package/react.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import * as _alepha_core5 from "alepha";
1
+ import * as _alepha_core14 from "alepha";
2
2
  import { Alepha, Async, Descriptor, Hooks, KIND, Service, State, Static, TObject, TSchema } from "alepha";
3
3
  import { RequestConfigSchema, ServerHandler, ServerProvider, ServerRequest, ServerRouterProvider, ServerTimingProvider } from "alepha/server";
4
4
  import { ServerRouteCache } from "alepha/server/cache";
5
5
  import { ClientScope, HttpVirtualClient, LinkProvider, VirtualAction } from "alepha/server/links";
6
- import * as _alepha_logger0 from "alepha/logger";
6
+ import * as _alepha_logger1 from "alepha/logger";
7
7
  import * as react0 from "react";
8
8
  import React, { AnchorHTMLAttributes, CSSProperties, ErrorInfo, FC, PropsWithChildren, ReactNode } from "react";
9
9
  import * as react_jsx_runtime0 from "react/jsx-runtime";
@@ -40,14 +40,14 @@ declare class Redirection extends Error {
40
40
  }
41
41
  //#endregion
42
42
  //#region src/providers/ReactPageProvider.d.ts
43
- declare const envSchema$2: _alepha_core5.TObject<{
44
- REACT_STRICT_MODE: _alepha_core5.TBoolean;
43
+ declare const envSchema$2: _alepha_core14.TObject<{
44
+ REACT_STRICT_MODE: _alepha_core14.TBoolean;
45
45
  }>;
46
46
  declare module "alepha" {
47
47
  interface Env extends Partial<Static<typeof envSchema$2>> {}
48
48
  }
49
49
  declare class ReactPageProvider {
50
- protected readonly log: _alepha_logger0.Logger;
50
+ protected readonly log: _alepha_logger1.Logger;
51
51
  protected readonly env: {
52
52
  REACT_STRICT_MODE: boolean;
53
53
  };
@@ -83,7 +83,7 @@ declare class ReactPageProvider {
83
83
  }, params?: Record<string, any>): string;
84
84
  compile(path: string, params?: Record<string, string>): string;
85
85
  protected renderView(index: number, path: string, view: ReactNode | undefined, page: PageRoute): ReactNode;
86
- protected readonly configure: _alepha_core5.HookDescriptor<"configure">;
86
+ protected readonly configure: _alepha_core14.HookDescriptor<"configure">;
87
87
  protected map(pages: Array<PageDescriptor>, target: PageDescriptor): PageRouteEntry;
88
88
  add(entry: PageRouteEntry): void;
89
89
  protected createMatch(page: PageRoute): string;
@@ -489,18 +489,18 @@ interface BrowserRoute extends Route {
489
489
  page: PageRoute;
490
490
  }
491
491
  declare class ReactBrowserRouterProvider extends RouterProvider<BrowserRoute> {
492
- protected readonly log: _alepha_logger0.Logger;
492
+ protected readonly log: _alepha_logger1.Logger;
493
493
  protected readonly alepha: Alepha;
494
494
  protected readonly pageApi: ReactPageProvider;
495
495
  add(entry: PageRouteEntry): void;
496
- protected readonly configure: _alepha_core5.HookDescriptor<"configure">;
496
+ protected readonly configure: _alepha_core14.HookDescriptor<"configure">;
497
497
  transition(url: URL, previous?: PreviousLayerData[], meta?: {}): Promise<string | void>;
498
498
  root(state: ReactRouterState): ReactNode;
499
499
  }
500
500
  //#endregion
501
501
  //#region src/providers/ReactBrowserProvider.d.ts
502
- declare const envSchema$1: _alepha_core5.TObject<{
503
- REACT_ROOT_ID: _alepha_core5.TString;
502
+ declare const envSchema$1: _alepha_core14.TObject<{
503
+ REACT_ROOT_ID: _alepha_core14.TString;
504
504
  }>;
505
505
  declare module "alepha" {
506
506
  interface Env extends Partial<Static<typeof envSchema$1>> {}
@@ -512,7 +512,7 @@ declare class ReactBrowserProvider {
512
512
  protected readonly env: {
513
513
  REACT_ROOT_ID: string;
514
514
  };
515
- protected readonly log: _alepha_logger0.Logger;
515
+ protected readonly log: _alepha_logger1.Logger;
516
516
  protected readonly client: LinkProvider;
517
517
  protected readonly alepha: Alepha;
518
518
  protected readonly router: ReactBrowserRouterProvider;
@@ -546,8 +546,8 @@ declare class ReactBrowserProvider {
546
546
  * Get embedded layers from the server.
547
547
  */
548
548
  protected getHydrationState(): ReactHydrationState | undefined;
549
- protected readonly onTransitionEnd: _alepha_core5.HookDescriptor<"react:transition:end">;
550
- readonly ready: _alepha_core5.HookDescriptor<"ready">;
549
+ protected readonly onTransitionEnd: _alepha_core14.HookDescriptor<"react:transition:end">;
550
+ readonly ready: _alepha_core14.HookDescriptor<"ready">;
551
551
  }
552
552
  interface RouterGoOptions {
553
553
  replace?: boolean;
@@ -713,6 +713,11 @@ declare class ReactRouter<T extends object> {
713
713
  params?: Record<string, any>;
714
714
  query?: Record<string, any>;
715
715
  }): string;
716
+ /**
717
+ * Reload the current page.
718
+ * This is equivalent to calling `go()` with the current pathname and search.
719
+ */
720
+ reload(): Promise<void>;
716
721
  getURL(): URL;
717
722
  get location(): Location;
718
723
  get current(): ReactRouterState;
@@ -795,12 +800,12 @@ declare const ssrSchemaLoading: (alepha: Alepha, name: string) => RequestConfigS
795
800
  declare const useStore: <Key extends keyof State>(key: Key, defaultValue?: State[Key]) => [State[Key], (value: State[Key]) => void];
796
801
  //#endregion
797
802
  //#region src/providers/ReactServerProvider.d.ts
798
- declare const envSchema: _alepha_core5.TObject<{
799
- REACT_SERVER_DIST: _alepha_core5.TString;
800
- REACT_SERVER_PREFIX: _alepha_core5.TString;
801
- REACT_SSR_ENABLED: _alepha_core5.TOptional<_alepha_core5.TBoolean>;
802
- REACT_ROOT_ID: _alepha_core5.TString;
803
- REACT_SERVER_TEMPLATE: _alepha_core5.TOptional<_alepha_core5.TString>;
803
+ declare const envSchema: _alepha_core14.TObject<{
804
+ REACT_SERVER_DIST: _alepha_core14.TString;
805
+ REACT_SERVER_PREFIX: _alepha_core14.TString;
806
+ REACT_SSR_ENABLED: _alepha_core14.TOptional<_alepha_core14.TBoolean>;
807
+ REACT_ROOT_ID: _alepha_core14.TString;
808
+ REACT_SERVER_TEMPLATE: _alepha_core14.TOptional<_alepha_core14.TString>;
804
809
  }>;
805
810
  declare module "alepha" {
806
811
  interface Env extends Partial<Static<typeof envSchema>> {}
@@ -809,7 +814,7 @@ declare module "alepha" {
809
814
  }
810
815
  }
811
816
  declare class ReactServerProvider {
812
- protected readonly log: _alepha_logger0.Logger;
817
+ protected readonly log: _alepha_logger1.Logger;
813
818
  protected readonly alepha: Alepha;
814
819
  protected readonly pageApi: ReactPageProvider;
815
820
  protected readonly serverProvider: ServerProvider;
@@ -819,13 +824,13 @@ declare class ReactServerProvider {
819
824
  protected readonly env: {
820
825
  REACT_SSR_ENABLED?: boolean | undefined;
821
826
  REACT_SERVER_TEMPLATE?: string | undefined;
822
- REACT_ROOT_ID: string;
823
827
  REACT_SERVER_DIST: string;
824
828
  REACT_SERVER_PREFIX: string;
829
+ REACT_ROOT_ID: string;
825
830
  };
826
831
  protected readonly ROOT_DIV_REGEX: RegExp;
827
832
  protected preprocessedTemplate: PreprocessedTemplate | null;
828
- readonly onConfigure: _alepha_core5.HookDescriptor<"configure">;
833
+ readonly onConfigure: _alepha_core14.HookDescriptor<"configure">;
829
834
  get template(): string;
830
835
  protected registerPages(templateLoader: TemplateLoader): Promise<void>;
831
836
  protected getPublicDirectory(): string;
@@ -898,7 +903,7 @@ declare module "alepha" {
898
903
  * @see {@link $page}
899
904
  * @module alepha.react
900
905
  */
901
- declare const AlephaReact: _alepha_core5.Service<_alepha_core5.Module<{}>>;
906
+ declare const AlephaReact: _alepha_core14.Service<_alepha_core14.Module<{}>>;
902
907
  //#endregion
903
908
  export { $page, AlephaContext, AlephaReact, AnchorProps, ClientOnly, CreateLayersResult, ErrorBoundary, ErrorHandler, ErrorViewer, Layer, Link, LinkProps, _default as NestedView, NotFoundPage as NotFound, PageAnimation, PageConfigSchema, PageDescriptor, PageDescriptorOptions, PageDescriptorRenderOptions, PageDescriptorRenderResult, PageRequestConfig, PageResolve, PageRoute, PageRouteEntry, PreviousLayerData, ReactBrowserProvider, ReactBrowserRendererOptions, ReactHydrationState, ReactPageProvider, ReactRouter, ReactRouterState, ReactServerProvider, Redirection, RouterGoOptions, RouterLayerContext, RouterLayerContextValue, RouterRenderOptions, RouterStackItem, TPropsDefault, TPropsParentDefault, TransitionOptions, UseActiveHook, UseActiveOptions, UseQueryParamsHookOptions, UseSchemaReturn, VirtualRouter, isPageRoute, ssrSchemaLoading, useActive, useAlepha, useClient, useInject, useQueryParams, useRouter, useRouterEvents, useRouterState, useSchema, useStore };
904
909
  //# sourceMappingURL=index.d.ts.map
package/security.d.ts CHANGED
@@ -131,7 +131,7 @@ interface JwtParseResult {
131
131
  //#endregion
132
132
  //#region src/providers/SecurityProvider.d.ts
133
133
  declare const envSchema: _alepha_core1.TObject<{
134
- SECURITY_SECRET_KEY: _alepha_core1.TString;
134
+ APP_SECRET: _alepha_core1.TString;
135
135
  }>;
136
136
  declare module "alepha" {
137
137
  interface Env extends Partial<Static<typeof envSchema>> {}
@@ -143,9 +143,10 @@ declare class SecurityProvider {
143
143
  protected readonly log: _alepha_logger1.Logger;
144
144
  protected readonly jwt: JwtProvider;
145
145
  protected readonly env: {
146
- SECURITY_SECRET_KEY: string;
146
+ APP_SECRET: string;
147
147
  };
148
148
  protected readonly alepha: Alepha;
149
+ get secretKey(): string;
149
150
  /**
150
151
  * The permissions configured for the security provider.
151
152
  */
@@ -2,6 +2,7 @@ import * as _alepha_core1 from "alepha";
2
2
  import { Alepha, Descriptor, KIND, Static, TSchema } from "alepha";
3
3
  import { DateTimeProvider, DurationLike } from "alepha/datetime";
4
4
  import * as _alepha_logger0 from "alepha/logger";
5
+ import { SecurityProvider } from "alepha/security";
5
6
 
6
7
  //#region src/services/CookieParser.d.ts
7
8
  declare class CookieParser {
@@ -11,23 +12,12 @@ declare class CookieParser {
11
12
  }
12
13
  //#endregion
13
14
  //#region src/providers/ServerCookiesProvider.d.ts
14
- declare const envSchema: _alepha_core1.TObject<{
15
- /**
16
- * A 32-byte secret key used for cookie encryption and signing. MUST be set for `encrypt` or `sign` to work.
17
- */
18
- COOKIE_SECRET: _alepha_core1.TOptional<_alepha_core1.TString>;
19
- }>;
20
- declare module "alepha" {
21
- interface Env extends Partial<Static<typeof envSchema>> {}
22
- }
23
15
  declare class ServerCookiesProvider {
24
16
  protected readonly alepha: Alepha;
25
17
  protected readonly log: _alepha_logger0.Logger;
26
- protected readonly env: {
27
- COOKIE_SECRET?: string | undefined;
28
- };
29
18
  protected readonly cookieParser: CookieParser;
30
19
  protected readonly dateTimeProvider: DateTimeProvider;
20
+ protected readonly securityProvider: SecurityProvider;
31
21
  protected readonly ALGORITHM = "aes-256-gcm";
32
22
  protected readonly IV_LENGTH = 16;
33
23
  protected readonly AUTH_TAG_LENGTH = 16;
package/server/links.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import "alepha/server/security";
2
- import * as _alepha_core2 from "alepha";
2
+ import * as _alepha_core1 from "alepha";
3
3
  import { Alepha, Descriptor, KIND, Static } from "alepha";
4
4
  import * as _alepha_server0 from "alepha/server";
5
5
  import { ActionDescriptor, ClientRequestEntry, ClientRequestOptions, ClientRequestResponse, FetchResponse, HttpClient, RequestConfigSchema, ServerHandler, ServerRequestConfigEntry, ServerTimingProvider } from "alepha/server";
@@ -181,8 +181,8 @@ declare class RemoteDescriptorProvider {
181
181
  protected readonly remotes: Array<ServerRemote>;
182
182
  protected readonly log: _alepha_logger0.Logger;
183
183
  getRemotes(): ServerRemote[];
184
- readonly configure: _alepha_core2.HookDescriptor<"configure">;
185
- readonly start: _alepha_core2.HookDescriptor<"start">;
184
+ readonly configure: _alepha_core1.HookDescriptor<"configure">;
185
+ readonly start: _alepha_core1.HookDescriptor<"start">;
186
186
  registerRemote(value: RemoteDescriptor): Promise<void>;
187
187
  protected readonly fetchLinks: _alepha_retry0.RetryDescriptorFn<(opts: FetchLinksOptions) => Promise<ApiLinksResponse>>;
188
188
  }
@@ -250,7 +250,7 @@ declare class ServerLinksProvider {
250
250
  protected readonly remoteProvider: RemoteDescriptorProvider;
251
251
  protected readonly serverTimingProvider: ServerTimingProvider;
252
252
  get prefix(): string;
253
- readonly onRoute: _alepha_core2.HookDescriptor<"configure">;
253
+ readonly onRoute: _alepha_core1.HookDescriptor<"configure">;
254
254
  /**
255
255
  * First API - Get all API links for the user.
256
256
  *
@@ -310,7 +310,7 @@ declare module "alepha" {
310
310
  * @see {@link $client}
311
311
  * @module alepha.server.links
312
312
  */
313
- declare const AlephaServerLinks: _alepha_core2.Service<_alepha_core2.Module<{}>>;
313
+ declare const AlephaServerLinks: _alepha_core1.Service<_alepha_core1.Module<{}>>;
314
314
  //#endregion
315
315
  export { $client, $remote, AlephaServerLinks, ApiLink, ApiLinksResponse, ClientScope, FetchLinksOptions, GetApiLinksOptions, HttpClientLink, HttpVirtualClient, LinkProvider, RemoteDescriptor, RemoteDescriptorOptions, RemoteDescriptorProvider, ServerLinksProvider, ServerRemote, VirtualAction, apiLinkSchema, apiLinksResponseSchema };
316
316
  //# sourceMappingURL=index.d.ts.map
package/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import * as _alepha_core1 from "alepha";
1
+ import * as _alepha_core11 from "alepha";
2
2
  import { Alepha, AlephaError, Async, Descriptor, FileLike, KIND, Static, StreamLike, TArray, TFile, TObject, TRecord, TSchema, TStream, TString, TVoid } from "alepha";
3
- import * as _alepha_logger0 from "alepha/logger";
3
+ import * as _alepha_logger3 from "alepha/logger";
4
4
  import { Readable } from "node:stream";
5
5
  import { ReadableStream } from "node:stream/web";
6
6
  import { Route, RouterProvider } from "alepha/router";
@@ -176,13 +176,13 @@ declare class ServerRequestParser {
176
176
  //#region src/providers/ServerTimingProvider.d.ts
177
177
  type TimingMap = Record<string, [number, number]>;
178
178
  declare class ServerTimingProvider {
179
- protected readonly log: _alepha_logger0.Logger;
179
+ protected readonly log: _alepha_logger3.Logger;
180
180
  protected readonly alepha: Alepha;
181
181
  options: {
182
182
  disabled: boolean;
183
183
  };
184
- readonly onRequest: _alepha_core1.HookDescriptor<"server:onRequest">;
185
- readonly onResponse: _alepha_core1.HookDescriptor<"server:onResponse">;
184
+ readonly onRequest: _alepha_core11.HookDescriptor<"server:onRequest">;
185
+ readonly onResponse: _alepha_core11.HookDescriptor<"server:onResponse">;
186
186
  protected get handlerName(): string;
187
187
  beginTiming(name: string): void;
188
188
  endTiming(name: string): void;
@@ -222,7 +222,7 @@ declare class ServerRouterProvider extends RouterProvider<ServerRouteMatcher> {
222
222
  //#endregion
223
223
  //#region src/services/HttpClient.d.ts
224
224
  declare class HttpClient {
225
- protected readonly log: _alepha_logger0.Logger;
225
+ protected readonly log: _alepha_logger3.Logger;
226
226
  protected readonly alepha: Alepha;
227
227
  readonly cache: _alepha_cache0.CacheDescriptorFn<HttpClientCache, any[]>;
228
228
  protected readonly pendingRequests: HttpClientPendingRequests;
@@ -541,7 +541,7 @@ interface ActionDescriptorOptions<TConfig extends RequestConfigSchema> extends O
541
541
  handler: ServerActionHandler<TConfig>;
542
542
  }
543
543
  declare class ActionDescriptor<TConfig extends RequestConfigSchema> extends Descriptor<ActionDescriptorOptions<TConfig>> {
544
- protected readonly log: _alepha_logger0.Logger;
544
+ protected readonly log: _alepha_logger3.Logger;
545
545
  protected readonly env: {
546
546
  SERVER_API_PREFIX: string;
547
547
  };
@@ -713,9 +713,9 @@ declare const okSchema: typebox0.TObject<{
713
713
  type Ok = Static<typeof okSchema>;
714
714
  //#endregion
715
715
  //#region src/providers/NodeHttpServerProvider.d.ts
716
- declare const envSchema: _alepha_core1.TObject<{
717
- SERVER_PORT: _alepha_core1.TInteger;
718
- SERVER_HOST: _alepha_core1.TString;
716
+ declare const envSchema: _alepha_core11.TObject<{
717
+ SERVER_PORT: _alepha_core11.TInteger;
718
+ SERVER_HOST: _alepha_core11.TString;
719
719
  }>;
720
720
  declare module "alepha" {
721
721
  interface Env extends Partial<Static<typeof envSchema>> {}
@@ -723,31 +723,31 @@ declare module "alepha" {
723
723
  declare class NodeHttpServerProvider extends ServerProvider {
724
724
  protected readonly alepha: Alepha;
725
725
  protected readonly dateTimeProvider: DateTimeProvider;
726
- protected readonly log: _alepha_logger0.Logger;
726
+ protected readonly log: _alepha_logger3.Logger;
727
727
  protected readonly env: {
728
728
  SERVER_PORT: number;
729
729
  SERVER_HOST: string;
730
730
  };
731
731
  protected readonly router: ServerRouterProvider;
732
732
  protected readonly server: http0.Server<typeof IncomingMessage, typeof ServerResponse$1>;
733
- protected readonly onNodeRequest: _alepha_core1.HookDescriptor<"node:request">;
733
+ protected readonly onNodeRequest: _alepha_core11.HookDescriptor<"node:request">;
734
734
  handle(req: IncomingMessage, res: ServerResponse$1): Promise<void>;
735
735
  createRouterRequest(req: IncomingMessage, res: ServerResponse$1, params?: Record<string, string>): ServerRawRequest;
736
736
  getProtocol(req: IncomingMessage): "http" | "https";
737
737
  get hostname(): string;
738
- readonly start: _alepha_core1.HookDescriptor<"start">;
739
- protected readonly stop: _alepha_core1.HookDescriptor<"stop">;
738
+ readonly start: _alepha_core11.HookDescriptor<"start">;
739
+ protected readonly stop: _alepha_core11.HookDescriptor<"stop">;
740
740
  protected listen(): Promise<void>;
741
741
  protected close(): Promise<void>;
742
742
  }
743
743
  //#endregion
744
744
  //#region src/providers/ServerLoggerProvider.d.ts
745
745
  declare class ServerLoggerProvider {
746
- protected readonly log: _alepha_logger0.Logger;
746
+ protected readonly log: _alepha_logger3.Logger;
747
747
  protected readonly alepha: Alepha;
748
- readonly onRequest: _alepha_core1.HookDescriptor<"server:onRequest">;
749
- readonly onError: _alepha_core1.HookDescriptor<"server:onError">;
750
- readonly onResponse: _alepha_core1.HookDescriptor<"server:onResponse">;
748
+ readonly onRequest: _alepha_core11.HookDescriptor<"server:onRequest">;
749
+ readonly onError: _alepha_core11.HookDescriptor<"server:onError">;
750
+ readonly onResponse: _alepha_core11.HookDescriptor<"server:onResponse">;
751
751
  }
752
752
  //#endregion
753
753
  //#region src/providers/ServerNotReadyProvider.d.ts
@@ -760,7 +760,7 @@ declare class ServerLoggerProvider {
760
760
  */
761
761
  declare class ServerNotReadyProvider {
762
762
  protected readonly alepha: Alepha;
763
- readonly onRequest: _alepha_core1.HookDescriptor<"server:onRequest">;
763
+ readonly onRequest: _alepha_core11.HookDescriptor<"server:onRequest">;
764
764
  }
765
765
  //#endregion
766
766
  //#region src/index.d.ts
@@ -828,7 +828,7 @@ declare module "alepha" {
828
828
  * @see {@link $action}
829
829
  * @module alepha.server
830
830
  */
831
- declare const AlephaServer: _alepha_core1.Service<_alepha_core1.Module<{}>>;
831
+ declare const AlephaServer: _alepha_core11.Service<_alepha_core11.Module<{}>>;
832
832
  //#endregion
833
833
  export { $action, $route, ActionDescriptor, ActionDescriptorFn, ActionDescriptorOptions, AlephaServer, BadRequestError, ClientRequestEntry, ClientRequestEntryContainer, ClientRequestOptions, ClientRequestResponse, ConflictError, ErrorSchema, FetchActionArgs, FetchOptions, FetchResponse, ForbiddenError, HttpAction, HttpClient, HttpClientPendingRequests, HttpError, HttpErrorLike, NodeHttpServerProvider, NotFoundError, Ok, RequestConfigSchema, ResponseBodyType, ResponseKind, RouteDescriptor, RouteDescriptorOptions, RouteMethod, ServerActionHandler, ServerActionRequest, ServerHandler, ServerLoggerProvider, ServerNotReadyProvider, ServerProvider, ServerRawRequest, ServerReply, ServerRequest, ServerRequestConfig, ServerRequestConfigEntry, ServerResponse, ServerResponseBody, ServerRoute, ServerRouteMatcher, ServerRouteRequestHandler, ServerRouterProvider, ServerTimingProvider, TRequestBody, TResponseBody, UnauthorizedError, ValidationError, errorNameByStatus, errorSchema, isHttpError, isMultipart, okSchema, routeMethods };
834
834
  //# sourceMappingURL=index.d.ts.map