@venizia/ignis 0.2.0-48 → 0.2.0-49

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.
Files changed (47) hide show
  1. package/README.md +118 -158
  2. package/dist/base/applications/server.d.ts +2 -0
  3. package/dist/base/applications/server.d.ts.map +1 -1
  4. package/dist/base/applications/server.js +9 -0
  5. package/dist/base/applications/server.js.map +1 -1
  6. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts +1 -1
  7. package/dist/base/middlewares/request-spy/request-spy.middleware.d.ts.map +1 -1
  8. package/dist/base/middlewares/request-spy/request-spy.middleware.js +11 -3
  9. package/dist/base/middlewares/request-spy/request-spy.middleware.js.map +1 -1
  10. package/dist/components/auth/authenticate/component.d.ts +5 -0
  11. package/dist/components/auth/authenticate/component.d.ts.map +1 -1
  12. package/dist/components/auth/authenticate/component.js +23 -0
  13. package/dist/components/auth/authenticate/component.js.map +1 -1
  14. package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts +40 -20
  15. package/dist/components/auth/authenticate/controllers/jwks/definitions.d.ts.map +1 -1
  16. package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts +40 -20
  17. package/dist/components/auth/authenticate/controllers/service-certs/definitions.d.ts.map +1 -1
  18. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts +2 -2
  19. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.d.ts.map +1 -1
  20. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js +12 -8
  21. package/dist/components/auth/authenticate/services/bearer/jwks/issuer.service.js.map +1 -1
  22. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts +1 -1
  23. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.d.ts.map +1 -1
  24. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js +5 -3
  25. package/dist/components/auth/authenticate/services/bearer/jwks/verifier.service.js.map +1 -1
  26. package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts +1 -2
  27. package/dist/components/auth/authenticate/services/bearer/jws.service.d.ts.map +1 -1
  28. package/dist/components/auth/authenticate/services/bearer/jws.service.js +5 -3
  29. package/dist/components/auth/authenticate/services/bearer/jws.service.js.map +1 -1
  30. package/dist/components/auth/authenticate/services/jose-loader.d.ts +16 -0
  31. package/dist/components/auth/authenticate/services/jose-loader.d.ts.map +1 -0
  32. package/dist/components/auth/authenticate/services/jose-loader.js +25 -0
  33. package/dist/components/auth/authenticate/services/jose-loader.js.map +1 -0
  34. package/dist/components/auth/authenticate/services/service/signer.service.d.ts.map +1 -1
  35. package/dist/components/auth/authenticate/services/service/signer.service.js +8 -5
  36. package/dist/components/auth/authenticate/services/service/signer.service.js.map +1 -1
  37. package/dist/components/auth/authenticate/services/service/verifier.service.d.ts.map +1 -1
  38. package/dist/components/auth/authenticate/services/service/verifier.service.js +10 -9
  39. package/dist/components/auth/authenticate/services/service/verifier.service.js.map +1 -1
  40. package/dist/components/static-asset/controller/base.definition.d.ts.map +1 -1
  41. package/dist/components/static-asset/controller/base.definition.js +1 -2
  42. package/dist/components/static-asset/controller/base.definition.js.map +1 -1
  43. package/dist/connectors/postgres/drivers/postgres-js.d.mts +3 -0
  44. package/dist/connectors/postgres/drivers/postgres-js.d.mts.map +1 -0
  45. package/dist/connectors/postgres/drivers/postgres-js.mjs +3 -0
  46. package/dist/connectors/postgres/drivers/postgres-js.mjs.map +1 -0
  47. package/package.json +9 -8
package/README.md CHANGED
@@ -1,64 +1,52 @@
1
- <div align="center">
1
+ # @venizia/ignis
2
2
 
3
- # :fire: @venizia/ignis
3
+ The IGNIS server framework for Bun and Node.js. Install this package to build a REST API: it brings
4
+ the application class, controllers, repositories, the built-in components, and the Bun or Node server
5
+ that runs them.
4
6
 
5
- **The IGNIS framework core - LoopBack 4's architecture on Hono's speed.**
6
-
7
- [![npm](https://img.shields.io/npm/v/@venizia/ignis.svg?style=flat-square&color=cb3837)](https://www.npmjs.com/package/@venizia/ignis)
8
- [![Docs](https://img.shields.io/badge/Docs-ignis.venizia.ai-2563EB.svg?style=flat-square)](https://ignis.venizia.ai)
9
- [![License: MIT](https://img.shields.io/badge/License-MIT-3DA639.svg?style=flat-square)](LICENSE.md)
10
- [![TypeScript](https://img.shields.io/badge/TypeScript-6.x-3178C6.svg?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
11
-
12
- [Documentation](https://ignis.venizia.ai) &#8226;
13
- [Quickstart](https://ignis.venizia.ai/guides/get-started/5-minute-quickstart) &#8226;
14
- [API Reference](https://ignis.venizia.ai/references/)
15
-
16
- </div>
17
-
18
- ---
19
-
20
- This is the framework itself: the application class, controllers, repositories, models, datasources,
21
- the decorator set, and the component system. You extend the base classes; IGNIS wires them through
22
- its IoC container, validates every request against Zod, and generates the OpenAPI spec from the same
23
- schemas.
24
-
25
- Reach for it when you are building a structured API - real auth, several models, more than a handful
26
- of endpoints - and you want that structure to survive team growth. For a 3-endpoint service, plain
27
- Hono is lighter.
7
+ IGNIS takes its application model from LoopBack 4 - an IoC container with binding keys, components,
8
+ and the controller, service, repository, datasource layering - and runs it on Hono. Drizzle ORM builds
9
+ the SQL. Zod schemas, through `@hono/zod-openapi`, validate each request and generate the OpenAPI
10
+ document.
28
11
 
29
12
  ## Install
30
13
 
31
14
  ```bash
32
- bun add @venizia/ignis @venizia/ignis-helpers hono @hono/zod-openapi drizzle-orm pg
33
- bun add -d typescript tsc-alias @venizia/dev-configs @types/bun
15
+ bun add @venizia/ignis hono @hono/zod-openapi @asteasolutions/zod-to-openapi drizzle-orm drizzle-zod jose
16
+ bun add @scalar/hono-api-reference # the API explorer UI in the example
34
17
  ```
35
18
 
36
- `@venizia/ignis-boot`, `@venizia/ignis-helpers` and `@venizia/ignis-inversion` come along as
37
- dependencies. `hono`, `@hono/zod-openapi`, `@asteasolutions/zod-to-openapi`, `drizzle-orm` and
38
- `drizzle-zod` are required peers. Everything else in `peerDependencies` is optional - install only
39
- what the components and connectors you actually use need.
19
+ The first line is the package and its required peers. Every other peer is optional - install the
20
+ one a component or a database driver needs (see [Entry points](#entry-points)). On Node.js, add
21
+ `@hono/node-server`.
22
+
23
+ In your `tsconfig.json`, set these two flags directly in `compilerOptions`:
24
+
25
+ ```json
26
+ { "compilerOptions": { "experimentalDecorators": true, "emitDecoratorMetadata": true } }
27
+ ```
40
28
 
41
- > [!IMPORTANT]
42
- > `experimentalDecorators` and `emitDecoratorMetadata` must be `true` in your `tsconfig.json`,
43
- > declared **inline**. Bun does not resolve them through `extends`, and `@inject` metadata is
44
- > silently dropped without them - bindings then fail at boot with no obvious cause. Copy them from
45
- > `@venizia/dev-configs/tsconfig.common.json`.
29
+ Bun ignores them when they only arrive through an `extends` of a package path, and then drops
30
+ `@inject` parameter decorators without an error.
46
31
 
47
- ## Minimal application
32
+ ## Example
48
33
 
49
34
  ```typescript
50
35
  import { z } from '@hono/zod-openapi';
51
36
  import {
52
- ApiReferenceComponent, BaseApplication, BaseRestController,
53
- controller, get, IApplicationInfo, jsonContent,
37
+ ApiReferenceComponent,
38
+ BaseApplication,
39
+ BaseRestController,
40
+ controller,
41
+ get,
42
+ jsonResponse,
54
43
  } from '@venizia/ignis';
55
- import { HTTP } from '@venizia/ignis-helpers';
56
- import { Context } from 'hono';
44
+ import type { Context } from 'hono';
57
45
 
58
46
  @controller({ path: '/hello' })
59
47
  class HelloController extends BaseRestController {
60
48
  constructor() {
61
- super({ scope: 'HelloController', path: '/hello' });
49
+ super({ scope: HelloController.name });
62
50
  }
63
51
 
64
52
  override binding() {}
@@ -66,150 +54,122 @@ class HelloController extends BaseRestController {
66
54
  @get({
67
55
  configs: {
68
56
  path: '/',
69
- responses: {
70
- [HTTP.ResultCodes.RS_2.Ok]: jsonContent({
71
- description: 'Says hello',
72
- schema: z.object({ message: z.string() }),
73
- }),
74
- },
57
+ responses: jsonResponse({ schema: z.object({ message: z.string() }) }),
75
58
  },
76
59
  })
77
- sayHello(c: Context) {
78
- return c.json({ message: 'Hello from IGNIS!' }, HTTP.ResultCodes.RS_2.Ok);
60
+ sayHello(context: Context) {
61
+ return context.json({ message: 'Hello from IGNIS' });
79
62
  }
80
63
  }
81
64
 
82
- class App extends BaseApplication {
83
- getAppInfo(): IApplicationInfo {
84
- return { name: 'my-app', version: '1.0.0', description: 'My first IGNIS app' };
65
+ class Application extends BaseApplication {
66
+ getAppInfo() {
67
+ return { name: 'hello', version: '1.0.0', description: 'The smallest IGNIS application' };
85
68
  }
86
69
 
87
70
  staticConfigure() {}
88
- postConfigure() {}
89
71
  setupMiddlewares() {}
72
+ postConfigure() {}
90
73
 
91
74
  preConfigure() {
92
- this.component(ApiReferenceComponent); // interactive docs at /doc/explorer
75
+ this.component(ApiReferenceComponent);
93
76
  this.controller(HelloController);
94
77
  }
95
78
  }
96
79
 
97
- new App({
98
- scope: 'App',
80
+ const application = new Application({
81
+ scope: Application.name,
99
82
  config: { host: '0.0.0.0', port: 3000, path: { base: '/api', isStrict: false } },
100
- })
101
- .start()
102
- .catch((error: unknown) => {
103
- console.error('[main] Application start failed | Error:', error);
104
- process.exit(1);
105
- });
83
+ });
84
+
85
+ application.init();
86
+ await application.start();
106
87
  ```
107
88
 
108
89
  ```bash
109
90
  bun run src/index.ts
110
- curl http://localhost:3000/api/hello # {"message":"Hello from IGNIS!"}
91
+ curl http://localhost:3000/api/hello # {"message":"Hello from IGNIS"}
111
92
  ```
112
93
 
113
- `getAppInfo`, `preConfigure`, `postConfigure`, `staticConfigure` and `setupMiddlewares` are abstract -
114
- implement all five, even when empty.
115
-
116
- ## The surface
117
-
118
- | Layer | Extend / use | Docs |
119
- | :--- | :--- | :--- |
120
- | Application | `BaseApplication` - lifecycle, config, `component()`, `controller()`, `start()` | [Application](https://ignis.venizia.ai/references/base/application) |
121
- | REST controller | `BaseRestController` - decorated routes, or `bindRoute` / `defineRoute` | [Controllers](https://ignis.venizia.ai/references/base/controllers) |
122
- | gRPC controller | `BaseGrpcController` with `@rpc` - pair it with `GrpcComponent` | [Controllers](https://ignis.venizia.ai/references/base/controllers) |
123
- | CRUD controller | `ControllerFactory.defineCrudController({ controller, entity, routes })` | [Controllers](https://ignis.venizia.ai/references/base/controllers) |
124
- | Service | `BaseService` | [References](https://ignis.venizia.ai/references/) |
125
- | Repository | `DefaultRelationalRepository`, or the readable / persistable / soft-deletable variants | [Repositories](https://ignis.venizia.ai/references/base/repositories/) |
126
- | Model | `BaseRelationalEntity` over a Drizzle `pgTable` | [Repositories](https://ignis.venizia.ai/references/base/repositories/) |
127
- | DataSource | `BaseRelationalDataSource` | [Repositories](https://ignis.venizia.ai/references/base/repositories/) |
128
- | Component | `BaseComponent` - bundle bindings, controllers and middlewares as one unit | [Components](https://ignis.venizia.ai/extensions/components/) |
129
- | Provider | `BaseProvider<T>` - a lazily resolved binding value | [DI](https://ignis.venizia.ai/references/base/dependency-injection) |
94
+ The OpenAPI document is at `/api/doc/openapi.json` and the explorer at `/api/doc/explorer`.
130
95
 
131
- Decorators, all from the root barrel:
96
+ Three things to notice:
132
97
 
133
- | Decorator | Target | Purpose |
134
- | :--- | :--- | :--- |
135
- | `@controller({ path })` | class | Register a controller under a base path |
136
- | `@get` `@post` `@put` `@patch` `@del` `@api` | method | Declare a REST route from a Zod-typed config |
137
- | `@rpc` | method | Declare a gRPC method |
138
- | `@model` `@datasource` `@repository` | class | Register persistence classes for boot discovery |
139
- | `@inject({ key, isOptional })` | constructor parameter | Resolve a binding by namespaced key |
98
+ - `getAppInfo`, `staticConfigure`, `preConfigure`, `postConfigure` and `setupMiddlewares` are
99
+ abstract. Implement all five, even when empty.
100
+ - `application.init()` registers the application's own bindings. Call it before `start()`, or the
101
+ first component that injects the application fails the boot.
102
+ - `preConfigure()` is where you register components, controllers, services, repositories and
103
+ datasources by hand. The `ignis-artifacts` generator in `@venizia/ignis-boot` can write that list
104
+ for you at build time.
140
105
 
141
- > [!WARNING]
142
- > **Every** constructor parameter of a container-instantiated class must carry `@inject`. Mixing
143
- > decorated and undecorated parameters is refused at boot - the container has no channel to supply an
144
- > undecorated one. Options a controller needs belong in `super({ scope })`.
106
+ ## Built-in components
145
107
 
146
- `BaseRelationalEntity`, `DefaultRelationalRepository` and `BaseRelationalDataSource` are the
147
- canonical, paradigm-family names. `BasePostgresEntity`, `DefaultCRUDRepository`,
148
- `BasePostgresDataSource`, `BaseEntity` and `BaseDataSource` still resolve to the same classes as
149
- back-compat aliases - prefer the family names in new code.
150
-
151
- ## Components
152
-
153
- Register with `this.component(X)` in `preConfigure()`.
108
+ Register a component with `this.component(...)` in `preConfigure()`.
154
109
 
155
110
  | Component | Import from | What it adds |
156
- | :--- | :--- | :--- |
157
- | `ApiReferenceComponent` | `@venizia/ignis` | OpenAPI spec plus a Scalar or Swagger UI explorer |
158
- | `AuthenticateComponent` | `@venizia/ignis` | JWT and Basic authentication strategies |
159
- | `AuthorizeComponent` | `@venizia/ignis` | Casbin-backed authorization enforcement |
160
- | `HealthCheckComponent` | `@venizia/ignis` | Liveness and readiness endpoints |
161
- | `RequestTrackerComponent` | `@venizia/ignis` | Request IDs and body parsing - registered automatically |
162
- | `RestComponent` | `@venizia/ignis` | Binds discovered REST controllers - internal, registered automatically |
163
- | `GrpcComponent` | `@venizia/ignis/grpc` | ConnectRPC transport for `@rpc` controllers |
164
- | `MailComponent` | `@venizia/ignis/mail` | Nodemailer and Mailgun senders |
165
- | `SocketIOComponent` | `@venizia/ignis/socket-io` | Socket.IO server with an optional Redis adapter |
166
- | `WebSocketComponent` | `@venizia/ignis/websocket` | Native WebSocket transport |
167
- | `StaticAssetComponent` | `@venizia/ignis/static-asset` | Static file serving and asset controllers |
168
-
169
-
170
- Full configuration for each: [Components](https://ignis.venizia.ai/extensions/components/).
171
-
172
- ## Sub-path exports
173
-
174
- The root barrel deliberately excludes optional transports and connectors, so a bundler never pulls in
175
- a peer you did not install.
176
-
177
- | Sub-path | Contents |
178
- | :--- | :--- |
179
- | `@venizia/ignis/postgres` | Relational models, datasources, repositories, dialect |
180
- | `@venizia/ignis/postgres/node-postgres` | `pg` driver (the supported default) |
181
- | `@venizia/ignis/postgres/postgres-js` | `postgres` driver |
182
- | `@venizia/ignis/postgres/supabase` | Supabase driver and RLS auth context |
183
- | `@venizia/ignis/search` (+ `/controllers`) | Engine-agnostic search connector |
184
- | `@venizia/ignis/typesense` (+ `/controllers`) | Typesense engine |
185
- | `@venizia/ignis/meilisearch` | Meilisearch engine |
186
- | `@venizia/ignis/grpc`, `/socket-io`, `/websocket`, `/mail`, `/static-asset` | Optional components |
187
-
188
- Note that `@venizia/ignis/postgres` is also re-exported from the root barrel; the other sub-paths are
189
- not.
190
-
191
- ## Things that will burn you
192
-
193
- - **Errors**: always `getError()` / `ApplicationError` from `@venizia/ignis-helpers`, never raw
194
- `new Error`. The error shape is one object - `{ text, code, args }`. Across package boundaries use
195
- `isApplicationError()`, never `instanceof`.
196
- - **Logging**: type your loggers as `ILogger`. Get one from `BaseHelper.logger`,
197
- `LoggerFactory.getLogger(['A','B'])` or `ApplicationLogger.get('Scope')`, and `.for('method')` for a
198
- method-scoped child. Five levels only: `debug`, `info`, `warn`, `error`, `emerg`.
199
- - **Runtime**: Bun >= 1.3 first-class. Node.js works through the optional `@hono/node-server` peer.
200
- - **Version**: 0.x - minor versions can break. Pin exact versions and read the
201
- [changelog](https://ignis.venizia.ai/changelogs/) before upgrading.
111
+ |---|---|---|
112
+ | `ApiReferenceComponent` | `@venizia/ignis` | The OpenAPI document and a Scalar or Swagger UI explorer (`@scalar/hono-api-reference` or `@hono/swagger-ui`) |
113
+ | `HealthCheckComponent` | `@venizia/ignis` | `GET /health`, `POST /health/ping`, and `GET /health/stats` (closed outside development unless you enable it) |
114
+ | `AuthenticateComponent` | `@venizia/ignis` | JWT, Basic, and service-to-service authentication strategies |
115
+ | `AuthorizeComponent` | `@venizia/ignis` | Casbin-based authorization (`casbin`) |
116
+ | `RequestTrackerComponent` | `@venizia/ignis` | Logs each request and response - registered for you by `BaseApplication` |
117
+ | `GrpcComponent` | `@venizia/ignis/grpc` | ConnectRPC transport for `@rpc` controllers (`@connectrpc/connect`) |
118
+ | `MailComponent` | `@venizia/ignis/mail` | Mail through Nodemailer, Mailgun or Amazon SES, with an optional BullMQ queue |
119
+ | `SocketIOComponent` | `@venizia/ignis/socket-io` | A Socket.IO server with the Redis adapter |
120
+ | `WebSocketComponent` | `@venizia/ignis/websocket` | Bun's native WebSocket server |
121
+ | `StaticAssetComponent` | `@venizia/ignis/static-asset` | Upload and download controllers over object storage, with a file-record table |
122
+
123
+ To serve files from disk, you need no component. Call `this.static({ restPath: '/public/*', folderPath: '.' })`
124
+ in `staticConfigure()`: the request path is resolved under `folderPath`, so `/public/logo.png` serves
125
+ `./public/logo.png`.
126
+
127
+ ## Entry points
128
+
129
+ The root barrel leaves out the optional transports and engines, so a bundle only pulls in the peers
130
+ you use.
131
+
132
+ | Import | What it gives | Extra peers |
133
+ |---|---|---|
134
+ | `@venizia/ignis` | `BaseApplication`, the kernel in full, the root components, and everything in `/postgres` | none |
135
+ | `/postgres` | Postgres datasources, entities, repositories, `ModelFactory` | none |
136
+ | `/postgres/node-postgres` | `NodePostgresDriver` | `pg` |
137
+ | `/postgres/postgres-js` | `PostgresJsDriver` | `postgres` |
138
+ | `/postgres/pglite` | `PGliteDriver` | `@electric-sql/pglite` |
139
+ | `/postgres/supabase` | Supabase auth context and pooler helpers | none |
140
+ | `/relational` | The engine-neutral SQL tier (`DefaultRelationalRepository`, `BaseRelationalDataSource`) | none |
141
+ | `/sqlite` | SQLite datasources and repositories | none |
142
+ | `/sqlite/libsql` | `LibSqlDriver` | `@libsql/client` |
143
+ | `/search`, `/search/controllers` | The engine-neutral search tier and its controllers | none |
144
+ | `/typesense`, `/typesense/controllers` | The Typesense engine, and the search controllers | `typesense` for `/typesense` |
145
+ | `/meilisearch` | The Meilisearch engine | `meilisearch` |
146
+ | `/grpc` | `GrpcComponent` (`BaseGrpcController` and `@rpc` come from the root) | none to load |
147
+ | `/mail` | `MailComponent` | none to load |
148
+ | `/socket-io` | `SocketIOComponent` | `socket.io`, `@socket.io/redis-adapter`, `@socket.io/redis-emitter` |
149
+ | `/websocket` | `WebSocketComponent` | none |
150
+ | `/static-asset` | `StaticAssetComponent` | none |
151
+
152
+ "None to load" means the entry imports cleanly; the component loads its client library (for example
153
+ `nodemailer` or `@connectrpc/connect`) when you configure it.
154
+
155
+ The connector entries re-export `@venizia/ignis-connectors` under the same names. The kernel is
156
+ re-exported in full from the root.
157
+
158
+ ## Where it sits
159
+
160
+ Top of the chain. Depends on `@venizia/ignis-kernel`, `@venizia/ignis-connectors`,
161
+ `@venizia/ignis-filter`, `@venizia/ignis-helpers` and `@venizia/ignis-inversion`.
162
+ `@venizia/ignis-boot` is separate - add it as a dev dependency for the artifact generator.
202
163
 
203
164
  ## Links
204
165
 
205
- [Quickstart](https://ignis.venizia.ai/guides/get-started/5-minute-quickstart) &#8226;
206
- [API reference](https://ignis.venizia.ai/references/) &#8226;
207
- [Bootstrapping](https://ignis.venizia.ai/references/base/bootstrapping) &#8226;
208
- [Dependency injection](https://ignis.venizia.ai/references/base/dependency-injection) &#8226;
209
- [Extensions](https://ignis.venizia.ai/extensions/) &#8226;
210
- [Helpers](https://ignis.venizia.ai/extensions/helpers/) &#8226;
211
- [Best practices](https://ignis.venizia.ai/best-practices/) &#8226;
212
- [Changelog](https://ignis.venizia.ai/changelogs/)
213
-
214
- MIT licensed - see [LICENSE.md](LICENSE.md).
215
- Questions: [GitHub Issues](https://github.com/VENIZIA-AI/ignis/issues) &#8226; developer@venizia.ai
166
+ - [5-minute quickstart](https://ignis.venizia.ai/guides/get-started/5-minute-quickstart)
167
+ - [Philosophy](https://ignis.venizia.ai/guides/get-started/philosophy)
168
+ - [Application](https://ignis.venizia.ai/references/base/application)
169
+ - [Bootstrapping](https://ignis.venizia.ai/references/base/bootstrapping)
170
+ - [Components](https://ignis.venizia.ai/extensions/components/)
171
+ - [All changelogs](https://ignis.venizia.ai/changelogs/)
172
+
173
+ IGNIS is 0.x: a minor version can break. Pin exact versions and read the changelog before upgrading.
174
+
175
+ MIT licensed - see [LICENSE.md](https://github.com/VENIZIA-AI/ignis/blob/main/packages/core-server/LICENSE.md).
@@ -32,6 +32,8 @@ export declare abstract class ServerApplication<AppEnv extends Env = Env, AppSch
32
32
  protected startBunModule(): Promise<unknown>;
33
33
  protected startNodeModule(): Promise<unknown>;
34
34
  start(): Promise<void>;
35
+ /** Post-stop hooks, then the server, then the datasources - closed even when the server fails to, so a stopped application holds no connection. */
35
36
  stop(): Promise<void>;
37
+ protected stopServer(): Promise<void>;
36
38
  }
37
39
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/base/applications/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAItE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,gTAAgT;AAChT,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AAkC9D,sMAAsM;AACtM,8BAAsB,iBAAiB,CACrC,MAAM,SAAS,GAAG,GAAG,GAAG,EACxB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,QAAQ,SAAS,MAAM,GAAG,GAAG,CAE7B,SAAQ,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CACnD,YAAW,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAE1D,mMAAmM;IACnM,SAAS,CAAC,OAAO,SAA2B;IAC5C,SAAS,CAAC,cAAc,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;IAEpE,2LAA2L;IAC3L,UAAkB,OAAO,EAAE,yBAAyB,CAAC;IAErD;;;;OAIG;gBACS,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,yBAAyB,CAAA;KAAE;IAWtE,0IAA0I;cACvH,6BAA6B,IAAI,OAAO;IAI3D,yPAAyP;IAChP,cAAc,IAAI,MAAM;IAejC,aAAa,IAAI,MAAM;IAIvB,aAAa,IAAI,MAAM;IAIvB,gBAAgB;IAIhB,wHAAwH;IACxH,SAAS,CAAC,uBAAuB,IAAI,qBAAqB;IAQ1D,iBAAiB,CACf,CAAC,SAAS,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,KAC1F,CAAC,GAAG,SAAS;IAIlB,SAAS,CAAC,cAAc;IA2CxB,SAAS,CAAC,eAAe;IAuDnB,KAAK;IA0BL,IAAI;CAsCX"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/base/applications/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAItE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAElB,gTAAgT;AAChT,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AAkC9D,sMAAsM;AACtM,8BAAsB,iBAAiB,CACrC,MAAM,SAAS,GAAG,GAAG,GAAG,EACxB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,QAAQ,SAAS,MAAM,GAAG,GAAG,CAE7B,SAAQ,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CACnD,YAAW,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAE1D,mMAAmM;IACnM,SAAS,CAAC,OAAO,SAA2B;IAC5C,SAAS,CAAC,cAAc,CAAC,EAAE,kBAAkB,GAAG,mBAAmB,CAAC;IAEpE,2LAA2L;IAC3L,UAAkB,OAAO,EAAE,yBAAyB,CAAC;IAErD;;;;OAIG;gBACS,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,yBAAyB,CAAA;KAAE;IAWtE,0IAA0I;cACvH,6BAA6B,IAAI,OAAO;IAI3D,yPAAyP;IAChP,cAAc,IAAI,MAAM;IAejC,aAAa,IAAI,MAAM;IAIvB,aAAa,IAAI,MAAM;IAIvB,gBAAgB;IAIhB,wHAAwH;IACxH,SAAS,CAAC,uBAAuB,IAAI,qBAAqB;IAQ1D,iBAAiB,CACf,CAAC,SAAS,kBAAkB,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,mBAAmB,KAC1F,CAAC,GAAG,SAAS;IAIlB,SAAS,CAAC,cAAc;IA2CxB,SAAS,CAAC,eAAe;IAuDnB,KAAK;IA0BX,mJAAmJ;IAC7I,IAAI;cAUM,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAoC5C"}
@@ -186,8 +186,17 @@ class ServerApplication extends ignis_kernel_1.RestApplication {
186
186
  }
187
187
  await this.executePostStartHooks();
188
188
  }
189
+ /** Post-stop hooks, then the server, then the datasources - closed even when the server fails to, so a stopped application holds no connection. */
189
190
  async stop() {
190
191
  await this.executePostStopHooks();
192
+ try {
193
+ await this.stopServer();
194
+ }
195
+ finally {
196
+ await this.closeDataSources();
197
+ }
198
+ }
199
+ async stopServer() {
191
200
  const instance = this.serverInstance;
192
201
  if (!instance) {
193
202
  this.logger.for(this.stop.name).info('Server was not started | Nothing to stop');
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/base/applications/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/base/applications/server.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export declare class RequestSpyMiddleware extends BaseHelper implements IProvide
17
17
  * `cardNumber` and `ssn` were written verbatim.
18
18
  */
19
19
  constructor();
20
- /** Parses request body based on Content-Type header. */
20
+ /** Parses the body by Content-Type without draining it for the handler: JSON and form bodies go through the request cache, `text/*` is read from a clone (from the cache once something read it), and any other type is described by its size, never read. */
21
21
  parseBody(opts: {
22
22
  req: TContext['req'];
23
23
  }): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"request-spy.middleware.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/request-spy/request-spy.middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAA8B,MAAM,6BAA6B,CAAC;AAErF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAErF,sKAAsK;AACtK,qBAAa,oBAAqB,SAAQ,UAAW,YAAW,SAAS,CAAC,iBAAiB,CAAC;IAC1F,MAAM,CAAC,QAAQ,CAAC,cAAc,eAAkB;IAEhD,OAAO,CAAC,WAAW,CAAU;IAE7B;;;;;;;;;OASG;;IAOH,wDAAwD;IAClD,SAAS,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAyCjE,wEAAwE;IACxE,KAAK;CAmDN"}
1
+ {"version":3,"file":"request-spy.middleware.d.ts","sourceRoot":"","sources":["../../../../src/base/middlewares/request-spy/request-spy.middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAA8B,MAAM,6BAA6B,CAAC;AAErF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIrF,sKAAsK;AACtK,qBAAa,oBAAqB,SAAQ,UAAW,YAAW,SAAS,CAAC,iBAAiB,CAAC;IAC1F,MAAM,CAAC,QAAQ,CAAC,cAAc,eAAkB;IAEhD,OAAO,CAAC,WAAW,CAAU;IAE7B;;;;;;;;;OASG;;IAOH,8PAA8P;IACxP,SAAS,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiDjE,wEAAwE;IACxE,KAAK;CAmDN"}
@@ -7,6 +7,7 @@ const core_1 = require("@venizia/ignis-helpers/core");
7
7
  const common_1 = require("@venizia/ignis-helpers/common");
8
8
  const factory_1 = require("hono/factory");
9
9
  const ignis_kernel_1 = require("@venizia/ignis-kernel");
10
+ const TEXT_CONTENT_TYPE_PREFIX = 'text/';
10
11
  /** Logs incoming/outgoing request details. The BODY is logged only in a recognised development environment - see the constructor for why that test is fail-closed. */
11
12
  class RequestSpyMiddleware extends core_1.BaseHelper {
12
13
  static { this.REQUEST_ID_KEY = ignis_kernel_1.REQUEST_ID_KEY; }
@@ -25,7 +26,7 @@ class RequestSpyMiddleware extends core_1.BaseHelper {
25
26
  const env = ignis_helpers_1.Environment.ambient?.toLowerCase();
26
27
  this.isDebugMode = !!env && core_1.EnvironmentNames.DEVELOPMENT_ENVS.has(env);
27
28
  }
28
- /** Parses request body based on Content-Type header. */
29
+ /** Parses the body by Content-Type without draining it for the handler: JSON and form bodies go through the request cache, `text/*` is read from a clone (from the cache once something read it), and any other type is described by its size, never read. */
29
30
  async parseBody(opts) {
30
31
  const contentType = opts.req.header(common_1.HTTP.Headers.CONTENT_TYPE);
31
32
  if (!contentType) {
@@ -49,8 +50,15 @@ class RequestSpyMiddleware extends core_1.BaseHelper {
49
50
  if (contentType === common_1.HTTP.HeaderValues.APPLICATION_OCTET_STREAM) {
50
51
  return opts.req.raw.body;
51
52
  }
52
- const rs = await opts.req.text();
53
- return rs;
53
+ // Anything else is read, if at all, from a clone: a handler may stream `req.raw.body` on (an upload proxy), and reading the request itself would drain it and mangle binary bytes.
54
+ // A body an earlier middleware read cannot be cloned; Hono's cache serves it instead.
55
+ if (contentType.startsWith(TEXT_CONTENT_TYPE_PREFIX)) {
56
+ const rs = opts.req.raw.bodyUsed
57
+ ? await opts.req.text()
58
+ : await opts.req.raw.clone().text();
59
+ return rs;
60
+ }
61
+ return `<${contentLength ?? 'unknown'} bytes, ${contentType}>`;
54
62
  }
55
63
  catch {
56
64
  throw (0, core_1.getError)({
@@ -1 +1 @@
1
- {"version":3,"file":"request-spy.middleware.js","sourceRoot":"","sources":["../../../../src/base/middlewares/request-spy/request-spy.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-spy.middleware.js","sourceRoot":"","sources":["../../../../src/base/middlewares/request-spy/request-spy.middleware.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,11 @@ export declare class AuthenticateComponent extends BaseComponent {
5
5
  private application;
6
6
  constructor(application: BaseApplication);
7
7
  binding(): ValueOrPromise<void>;
8
+ /**
9
+ * Loads `jose` at boot when a configured service signs or verifies with it, so a missing or broken
10
+ * install fails the boot instead of answering every token check with a 401.
11
+ */
12
+ private preloadJose;
8
13
  private defineJWSAuth;
9
14
  private defineJWKSAuth;
10
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/authenticate/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAIL,aAAa,EAiBd,MAAM,uBAAuB,CAAC;AAe/B,qBAAa,qBAAsB,SAAQ,aAAa;IAEA,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAajF,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC;IAuDxC,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,cAAc;IAwEtB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAwDzB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,iBAAiB;IAoBzB,YAAY;CAGb"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/authenticate/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAIL,aAAa,EAiBd,MAAM,uBAAuB,CAAC;AAgB/B,qBAAa,qBAAsB,SAAQ,aAAa;IAEA,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,eAAe;IAajF,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC;IAyDxC;;;OAGG;YACW,WAAW;IAmBzB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,cAAc;IAwEtB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAwDzB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,iBAAiB;IAoBzB,YAAY;CAGb"}
@@ -20,6 +20,7 @@ const ignis_kernel_1 = require("@venizia/ignis-kernel");
20
20
  const controllers_1 = require("./controllers");
21
21
  const service_certs_1 = require("./controllers/service-certs");
22
22
  const services_1 = require("./services");
23
+ const jose_loader_1 = require("./services/jose-loader");
23
24
  const signer_service_1 = require("./services/service/signer.service");
24
25
  const verifier_service_1 = require("./services/service/verifier.service");
25
26
  const service_strategy_1 = require("./strategies/service.strategy");
@@ -83,6 +84,28 @@ let AuthenticateComponent = AuthenticateComponent_1 = class AuthenticateComponen
83
84
  this.defineServiceAuth({ serviceOptions });
84
85
  this.defineControllers({ options });
85
86
  this.defineOAuth2();
87
+ return this.preloadJose({ options });
88
+ }
89
+ /**
90
+ * Loads `jose` at boot when a configured service signs or verifies with it, so a missing or broken
91
+ * install fails the boot instead of answering every token check with a 401.
92
+ */
93
+ async preloadJose(opts) {
94
+ const { jwtOptions, serviceOptions } = opts.options;
95
+ if (!jwtOptions && !serviceOptions) {
96
+ return;
97
+ }
98
+ try {
99
+ await jose_loader_1.JoseLoader.load();
100
+ }
101
+ catch (error) {
102
+ const reason = error instanceof Error ? error.message : String(error);
103
+ this.logger.for(this.preloadJose.name).error("Failed to load 'jose' | Error: %s", reason);
104
+ throw (0, core_1.getError)({
105
+ message: `[AuthenticateComponent] Cannot load 'jose', which JWT and service authentication need. Please install it | Error: ${reason}`,
106
+ cause: error,
107
+ });
108
+ }
86
109
  }
87
110
  defineJWSAuth(opts) {
88
111
  const { options: jwsOptions } = opts;
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/components/auth/authenticate/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/components/auth/authenticate/component.ts"],"names":[],"mappings":"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"}