@venizia/ignis 0.4.7-0 → 0.4.7-2
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/LICENSE.md +1 -4
- package/README.md +2 -2
- package/dist/esm/base/applications/base.d.ts.map +1 -1
- package/dist/esm/base/applications/base.js +25 -18
- package/dist/esm/base/applications/base.js.map +1 -1
- package/dist/esm/base/applications/common/index.d.ts +1 -0
- package/dist/esm/base/applications/common/index.d.ts.map +1 -1
- package/dist/esm/base/applications/common/index.js +1 -0
- package/dist/esm/base/applications/common/index.js.map +1 -1
- package/dist/esm/base/applications/common/logger-startup.d.ts +11 -0
- package/dist/esm/base/applications/common/logger-startup.d.ts.map +1 -0
- package/dist/esm/base/applications/common/logger-startup.js +29 -0
- package/dist/esm/base/applications/common/logger-startup.js.map +1 -0
- package/dist/esm/base/applications/server.d.ts +14 -9
- package/dist/esm/base/applications/server.d.ts.map +1 -1
- package/dist/esm/base/applications/server.js +36 -29
- package/dist/esm/base/applications/server.js.map +1 -1
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +2 -2
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/components/auth/authenticate/component.js +2 -2
- package/dist/esm/components/auth/authenticate/component.js.map +1 -1
- package/dist/esm/components/auth/authenticate/controllers/factory.d.ts +139 -136
- package/dist/esm/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
- package/dist/esm/components/auth/authenticate/controllers/factory.js +175 -172
- package/dist/esm/components/auth/authenticate/controllers/factory.js.map +1 -1
- package/dist/esm/components/auth/authenticate/controllers/jwks/definitions.js +2 -2
- package/dist/esm/components/auth/authenticate/controllers/jwks/definitions.js.map +1 -1
- package/dist/esm/components/auth/authenticate/controllers/service-certs/definitions.js +2 -2
- package/dist/esm/components/auth/authenticate/controllers/service-certs/definitions.js.map +1 -1
- package/dist/esm/components/auth/authorize/adapters/base-filtered.js +2 -2
- package/dist/esm/components/auth/authorize/adapters/base-filtered.js.map +1 -1
- package/dist/esm/components/auth/authorize/adapters/custom-grant-expander.d.ts.map +1 -1
- package/dist/esm/components/auth/authorize/adapters/custom-grant-expander.js +2 -2
- package/dist/esm/components/auth/authorize/adapters/custom-grant-expander.js.map +1 -1
- package/dist/esm/components/auth/models/entities/columns.d.ts +99 -0
- package/dist/esm/components/auth/models/entities/columns.d.ts.map +1 -0
- package/dist/esm/components/auth/models/entities/columns.js +133 -0
- package/dist/esm/components/auth/models/entities/columns.js.map +1 -0
- package/dist/esm/components/auth/models/entities/index.d.ts +1 -2
- package/dist/esm/components/auth/models/entities/index.d.ts.map +1 -1
- package/dist/esm/components/auth/models/entities/index.js +1 -2
- package/dist/esm/components/auth/models/entities/index.js.map +1 -1
- package/dist/esm/components/auth/models/entities/permission.model.d.ts +1 -12
- package/dist/esm/components/auth/models/entities/permission.model.d.ts.map +1 -1
- package/dist/esm/components/auth/models/entities/permission.model.js +1 -36
- package/dist/esm/components/auth/models/entities/permission.model.js.map +1 -1
- package/dist/esm/components/auth/models/entities/policy-definition.model.d.ts +1 -49
- package/dist/esm/components/auth/models/entities/policy-definition.model.d.ts.map +1 -1
- package/dist/esm/components/auth/models/entities/policy-definition.model.js +1 -69
- package/dist/esm/components/auth/models/entities/policy-definition.model.js.map +1 -1
- package/dist/esm/components/controller/grpc/grpc.component.js +2 -2
- package/dist/esm/components/controller/grpc/grpc.component.js.map +1 -1
- package/dist/esm/components/health-check/controller.js +5 -5
- package/dist/esm/components/health-check/controller.js.map +1 -1
- package/dist/esm/components/index.d.ts +0 -1
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +0 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/mail/helpers/transporters/amazon-ses-transporter.helper.d.ts.map +1 -1
- package/dist/esm/components/mail/helpers/transporters/amazon-ses-transporter.helper.js +13 -9
- package/dist/esm/components/mail/helpers/transporters/amazon-ses-transporter.helper.js.map +1 -1
- package/dist/esm/components/mail/helpers/transporters/mailgun-transporter.helper.d.ts.map +1 -1
- package/dist/esm/components/mail/helpers/transporters/mailgun-transporter.helper.js +5 -3
- package/dist/esm/components/mail/helpers/transporters/mailgun-transporter.helper.js.map +1 -1
- package/dist/esm/components/mail/helpers/transporters/nodemail-transporter.helper.d.ts.map +1 -1
- package/dist/esm/components/mail/helpers/transporters/nodemail-transporter.helper.js +5 -5
- package/dist/esm/components/mail/helpers/transporters/nodemail-transporter.helper.js.map +1 -1
- package/dist/esm/components/mail/services/generators/verification-data.d.ts.map +1 -1
- package/dist/esm/components/mail/services/generators/verification-data.js +7 -3
- package/dist/esm/components/mail/services/generators/verification-data.js.map +1 -1
- package/dist/esm/components/mail/services/mail.service.js +7 -7
- package/dist/esm/components/mail/services/mail.service.js.map +1 -1
- package/dist/esm/components/mail/utilities/address.utility.d.ts +12 -8
- package/dist/esm/components/mail/utilities/address.utility.d.ts.map +1 -1
- package/dist/esm/components/mail/utilities/address.utility.js +30 -27
- package/dist/esm/components/mail/utilities/address.utility.js.map +1 -1
- package/dist/esm/components/mail/utilities/attachment.utility.d.ts +31 -29
- package/dist/esm/components/mail/utilities/attachment.utility.d.ts.map +1 -1
- package/dist/esm/components/mail/utilities/attachment.utility.js +97 -86
- package/dist/esm/components/mail/utilities/attachment.utility.js.map +1 -1
- package/dist/esm/components/mail/utilities/body.utility.d.ts +6 -4
- package/dist/esm/components/mail/utilities/body.utility.d.ts.map +1 -1
- package/dist/esm/components/mail/utilities/body.utility.js +14 -12
- package/dist/esm/components/mail/utilities/body.utility.js.map +1 -1
- package/dist/esm/components/mail/utilities/mime.utility.d.ts +23 -17
- package/dist/esm/components/mail/utilities/mime.utility.d.ts.map +1 -1
- package/dist/esm/components/mail/utilities/mime.utility.js +109 -102
- package/dist/esm/components/mail/utilities/mime.utility.js.map +1 -1
- package/dist/esm/components/mail/utilities/verification.utility.d.ts +8 -2
- package/dist/esm/components/mail/utilities/verification.utility.d.ts.map +1 -1
- package/dist/esm/components/mail/utilities/verification.utility.js +7 -5
- package/dist/esm/components/mail/utilities/verification.utility.js.map +1 -1
- package/dist/esm/components/socket-io/component.js +3 -3
- package/dist/esm/components/socket-io/component.js.map +1 -1
- package/dist/esm/components/socket-io/handlers/bun.handler.d.ts +13 -11
- package/dist/esm/components/socket-io/handlers/bun.handler.d.ts.map +1 -1
- package/dist/esm/components/socket-io/handlers/bun.handler.js +32 -30
- package/dist/esm/components/socket-io/handlers/bun.handler.js.map +1 -1
- package/dist/esm/components/static-asset/common/commit-token.d.ts +21 -16
- package/dist/esm/components/static-asset/common/commit-token.d.ts.map +1 -1
- package/dist/esm/components/static-asset/common/commit-token.js +35 -28
- package/dist/esm/components/static-asset/common/commit-token.js.map +1 -1
- package/dist/esm/components/static-asset/common/constants.d.ts +0 -2
- package/dist/esm/components/static-asset/common/constants.d.ts.map +1 -1
- package/dist/esm/components/static-asset/common/constants.js +1 -3
- package/dist/esm/components/static-asset/common/constants.js.map +1 -1
- package/dist/esm/components/static-asset/common/types.d.ts +0 -4
- package/dist/esm/components/static-asset/common/types.d.ts.map +1 -1
- package/dist/esm/components/static-asset/common/types.js.map +1 -1
- package/dist/esm/components/static-asset/component.js +2 -2
- package/dist/esm/components/static-asset/component.js.map +1 -1
- package/dist/esm/components/static-asset/controller/base.definition.d.ts +6 -6
- package/dist/esm/components/static-asset/controller/base.definition.d.ts.map +1 -1
- package/dist/esm/components/static-asset/controller/base.definition.js +224 -224
- package/dist/esm/components/static-asset/controller/base.definition.js.map +1 -1
- package/dist/esm/components/static-asset/controller/factory.d.ts +23 -23
- package/dist/esm/components/static-asset/controller/factory.d.ts.map +1 -1
- package/dist/esm/components/static-asset/controller/factory.js +105 -76
- package/dist/esm/components/static-asset/controller/factory.js.map +1 -1
- package/dist/esm/components/static-asset/controller/key-scope.d.ts +28 -26
- package/dist/esm/components/static-asset/controller/key-scope.d.ts.map +1 -1
- package/dist/esm/components/static-asset/controller/key-scope.js +34 -30
- package/dist/esm/components/static-asset/controller/key-scope.js.map +1 -1
- package/dist/esm/components/static-asset/controller/meta-link.d.ts +37 -33
- package/dist/esm/components/static-asset/controller/meta-link.d.ts.map +1 -1
- package/dist/esm/components/static-asset/controller/meta-link.js +86 -84
- package/dist/esm/components/static-asset/controller/meta-link.js.map +1 -1
- package/dist/esm/components/static-asset/controller/route-options.d.ts +18 -16
- package/dist/esm/components/static-asset/controller/route-options.d.ts.map +1 -1
- package/dist/esm/components/static-asset/controller/route-options.js +28 -26
- package/dist/esm/components/static-asset/controller/route-options.js.map +1 -1
- package/dist/esm/components/static-asset/models/base.model.js +3 -3
- package/dist/esm/components/static-asset/models/base.model.js.map +1 -1
- package/dist/esm/components/websocket/component.js +2 -2
- package/dist/esm/components/websocket/component.js.map +1 -1
- package/dist/esm/components/websocket/handlers/bun.handler.d.ts +6 -4
- package/dist/esm/components/websocket/handlers/bun.handler.d.ts.map +1 -1
- package/dist/esm/components/websocket/handlers/bun.handler.js +21 -19
- package/dist/esm/components/websocket/handlers/bun.handler.js.map +1 -1
- package/dist/esm/testing/assert-application-boots.d.ts +6 -1
- package/dist/esm/testing/assert-application-boots.d.ts.map +1 -1
- package/dist/esm/testing/assert-application-boots.js +139 -136
- package/dist/esm/testing/assert-application-boots.js.map +1 -1
- package/dist/esm/utilities/drizzle-result.utility.d.ts +6 -8
- package/dist/esm/utilities/drizzle-result.utility.d.ts.map +1 -1
- package/dist/esm/utilities/drizzle-result.utility.js +23 -49
- package/dist/esm/utilities/drizzle-result.utility.js.map +1 -1
- package/dist/esm/utilities/network.utility.d.ts.map +1 -1
- package/dist/esm/utilities/network.utility.js +2 -2
- package/dist/esm/utilities/network.utility.js.map +1 -1
- package/dist/presets/app/files/src/boot.test.ts +2 -2
- package/dist/presets/app/files/src/controllers/hello.controller.ts +2 -2
- package/dist/presets/app/preset.json +4 -4
- package/dist/presets/lib/preset.json +4 -4
- package/dist/presets/shared/files/.configs/formatters/.ignore +4 -0
- package/dist/presets/shared/files/.configs/lints/.ignore +4 -0
- package/dist/presets/shared/files/.configs/lints/eslint.config.mjs +4 -0
- package/dist/presets/shared/files/.configs/lints/oxlint.config.mts +4 -0
- package/dist/presets/shared/files/README.md +15 -0
- package/dist/presets/shared/files/src/index.test.ts +8 -0
- package/dist/presets/shared/files/src/index.ts +8 -0
- package/dist/presets/shared/files/tsconfig.json +20 -0
- package/dist/presets/shared/preset.json +35 -0
- package/package.json +11 -11
- package/dist/esm/components/auth/models/entities/role.model.d.ts +0 -10
- package/dist/esm/components/auth/models/entities/role.model.d.ts.map +0 -1
- package/dist/esm/components/auth/models/entities/role.model.js +0 -15
- package/dist/esm/components/auth/models/entities/role.model.js.map +0 -1
- package/dist/esm/components/auth/models/entities/user.model.d.ts +0 -28
- package/dist/esm/components/auth/models/entities/user.model.d.ts.map +0 -1
- package/dist/esm/components/auth/models/entities/user.model.js +0 -17
- package/dist/esm/components/auth/models/entities/user.model.js.map +0 -1
- package/dist/esm/components/controller/index.d.ts +0 -2
- package/dist/esm/components/controller/index.d.ts.map +0 -1
- package/dist/esm/components/controller/index.js +0 -7
- package/dist/esm/components/controller/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drizzle-result.utility.js","sourceRoot":"","sources":["../../../src/utilities/drizzle-result.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,
|
|
1
|
+
{"version":3,"file":"drizzle-result.utility.js","sourceRoot":"","sources":["../../../src/utilities/drizzle-result.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,OAAO,oBAAoB;IAC/B,iDAAiD;IACjD,MAAM,CAAC,cAAc,CAAO,IAAyB;QACnD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAExB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,2CAA2C;QAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAgB,CAAC;QAC1B,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,CAAC;gBACb,OAAO,EAAE,4HAA4H,OAAO,MAAM,EAAE;aACrJ,CAAC,CAAC;QACL,CAAC;QAED,iCAAiC;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAA4B,CAAC;QAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAc,CAAC;QACxB,CAAC;QAED,MAAM,QAAQ,CAAC;YACb,OAAO,EAAE,oJAAoJ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC9L,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { getError } from '@venizia/ignis-helpers/core';\n\nexport class DrizzleResultUtility {\n /** Rows returned by `connector.execute(...)`. */\n static readResultRows<TRow>(opts: { result: unknown }): TRow[] {\n const { result } = opts;\n\n if (result === null || result === undefined) {\n return [];\n }\n\n // postgres-js: the result IS the row list.\n if (Array.isArray(result)) {\n return result as TRow[];\n }\n\n if (typeof result !== 'object') {\n throw getError({\n message: `[DrizzleResultUtility.readResultRows] Unrecognized driver result | expected pg.QueryResult or postgres-js RowList | got: ${typeof result}`,\n });\n }\n\n // node-postgres: pg.QueryResult.\n const { rows } = result as { rows?: unknown };\n\n if (Array.isArray(rows)) {\n return rows as TRow[];\n }\n\n throw getError({\n message: `[DrizzleResultUtility.readResultRows] Unrecognized driver result | expected an array (postgres-js) or a 'rows' array (node-postgres) | got keys: ${Object.keys(result).join(', ')}`,\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.utility.d.ts","sourceRoot":"","sources":["../../../src/utilities/network.utility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"network.utility.d.ts","sourceRoot":"","sources":["../../../src/utilities/network.utility.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA8C;IAC5E,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAS;IAE9C,qEAAqE;IACrE,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;CAiBtD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ErrorPrettier, LoggerFactory } from '@venizia/ignis-helpers';
|
|
2
2
|
import { getConnInfo } from 'hono/bun';
|
|
3
3
|
export class NetworkUtility {
|
|
4
|
-
static { this.logger =
|
|
4
|
+
static { this.logger = LoggerFactory.getLogger(['getIncomingIp']); }
|
|
5
5
|
/** Latches the warning: an absent conninfo peer fails identically for every later request. */
|
|
6
6
|
static { this.hasReportedUnavailable = false; }
|
|
7
7
|
/** Reads the incoming IP from Bun's connection info (`hono/bun`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.utility.js","sourceRoot":"","sources":["../../../src/utilities/network.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"network.utility.js","sourceRoot":"","sources":["../../../src/utilities/network.utility.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,OAAO,cAAc;aACD,WAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5E,8FAA8F;aAC/E,2BAAsB,GAAG,KAAK,CAAC;IAE9C,qEAAqE;IACrE,MAAM,CAAC,aAAa,CAAC,OAAgB;QACnC,IAAI,CAAC;YACH,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,cAAc,CAAC,sBAAsB,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAC7C,cAAc,CAAC,MAAM,CAAC,IAAI,CACxB,qFAAqF,EACrF,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAChC,CAAC;YAEF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC","sourcesContent":["import { ErrorPrettier, LoggerFactory } from '@venizia/ignis-helpers';\nimport type { Context } from 'hono';\nimport { getConnInfo } from 'hono/bun';\n\nexport class NetworkUtility {\n private static readonly logger = LoggerFactory.getLogger(['getIncomingIp']);\n /** Latches the warning: an absent conninfo peer fails identically for every later request. */\n private static hasReportedUnavailable = false;\n\n /** Reads the incoming IP from Bun's connection info (`hono/bun`). */\n static getIncomingIp(context: Context): string | null {\n try {\n return getConnInfo(context)?.remote?.address ?? null;\n } catch (error) {\n if (NetworkUtility.hasReportedUnavailable) {\n return null;\n }\n\n NetworkUtility.hasReportedUnavailable = true;\n NetworkUtility.logger.warn(\n '[getIncomingIp] Connection info unavailable - reporting null for every request | %s',\n ErrorPrettier.format({ error }),\n );\n\n return null;\n }\n }\n}\n"]}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// port or a database connection. A datasource added later is skipped unless you name it in `keepDataSources`.
|
|
3
3
|
// Components run for real: one that needs Redis, Kafka or S3 goes in `skipComponents`.
|
|
4
4
|
import { describe, expect, test } from 'bun:test';
|
|
5
|
-
import {
|
|
5
|
+
import { ApplicationBootAssertion } from '@venizia/ignis/testing';
|
|
6
6
|
import { application } from '#src/application';
|
|
7
7
|
|
|
8
8
|
describe('{{app}} boot', () => {
|
|
9
9
|
test('boots and mounts its routes', async () => {
|
|
10
|
-
const booted = await
|
|
10
|
+
const booted = await ApplicationBootAssertion.assert({ application });
|
|
11
11
|
|
|
12
12
|
// The root router has no base path yet: `start()` mounts it under `/api`.
|
|
13
13
|
const response = await booted.getRootRouter().request('/hello');
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
BaseRestController,
|
|
4
4
|
controller,
|
|
5
5
|
get,
|
|
6
|
-
|
|
6
|
+
OpenApiResponses,
|
|
7
7
|
type TRouteContext,
|
|
8
8
|
} from '@venizia/ignis';
|
|
9
9
|
import { HTTP } from '@venizia/ignis-helpers';
|
|
@@ -21,7 +21,7 @@ export class HelloController extends BaseRestController {
|
|
|
21
21
|
configs: {
|
|
22
22
|
path: '/',
|
|
23
23
|
responses: {
|
|
24
|
-
[HTTP.ResultCodes.RS_2.Ok]: jsonContent({
|
|
24
|
+
[HTTP.ResultCodes.RS_2.Ok]: OpenApiResponses.jsonContent({
|
|
25
25
|
description: 'Says hello',
|
|
26
26
|
schema: z.object({ message: z.string() }),
|
|
27
27
|
}),
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@hono/zod-openapi": "^1.6.3",
|
|
16
16
|
"@scalar/hono-api-reference": "^0.12.13",
|
|
17
|
-
"@venizia/ignis": "0.4.7-
|
|
18
|
-
"@venizia/ignis-boot": "0.4.7-
|
|
19
|
-
"@venizia/ignis-helpers": "0.4.7-
|
|
17
|
+
"@venizia/ignis": "0.4.7-2",
|
|
18
|
+
"@venizia/ignis-boot": "0.4.7-2",
|
|
19
|
+
"@venizia/ignis-helpers": "0.4.7-2",
|
|
20
20
|
"hono": "^4.13.13",
|
|
21
21
|
"winston": "^3.19.0",
|
|
22
22
|
"winston-daily-rotate-file": "^5.0.0",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/bun": "^1.4.3",
|
|
27
|
-
"@venizia/dev-configs": "0.4.7-
|
|
27
|
+
"@venizia/dev-configs": "0.4.7-2",
|
|
28
28
|
"eslint": "^10.13.0",
|
|
29
29
|
"oxlint": "1.89.0",
|
|
30
30
|
"oxlint-tsgolint": "7.0.2004",
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"presetVersion": 1,
|
|
3
|
-
"summary": "A
|
|
3
|
+
"summary": "A library other IGNIS apps import: services backend apps bind (exports to src, #src imports).",
|
|
4
4
|
"dependencies": {},
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@types/bun": "^1.4.3",
|
|
7
|
-
"@venizia/dev-configs": "0.4.7-
|
|
8
|
-
"@venizia/ignis": "0.4.7-
|
|
7
|
+
"@venizia/dev-configs": "0.4.7-2",
|
|
8
|
+
"@venizia/ignis": "0.4.7-2",
|
|
9
9
|
"eslint": "^10.13.0",
|
|
10
10
|
"oxlint": "1.89.0",
|
|
11
11
|
"oxlint-tsgolint": "7.0.2004",
|
|
12
12
|
"typescript": "^6.0.3"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@venizia/ignis": "0.4.7-
|
|
15
|
+
"@venizia/ignis": "0.4.7-2"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
18
|
"typecheck": "bun check",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# {{shared}}
|
|
2
|
+
|
|
3
|
+
`{{package}}` is the side-neutral package of the {{project}} project: plain TypeScript that backend and frontend apps both import. It depends on no framework, so keep it that way - no DOM, no Bun API, no server or UI package in `src`.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import { Greeting } from '{{package}}';
|
|
7
|
+
|
|
8
|
+
Greeting.of({ name: 'IGNIS' });
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Scripts
|
|
12
|
+
|
|
13
|
+
- `bun run typecheck` - type-check `src`.
|
|
14
|
+
- `bun run lint` - lint and format check (`lint:fix` fixes).
|
|
15
|
+
- `bun run test` - run the tests.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { describe, expect, test } from 'bun:test';
|
|
2
|
+
import { Greeting } from './index';
|
|
3
|
+
|
|
4
|
+
describe('Greeting', () => {
|
|
5
|
+
test('greets by name and names the package', () => {
|
|
6
|
+
expect(Greeting.of({ name: 'IGNIS' })).toBe('Hello, IGNIS, from {{package}}!');
|
|
7
|
+
});
|
|
8
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Plain code only: no framework, no DOM, no Bun API. A backend app and a frontend app import it alike.
|
|
2
|
+
export class Greeting {
|
|
3
|
+
static readonly PACKAGE = '{{package}}';
|
|
4
|
+
|
|
5
|
+
static of(opts: { name: string }): string {
|
|
6
|
+
return `Hello, ${opts.name}, from ${Greeting.PACKAGE}!`;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json.schemastore.org/tsconfig",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"target": "ES2025",
|
|
5
|
+
"lib": ["ES2025"],
|
|
6
|
+
"types": ["bun"],
|
|
7
|
+
"module": "preserve",
|
|
8
|
+
"moduleResolution": "bundler",
|
|
9
|
+
"resolveJsonModule": true,
|
|
10
|
+
"isolatedModules": true,
|
|
11
|
+
"forceConsistentCasingInFileNames": true,
|
|
12
|
+
"strict": true,
|
|
13
|
+
"noUnusedLocals": true,
|
|
14
|
+
"noUnusedParameters": true,
|
|
15
|
+
"skipLibCheck": true,
|
|
16
|
+
"noEmit": true
|
|
17
|
+
},
|
|
18
|
+
"include": ["src"],
|
|
19
|
+
"exclude": ["node_modules", "dist"]
|
|
20
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"presetVersion": 1,
|
|
3
|
+
"summary": "A package of plain code that backend and frontend apps both import; it depends on no framework.",
|
|
4
|
+
"dependencies": {},
|
|
5
|
+
"devDependencies": {
|
|
6
|
+
"@types/bun": "^1.4.3",
|
|
7
|
+
"@venizia/dev-configs": "0.4.7-2",
|
|
8
|
+
"eslint": "^10.13.0",
|
|
9
|
+
"oxlint": "1.89.0",
|
|
10
|
+
"oxlint-tsgolint": "7.0.2004",
|
|
11
|
+
"typescript": "^6.0.3"
|
|
12
|
+
},
|
|
13
|
+
"peerDependencies": {},
|
|
14
|
+
"scripts": {
|
|
15
|
+
"typecheck": "bun check",
|
|
16
|
+
"lint": "devz lint",
|
|
17
|
+
"lint:fix": "devz lint --fix",
|
|
18
|
+
"test": "bun test --preload @venizia/dev-configs/testing/tmpdir-preload",
|
|
19
|
+
"clean": "devz clean"
|
|
20
|
+
},
|
|
21
|
+
"checks": [
|
|
22
|
+
"typecheck",
|
|
23
|
+
"lint",
|
|
24
|
+
"test"
|
|
25
|
+
],
|
|
26
|
+
"imports": {
|
|
27
|
+
"#src/*.json": "./src/*.json",
|
|
28
|
+
"#src/*": "./src/*.js"
|
|
29
|
+
},
|
|
30
|
+
"exports": {
|
|
31
|
+
".": "./src/index.ts"
|
|
32
|
+
},
|
|
33
|
+
"files": "./files",
|
|
34
|
+
"atlas": []
|
|
35
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis",
|
|
3
|
-
"version": "0.4.7-
|
|
3
|
+
"version": "0.4.7-2",
|
|
4
4
|
"description": "TypeScript server framework with decorator-based DI, the repository pattern and a component system, on Hono. Features auto-generated OpenAPI docs, Drizzle ORM type-safe SQL, JWT/Basic authentication, Casbin authorization, convention-based bootstrapping, and pluggable components for health checks, Swagger UI, mail, Socket.IO, and static assets. Built for Bun and Node.js.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"access-control",
|
|
@@ -183,15 +183,14 @@
|
|
|
183
183
|
},
|
|
184
184
|
"scripts": {
|
|
185
185
|
"test": "bun test ./src",
|
|
186
|
-
"force-update": "sh ../../scripts/build/force-update.sh"
|
|
187
|
-
"prepublishOnly": "make rebuild"
|
|
186
|
+
"force-update": "sh ../../scripts/build/force-update.sh"
|
|
188
187
|
},
|
|
189
188
|
"dependencies": {
|
|
190
|
-
"@venizia/ignis-connectors": "0.4.7-
|
|
191
|
-
"@venizia/ignis-filter": "0.4.6-
|
|
192
|
-
"@venizia/ignis-helpers": "0.4.7-
|
|
193
|
-
"@venizia/ignis-inversion": "0.4.6-
|
|
194
|
-
"@venizia/ignis-kernel": "0.4.7-
|
|
189
|
+
"@venizia/ignis-connectors": "0.4.7-2",
|
|
190
|
+
"@venizia/ignis-filter": "0.4.6-1",
|
|
191
|
+
"@venizia/ignis-helpers": "0.4.7-2",
|
|
192
|
+
"@venizia/ignis-inversion": "0.4.6-1",
|
|
193
|
+
"@venizia/ignis-kernel": "0.4.7-2",
|
|
195
194
|
"reflect-metadata": "^0.2.2"
|
|
196
195
|
},
|
|
197
196
|
"devDependencies": {
|
|
@@ -204,8 +203,8 @@
|
|
|
204
203
|
"@types/bun": "^1.4.3",
|
|
205
204
|
"@types/nodemailer": "^8.0.2",
|
|
206
205
|
"@types/pg": "^8.23.1",
|
|
207
|
-
"@venizia/dev-configs": "0.4.7-
|
|
208
|
-
"@venizia/ignis-boot": "0.4.7-
|
|
206
|
+
"@venizia/dev-configs": "0.4.7-2",
|
|
207
|
+
"@venizia/ignis-boot": "0.4.7-2",
|
|
209
208
|
"casbin": "^5.51.1",
|
|
210
209
|
"eslint": "^10.13.0",
|
|
211
210
|
"meilisearch": "^0.62.0",
|
|
@@ -308,7 +307,8 @@
|
|
|
308
307
|
"vulcan": {
|
|
309
308
|
"presets": {
|
|
310
309
|
"app": "./dist/presets/app/preset.json",
|
|
311
|
-
"lib": "./dist/presets/lib/preset.json"
|
|
310
|
+
"lib": "./dist/presets/lib/preset.json",
|
|
311
|
+
"shared": "./dist/presets/shared/preset.json"
|
|
312
312
|
}
|
|
313
313
|
}
|
|
314
314
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { RoleStatuses } from '@venizia/ignis-kernel';
|
|
2
|
-
import type { TConstValue } from '@venizia/ignis-helpers/common';
|
|
3
|
-
export declare const extraRoleColumns: () => {
|
|
4
|
-
identifier: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"identifier", [string, ...string[]]>>;
|
|
5
|
-
name: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgTextBuilderInitial<"name", [string, ...string[]]>>;
|
|
6
|
-
description: import("drizzle-orm/pg-core").PgTextBuilderInitial<"description", [string, ...string[]]>;
|
|
7
|
-
priority: import("drizzle-orm").NotNull<import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"priority">>;
|
|
8
|
-
status: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgTextBuilderInitial<"status", [string, ...string[]]>, TConstValue<typeof RoleStatuses>>>>;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=role.model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"role.model.d.ts","sourceRoot":"","sources":["../../../../../../src/components/auth/models/entities/role.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,gBAAgB;;;;;;CAW5B,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { RoleStatuses } from '@venizia/ignis-kernel';
|
|
2
|
-
import { integer, text } from 'drizzle-orm/pg-core';
|
|
3
|
-
export const extraRoleColumns = () => {
|
|
4
|
-
return {
|
|
5
|
-
identifier: text('identifier').unique().notNull(),
|
|
6
|
-
name: text('name').notNull(),
|
|
7
|
-
description: text('description'),
|
|
8
|
-
priority: integer('priority').notNull(),
|
|
9
|
-
status: text('status')
|
|
10
|
-
.$type()
|
|
11
|
-
.notNull()
|
|
12
|
-
.default(RoleStatuses.ACTIVATED),
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=role.model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"role.model.js","sourceRoot":"","sources":["../../../../../../src/components/auth/models/entities/role.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;QACjD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;QAChC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;QACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;aACnB,KAAK,EAAoC;aACzC,OAAO,EAAE;aACT,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;KACnC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { RoleStatuses } from '@venizia/ignis-kernel';\nimport type { TConstValue } from '@venizia/ignis-helpers/common';\nimport { integer, text } from 'drizzle-orm/pg-core';\n\nexport const extraRoleColumns = () => {\n return {\n identifier: text('identifier').unique().notNull(),\n name: text('name').notNull(),\n description: text('description'),\n priority: integer('priority').notNull(),\n status: text('status')\n .$type<TConstValue<typeof RoleStatuses>>()\n .notNull()\n .default(RoleStatuses.ACTIVATED),\n };\n};\n"]}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { UserStatuses, UserTypes } from '@venizia/ignis-kernel';
|
|
2
|
-
import type { TIdSchemaType } from '@venizia/ignis-kernel';
|
|
3
|
-
import type { TConstValue } from '@venizia/ignis-helpers/common';
|
|
4
|
-
export declare const extraUserColumns: (opts?: {
|
|
5
|
-
idType: TIdSchemaType;
|
|
6
|
-
}) => {
|
|
7
|
-
realm: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTextBuilderInitial<"realm", [string, ...string[]]>>;
|
|
8
|
-
status: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgTextBuilderInitial<"status", [string, ...string[]]>, TConstValue<typeof UserStatuses>>>>;
|
|
9
|
-
type: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm").$Type<import("drizzle-orm/pg-core").PgTextBuilderInitial<"type", [string, ...string[]]>, TConstValue<typeof UserTypes>>>>;
|
|
10
|
-
activatedAt: import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
11
|
-
name: string;
|
|
12
|
-
dataType: "custom";
|
|
13
|
-
columnType: "PgCustomColumn";
|
|
14
|
-
data: string | import("@venizia/ignis-filter").TIsoTimestamp;
|
|
15
|
-
driverParam: string;
|
|
16
|
-
enumValues: undefined;
|
|
17
|
-
}>;
|
|
18
|
-
lastLoginAt: import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
|
|
19
|
-
name: string;
|
|
20
|
-
dataType: "custom";
|
|
21
|
-
columnType: "PgCustomColumn";
|
|
22
|
-
data: string | import("@venizia/ignis-filter").TIsoTimestamp;
|
|
23
|
-
driverParam: string;
|
|
24
|
-
enumValues: undefined;
|
|
25
|
-
}>;
|
|
26
|
-
parentId: import("drizzle-orm/pg-core").PgIntegerBuilderInitial<"parent_id"> | import("drizzle-orm/pg-core").PgTextBuilderInitial<"parent_id", [string, ...string[]]>;
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=user.model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../../../../../src/components/auth/models/entities/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,gBAAgB,GAAI,OAAO;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;CAYhE,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { UserStatuses, UserTypes } from '@venizia/ignis-kernel';
|
|
2
|
-
import { isoTimestamp } from '@venizia/ignis-connectors/postgres';
|
|
3
|
-
import { integer, text } from 'drizzle-orm/pg-core';
|
|
4
|
-
export const extraUserColumns = (opts) => {
|
|
5
|
-
return {
|
|
6
|
-
realm: text('realm').default(''),
|
|
7
|
-
status: text('status')
|
|
8
|
-
.$type()
|
|
9
|
-
.notNull()
|
|
10
|
-
.default(UserStatuses.UNKNOWN),
|
|
11
|
-
type: text('type').$type().notNull().default(UserTypes.SYSTEM),
|
|
12
|
-
activatedAt: isoTimestamp('activated_at', { withTimezone: true }),
|
|
13
|
-
lastLoginAt: isoTimestamp('last_login_at', { withTimezone: true }),
|
|
14
|
-
parentId: opts?.idType === 'string' ? text('parent_id') : integer('parent_id'),
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=user.model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../../../../../src/components/auth/models/entities/user.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAgC,EAAE,EAAE;IACnE,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;aACnB,KAAK,EAAoC;aACzC,OAAO,EAAE;aACT,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAiC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;QAC7F,WAAW,EAAE,YAAY,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACjE,WAAW,EAAE,YAAY,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAClE,QAAQ,EAAE,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;KAC/E,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { UserStatuses, UserTypes } from '@venizia/ignis-kernel';\nimport type { TIdSchemaType } from '@venizia/ignis-kernel';\nimport { isoTimestamp } from '@venizia/ignis-connectors/postgres';\nimport type { TConstValue } from '@venizia/ignis-helpers/common';\nimport { integer, text } from 'drizzle-orm/pg-core';\n\nexport const extraUserColumns = (opts?: { idType: TIdSchemaType }) => {\n return {\n realm: text('realm').default(''),\n status: text('status')\n .$type<TConstValue<typeof UserStatuses>>()\n .notNull()\n .default(UserStatuses.UNKNOWN),\n type: text('type').$type<TConstValue<typeof UserTypes>>().notNull().default(UserTypes.SYSTEM),\n activatedAt: isoTimestamp('activated_at', { withTimezone: true }),\n lastLoginAt: isoTimestamp('last_login_at', { withTimezone: true }),\n parentId: opts?.idType === 'string' ? text('parent_id') : integer('parent_id'),\n };\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/controller/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
// `RestComponent` moved to `@venizia/ignis-kernel` - `RestApplication` owns REST controller
|
|
3
|
-
// registration by inheritance now. This package's own `@/index` re-export of the kernel barrel
|
|
4
|
-
// still surfaces it publicly.
|
|
5
|
-
// gRPC excluded from this barrel - import directly from the subpath.
|
|
6
|
-
// export * from './grpc/index.js';
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/controller/index.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,+FAA+F;AAC/F,8BAA8B;AAC9B,qEAAqE;AACrE,0BAA0B","sourcesContent":["// `RestComponent` moved to `@venizia/ignis-kernel` - `RestApplication` owns REST controller\n// registration by inheritance now. This package's own `@/index` re-export of the kernel barrel\n// still surfaces it publicly.\n// gRPC excluded from this barrel - import directly from the subpath.\n// export * from './grpc';\n"]}
|