@venizia/ignis-kernel 0.2.0-7 → 0.2.0-9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/base/events/event-bus.d.ts +1 -1
- package/dist/cjs/base/events/event-bus.js +2 -2
- package/dist/cjs/base/events/event-bus.js.map +1 -1
- package/dist/cjs/base/metadata/persistents.js +1 -1
- package/dist/cjs/base/metadata/persistents.js.map +1 -1
- package/dist/cjs/base/repositories/common/constants.d.ts +26 -0
- package/dist/cjs/base/repositories/common/constants.d.ts.map +1 -1
- package/dist/cjs/base/repositories/common/constants.js +29 -1
- package/dist/cjs/base/repositories/common/constants.js.map +1 -1
- package/dist/cjs/base/repositories/core/abstract.d.ts.map +1 -1
- package/dist/cjs/base/repositories/core/abstract.js +1 -1
- package/dist/cjs/base/repositories/core/abstract.js.map +1 -1
- package/dist/cjs/base/repositories/index.d.ts +1 -0
- package/dist/cjs/base/repositories/index.d.ts.map +1 -1
- package/dist/cjs/base/repositories/index.js +1 -0
- package/dist/cjs/base/repositories/index.js.map +1 -1
- package/dist/cjs/base/repositories/sqls/index.d.ts +2 -0
- package/dist/cjs/base/repositories/sqls/index.d.ts.map +1 -0
- package/dist/cjs/base/repositories/sqls/index.js +18 -0
- package/dist/cjs/base/repositories/sqls/index.js.map +1 -0
- package/dist/cjs/base/repositories/sqls/recursive-tree.d.ts +56 -0
- package/dist/cjs/base/repositories/sqls/recursive-tree.d.ts.map +1 -0
- package/dist/cjs/base/repositories/sqls/recursive-tree.js +148 -0
- package/dist/cjs/base/repositories/sqls/recursive-tree.js.map +1 -0
- package/dist/cjs/helpers/inversion/common/types.d.ts +34 -4
- package/dist/cjs/helpers/inversion/common/types.d.ts.map +1 -1
- package/dist/esm/base/events/event-bus.d.ts +1 -1
- package/dist/esm/base/events/event-bus.js +3 -3
- package/dist/esm/base/events/event-bus.js.map +1 -1
- package/dist/esm/base/metadata/persistents.js +1 -1
- package/dist/esm/base/metadata/persistents.js.map +1 -1
- package/dist/esm/base/repositories/common/constants.d.ts +26 -0
- package/dist/esm/base/repositories/common/constants.d.ts.map +1 -1
- package/dist/esm/base/repositories/common/constants.js +26 -0
- package/dist/esm/base/repositories/common/constants.js.map +1 -1
- package/dist/esm/base/repositories/core/abstract.d.ts.map +1 -1
- package/dist/esm/base/repositories/core/abstract.js +2 -2
- package/dist/esm/base/repositories/core/abstract.js.map +1 -1
- package/dist/esm/base/repositories/index.d.ts +1 -0
- package/dist/esm/base/repositories/index.d.ts.map +1 -1
- package/dist/esm/base/repositories/index.js +1 -0
- package/dist/esm/base/repositories/index.js.map +1 -1
- package/dist/esm/base/repositories/sqls/index.d.ts +2 -0
- package/dist/esm/base/repositories/sqls/index.d.ts.map +1 -0
- package/dist/esm/base/repositories/sqls/index.js +2 -0
- package/dist/esm/base/repositories/sqls/index.js.map +1 -0
- package/dist/esm/base/repositories/sqls/recursive-tree.d.ts +56 -0
- package/dist/esm/base/repositories/sqls/recursive-tree.d.ts.map +1 -0
- package/dist/esm/base/repositories/sqls/recursive-tree.js +143 -0
- package/dist/esm/base/repositories/sqls/recursive-tree.js.map +1 -0
- package/dist/esm/helpers/inversion/common/types.d.ts +34 -4
- package/dist/esm/helpers/inversion/common/types.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import type { TAuthMode, TAuthStrategy } from '../../../base/auth/authenticate/common/index.js';
|
|
2
|
+
import type { IAuthorizationSpec } from '../../../base/auth/authorize/common/types.js';
|
|
1
3
|
import type { ControllerTransports } from '../../../base/controllers/common/constants.js';
|
|
2
4
|
import type { IDataSource, TDataSourceDriverClass } from '../../../base/datasources/index.js';
|
|
3
5
|
import type { AbstractEntity } from '../../../base/models/index.js';
|
|
4
|
-
import type { IRepository, TFilter, TRepositoryOperationScope } from '../../../base/repositories/index.js';
|
|
5
|
-
import type {
|
|
6
|
-
import type { IAuthorizationSpec } from '../../../base/auth/authorize/common/types.js';
|
|
7
|
-
import type { TClass, TGrpcMethod, TValueOrResolver } from '@venizia/ignis-helpers/common';
|
|
6
|
+
import type { IRepository, ScopeFilters, TFilter, TRepositoryOperationScope, TScopeFilterMissingBehavior, TWhere } from '../../../base/repositories/index.js';
|
|
7
|
+
import type { TClass, TGrpcMethod, TNullable, TValueOrResolver } from '@venizia/ignis-helpers/common';
|
|
8
8
|
import { type IInjectMetadata as _IInjectMetadata, type IPropertyMetadata as _IPropertyMetadata } from '@venizia/ignis-inversion';
|
|
9
9
|
interface IBaseControllerMetadata {
|
|
10
10
|
path: string;
|
|
@@ -44,11 +44,41 @@ export interface IModelAuthorizeSettings {
|
|
|
44
44
|
/** Extensible - consumers can add any extra authorization metadata. */
|
|
45
45
|
[extra: string | symbol]: any;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Row-scope resolver for `@model` settings.scopeFilter - resolved per query, so it can depend on
|
|
49
|
+
* the current request (tenant, org, membership). Framework-internal escape hatches aside, nothing
|
|
50
|
+
* short of removing this setting from the model turns scoping off.
|
|
51
|
+
*/
|
|
52
|
+
export interface IScopeFilterSettings {
|
|
53
|
+
/**
|
|
54
|
+
* Returns the scope `where`; `ScopeFilters.UNRESTRICTED` to apply no scope for THIS call (an
|
|
55
|
+
* internal operator, a caller the application has decided sees everything); or null/undefined
|
|
56
|
+
* when this caller's scope cannot be determined at all.
|
|
57
|
+
*/
|
|
58
|
+
resolve: () => TNullable<TWhere> | typeof ScopeFilters.UNRESTRICTED;
|
|
59
|
+
/**
|
|
60
|
+
* What `applyScopeFilter` does when `resolve()` returns null/undefined - no request context, no
|
|
61
|
+
* tenant, a background job. Defaults to `deny`: an unresolved scope matches zero rows, never
|
|
62
|
+
* every row. `allow` is an explicit, reviewed opt-out for migrations and background jobs, declared
|
|
63
|
+
* per MODEL - it cannot express a per-USER bypass; use `ScopeFilters.UNRESTRICTED` for that.
|
|
64
|
+
*/
|
|
65
|
+
onMissing?: TScopeFilterMissingBehavior;
|
|
66
|
+
}
|
|
47
67
|
export interface IModelSettings {
|
|
48
68
|
/** Properties excluded from all query results at SQL level. */
|
|
49
69
|
hiddenProperties?: string[];
|
|
50
70
|
/** Default filter auto-applied to all repository operations. Bypassable via shouldSkipDefaultFilter. */
|
|
51
71
|
defaultFilter?: TFilter;
|
|
72
|
+
/**
|
|
73
|
+
* Row scope: ANDed into every read and write whose scope is expressible as a filter clause, and
|
|
74
|
+
* NOT removable by `shouldSkipDefaultFilter`. Resolved per query, so it can depend on the current
|
|
75
|
+
* request. Ownership resolved per row or through a polymorphic reference is NOT expressible here -
|
|
76
|
+
* that check is still the application's to perform.
|
|
77
|
+
*
|
|
78
|
+
* Relational repositories only - a search-backed model (Typesense, Meilisearch) never reads
|
|
79
|
+
* this setting, so mirroring a scoped entity into a search index needs its own query-time scope.
|
|
80
|
+
*/
|
|
81
|
+
scopeFilter?: IScopeFilterSettings;
|
|
52
82
|
/** Default row limit when a query omits `limit`. Must be a positive integer. Falls back to DEFAULT_LIMIT (10). */
|
|
53
83
|
defaultLimit?: number;
|
|
54
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-kernel",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-9",
|
|
4
4
|
"description": "Browser-pure kernel of the IGNIS framework: dependency injection, lifecycle, REST controllers, repository and datasource abstractions, and the authentication and authorization seams. No node builtin and no server-only peer, so the same kernel serves a Bun server and a browser Worker.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"authentication",
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
"prepublishOnly": "bun run rebuild"
|
|
80
80
|
},
|
|
81
81
|
"dependencies": {
|
|
82
|
-
"@venizia/ignis-filter": "^0.2.0-
|
|
83
|
-
"@venizia/ignis-helpers": "^0.2.0-
|
|
84
|
-
"@venizia/ignis-inversion": "^0.2.0-
|
|
82
|
+
"@venizia/ignis-filter": "^0.2.0-4",
|
|
83
|
+
"@venizia/ignis-helpers": "^0.2.0-7",
|
|
84
|
+
"@venizia/ignis-inversion": "^0.2.0-3",
|
|
85
85
|
"lodash": "^4.18.1",
|
|
86
86
|
"reflect-metadata": "^0.2.2",
|
|
87
87
|
"zod": "^4.4.3"
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"devDependencies": {
|
|
108
108
|
"@types/bun": "^1.3.14",
|
|
109
109
|
"@types/lodash": "^4.17.23",
|
|
110
|
-
"@venizia/dev-configs": "^0.2.0-
|
|
110
|
+
"@venizia/dev-configs": "^0.2.0-3",
|
|
111
111
|
"casbin": "^5.51.1",
|
|
112
112
|
"eslint": "^10.7.0",
|
|
113
113
|
"prettier": "^3.9.5",
|