@venizia/ignis 0.0.5-2 → 0.0.5-20
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/base/applications/abstract.d.ts.map +1 -1
- package/dist/base/applications/abstract.js +1 -0
- package/dist/base/applications/abstract.js.map +1 -1
- package/dist/base/applications/base.d.ts.map +1 -1
- package/dist/base/applications/base.js +8 -1
- package/dist/base/applications/base.js.map +1 -1
- package/dist/base/applications/types.d.ts +10 -1
- package/dist/base/applications/types.d.ts.map +1 -1
- package/dist/base/controllers/abstract.d.ts +1 -0
- package/dist/base/controllers/abstract.d.ts.map +1 -1
- package/dist/base/controllers/abstract.js +12 -1
- package/dist/base/controllers/abstract.js.map +1 -1
- package/dist/base/controllers/common/types.d.ts +5 -1
- package/dist/base/controllers/common/types.d.ts.map +1 -1
- package/dist/base/controllers/factory/controller.d.ts +15 -6
- package/dist/base/controllers/factory/controller.d.ts.map +1 -1
- package/dist/base/controllers/factory/controller.js +46 -21
- package/dist/base/controllers/factory/controller.js.map +1 -1
- package/dist/base/datasources/base.d.ts.map +1 -1
- package/dist/base/datasources/base.js +10 -1
- package/dist/base/datasources/base.js.map +1 -1
- package/dist/base/metadata/index.d.ts +1 -0
- package/dist/base/metadata/index.d.ts.map +1 -1
- package/dist/base/metadata/index.js +1 -0
- package/dist/base/metadata/index.js.map +1 -1
- package/dist/base/metadata/request-context.d.ts +3 -0
- package/dist/base/metadata/request-context.d.ts.map +1 -0
- package/dist/base/metadata/request-context.js +9 -0
- package/dist/base/metadata/request-context.js.map +1 -0
- package/dist/base/metadata/routes.d.ts +30 -40
- package/dist/base/metadata/routes.d.ts.map +1 -1
- package/dist/base/metadata/routes.js +15 -5
- package/dist/base/metadata/routes.js.map +1 -1
- package/dist/base/middlewares/app-error.middleware.d.ts +1 -0
- package/dist/base/middlewares/app-error.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/app-error.middleware.js +10 -8
- package/dist/base/middlewares/app-error.middleware.js.map +1 -1
- package/dist/base/middlewares/request-spy.middleware.d.ts.map +1 -1
- package/dist/base/middlewares/request-spy.middleware.js +12 -0
- package/dist/base/middlewares/request-spy.middleware.js.map +1 -1
- package/dist/base/mixins/component.mixin.d.ts.map +1 -1
- package/dist/base/mixins/controller.mixin.d.ts.map +1 -1
- package/dist/base/mixins/repository.mixin.d.ts.map +1 -1
- package/dist/base/mixins/service.mixin.d.ts.map +1 -1
- package/dist/base/models/enrichers/id.enricher.d.ts +15 -10
- package/dist/base/models/enrichers/id.enricher.d.ts.map +1 -1
- package/dist/base/models/enrichers/id.enricher.js +3 -3
- package/dist/base/models/enrichers/id.enricher.js.map +1 -1
- package/dist/base/models/enrichers/principal.enricher.d.ts +7 -9
- package/dist/base/models/enrichers/principal.enricher.d.ts.map +1 -1
- package/dist/base/models/enrichers/principal.enricher.js.map +1 -1
- package/dist/base/models/enrichers/user-audit.enricher.d.ts +3 -2
- package/dist/base/models/enrichers/user-audit.enricher.d.ts.map +1 -1
- package/dist/base/models/enrichers/user-audit.enricher.js +47 -11
- package/dist/base/models/enrichers/user-audit.enricher.js.map +1 -1
- package/dist/base/repositories/common/constants.d.ts +59 -0
- package/dist/base/repositories/common/constants.d.ts.map +1 -1
- package/dist/base/repositories/common/constants.js +51 -2
- package/dist/base/repositories/common/constants.js.map +1 -1
- package/dist/base/repositories/common/types.d.ts +482 -44
- package/dist/base/repositories/common/types.d.ts.map +1 -1
- package/dist/base/repositories/common/types.js +164 -17
- package/dist/base/repositories/common/types.js.map +1 -1
- package/dist/base/repositories/core/abstract.d.ts +450 -0
- package/dist/base/repositories/core/abstract.d.ts.map +1 -0
- package/dist/base/repositories/core/abstract.js +287 -0
- package/dist/base/repositories/core/abstract.js.map +1 -0
- package/dist/base/repositories/core/default-crud.d.ts +2 -2
- package/dist/base/repositories/core/default-crud.d.ts.map +1 -1
- package/dist/base/repositories/core/index.d.ts +1 -1
- package/dist/base/repositories/core/index.d.ts.map +1 -1
- package/dist/base/repositories/core/index.js +1 -1
- package/dist/base/repositories/core/index.js.map +1 -1
- package/dist/base/repositories/core/persistable.d.ts +91 -36
- package/dist/base/repositories/core/persistable.d.ts.map +1 -1
- package/dist/base/repositories/core/persistable.js +139 -37
- package/dist/base/repositories/core/persistable.js.map +1 -1
- package/dist/base/repositories/core/readable.d.ts +166 -62
- package/dist/base/repositories/core/readable.d.ts.map +1 -1
- package/dist/base/repositories/core/readable.js +185 -56
- package/dist/base/repositories/core/readable.js.map +1 -1
- package/dist/base/repositories/mixins/default-filter.d.ts +65 -0
- package/dist/base/repositories/mixins/default-filter.d.ts.map +1 -0
- package/dist/base/repositories/mixins/default-filter.js +97 -0
- package/dist/base/repositories/mixins/default-filter.js.map +1 -0
- package/dist/base/repositories/mixins/fields-visibility.d.ts +74 -0
- package/dist/base/repositories/mixins/fields-visibility.d.ts.map +1 -0
- package/dist/base/repositories/mixins/fields-visibility.js +129 -0
- package/dist/base/repositories/mixins/fields-visibility.js.map +1 -0
- package/dist/base/repositories/mixins/index.d.ts +3 -0
- package/dist/base/repositories/mixins/index.d.ts.map +1 -0
- package/dist/base/repositories/mixins/index.js +19 -0
- package/dist/base/repositories/mixins/index.js.map +1 -0
- package/dist/base/repositories/operators/filter.d.ts +146 -12
- package/dist/base/repositories/operators/filter.d.ts.map +1 -1
- package/dist/base/repositories/operators/filter.js +432 -112
- package/dist/base/repositories/operators/filter.js.map +1 -1
- package/dist/base/repositories/operators/query.d.ts +69 -0
- package/dist/base/repositories/operators/query.d.ts.map +1 -1
- package/dist/base/repositories/operators/query.js +190 -2
- package/dist/base/repositories/operators/query.js.map +1 -1
- package/dist/base/repositories/operators/relation.d.ts +33 -0
- package/dist/base/repositories/operators/relation.d.ts.map +1 -1
- package/dist/base/repositories/operators/relation.js +36 -0
- package/dist/base/repositories/operators/relation.js.map +1 -1
- package/dist/common/statuses.d.ts +26 -7
- package/dist/common/statuses.d.ts.map +1 -1
- package/dist/common/statuses.js +96 -9
- package/dist/common/statuses.js.map +1 -1
- package/dist/components/auth/authenticate/common/constants.d.ts +1 -0
- package/dist/components/auth/authenticate/common/constants.d.ts.map +1 -1
- package/dist/components/auth/authenticate/common/constants.js +1 -0
- package/dist/components/auth/authenticate/common/constants.js.map +1 -1
- package/dist/components/auth/authenticate/common/types.d.ts +7 -0
- package/dist/components/auth/authenticate/common/types.d.ts.map +1 -1
- package/dist/components/auth/authenticate/controllers/factory.d.ts +1 -0
- package/dist/components/auth/authenticate/controllers/factory.d.ts.map +1 -1
- package/dist/components/auth/authenticate/strategies/strategy-registry.d.ts.map +1 -1
- package/dist/components/auth/authenticate/strategies/strategy-registry.js +3 -0
- package/dist/components/auth/authenticate/strategies/strategy-registry.js.map +1 -1
- package/dist/components/auth/models/entities/user-role.model.d.ts +1 -1
- package/dist/components/auth/models/entities/user-role.model.d.ts.map +1 -1
- package/dist/components/auth/models/entities/user-role.model.js +1 -1
- package/dist/components/auth/models/entities/user-role.model.js.map +1 -1
- package/dist/components/health-check/controller.d.ts +4 -5
- package/dist/components/health-check/controller.d.ts.map +1 -1
- package/dist/components/health-check/controller.js +12 -12
- package/dist/components/health-check/controller.js.map +1 -1
- package/dist/components/static-asset/component.d.ts +0 -1
- package/dist/components/static-asset/component.d.ts.map +1 -1
- package/dist/components/static-asset/component.js +0 -2
- package/dist/components/static-asset/component.js.map +1 -1
- package/dist/components/static-asset/controller/factory.d.ts +1 -0
- package/dist/components/static-asset/controller/factory.d.ts.map +1 -1
- package/dist/components/static-asset/controller/factory.js +1 -1
- package/dist/components/static-asset/controller/factory.js.map +1 -1
- package/dist/components/static-asset/models/base.model.d.ts +10 -10
- package/dist/components/static-asset/models/base.model.js +1 -1
- package/dist/components/static-asset/models/base.model.js.map +1 -1
- package/dist/helpers/inversion/common/types.d.ts +35 -1
- package/dist/helpers/inversion/common/types.d.ts.map +1 -1
- package/package.json +4 -5
- package/dist/base/repositories/core/base.d.ts +0 -264
- package/dist/base/repositories/core/base.d.ts.map +0 -1
- package/dist/base/repositories/core/base.js +0 -197
- package/dist/base/repositories/core/base.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-audit.enricher.d.ts","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,uBAAuB,EAAE,oBAAoB,EAAQ,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-audit.enricher.d.ts","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,uBAAuB,EAAE,oBAAoB,EAAQ,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,iBAAiB,SAAS,kBAAkB,GAAG,kBAAkB,IAC/D,iBAAiB,GAAG;IACtB,SAAS,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IACjG,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;CACnG,CAAC;AAyEF,eAAO,MAAM,2BAA2B,GAAI,OAAO,yBAAyB;;;CAU3E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,iBAAiB,SAAS,kBAAkB,GAAG,kBAAkB,EAC/F,YAAY,iBAAiB,EAC7B,OAAO,yBAAyB,KAC/B,wBAAwB,CAAC,iBAAiB,CAG5C,CAAC"}
|
|
@@ -3,14 +3,56 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.enrichUserAudit = exports.generateUserAuditColumnDefs = void 0;
|
|
4
4
|
const ignis_helpers_1 = require("@venizia/ignis-helpers");
|
|
5
5
|
const pg_core_1 = require("drizzle-orm/pg-core");
|
|
6
|
+
const context_storage_1 = require("hono/context-storage");
|
|
7
|
+
const common_1 = require("../../../components/auth/authenticate/common");
|
|
8
|
+
/**
|
|
9
|
+
* Get current user ID from Hono context storage.
|
|
10
|
+
* Returns null if context unavailable (background jobs, migrations, tests).
|
|
11
|
+
*
|
|
12
|
+
* CAUTIONS: if using fire-and-forget promise, this could be run outside of async context => cannot detect AUDIT_USER_ID
|
|
13
|
+
*/
|
|
14
|
+
const getCurrentUserId = (opts) => {
|
|
15
|
+
const context = (0, context_storage_1.tryGetContext)();
|
|
16
|
+
if (!context) {
|
|
17
|
+
if (!opts.allowAnonymous) {
|
|
18
|
+
throw (0, ignis_helpers_1.getError)({
|
|
19
|
+
message: `[getCurrentUserId] Invalid request context to identify user | columnName: ${opts.columnField} | allowAnonymous: ${opts.allowAnonymous}`,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const userId = context.get(common_1.Authentication.AUDIT_USER_ID);
|
|
25
|
+
if (!userId && !opts.allowAnonymous) {
|
|
26
|
+
throw (0, ignis_helpers_1.getError)({
|
|
27
|
+
message: `[getCurrentUserId] No AUDIT_USER_ID found in request context | columnName: ${opts.columnField} | allowAnonymous: ${opts.allowAnonymous} | userId: ${userId}`,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return userId ?? null;
|
|
31
|
+
};
|
|
6
32
|
const buildUserAuditColumn = (opts) => {
|
|
7
33
|
const { columnOpts, columnField } = opts;
|
|
8
34
|
switch (columnOpts.dataType) {
|
|
9
35
|
case 'number': {
|
|
10
|
-
|
|
36
|
+
const col = (0, pg_core_1.integer)(columnOpts.columnName).$type();
|
|
37
|
+
const userIdGetter = () => getCurrentUserId({
|
|
38
|
+
columnField,
|
|
39
|
+
allowAnonymous: columnOpts.allowAnonymous ?? true,
|
|
40
|
+
});
|
|
41
|
+
// createdBy: only set on creation | modifiedBy: set on creation AND update
|
|
42
|
+
return columnField === 'createdBy'
|
|
43
|
+
? col.$default(userIdGetter)
|
|
44
|
+
: col.$default(userIdGetter).$onUpdate(userIdGetter);
|
|
11
45
|
}
|
|
12
46
|
case 'string': {
|
|
13
|
-
|
|
47
|
+
const col = (0, pg_core_1.text)(columnOpts.columnName).$type();
|
|
48
|
+
const userIdGetter = () => getCurrentUserId({
|
|
49
|
+
columnField,
|
|
50
|
+
allowAnonymous: columnOpts.allowAnonymous ?? true,
|
|
51
|
+
});
|
|
52
|
+
// createdBy: only set on creation | modifiedBy: set on creation AND update
|
|
53
|
+
return columnField === 'createdBy'
|
|
54
|
+
? col.$default(userIdGetter)
|
|
55
|
+
: col.$default(userIdGetter).$onUpdate(userIdGetter);
|
|
14
56
|
}
|
|
15
57
|
default: {
|
|
16
58
|
throw (0, ignis_helpers_1.getError)({
|
|
@@ -20,16 +62,10 @@ const buildUserAuditColumn = (opts) => {
|
|
|
20
62
|
}
|
|
21
63
|
};
|
|
22
64
|
const generateUserAuditColumnDefs = (opts) => {
|
|
23
|
-
const { created = { dataType: 'number', columnName: 'created_by' }, modified = { dataType: 'number', columnName: 'modified_by' }, } = opts ?? {};
|
|
65
|
+
const { created = { dataType: 'number', columnName: 'created_by', allowAnonymous: true }, modified = { dataType: 'number', columnName: 'modified_by', allowAnonymous: true }, } = opts ?? {};
|
|
24
66
|
return {
|
|
25
|
-
createdBy: buildUserAuditColumn({
|
|
26
|
-
|
|
27
|
-
columnField: 'createdBy',
|
|
28
|
-
}),
|
|
29
|
-
modifiedBy: buildUserAuditColumn({
|
|
30
|
-
columnOpts: modified,
|
|
31
|
-
columnField: 'modifiedBy',
|
|
32
|
-
}),
|
|
67
|
+
createdBy: buildUserAuditColumn({ columnOpts: created, columnField: 'createdBy' }),
|
|
68
|
+
modifiedBy: buildUserAuditColumn({ columnOpts: modified, columnField: 'modifiedBy' }),
|
|
33
69
|
};
|
|
34
70
|
};
|
|
35
71
|
exports.generateUserAuditColumnDefs = generateUserAuditColumnDefs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-audit.enricher.js","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":";;;AAAA,0DAAkD;AAClD,iDAAmG;
|
|
1
|
+
{"version":3,"file":"user-audit.enricher.js","sourceRoot":"","sources":["../../../../src/base/models/enrichers/user-audit.enricher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,77 @@
|
|
|
1
1
|
import { TConstValue } from '@venizia/ignis-helpers';
|
|
2
|
+
/**
|
|
3
|
+
* Default pagination limit for repository queries.
|
|
4
|
+
* Used when no limit is explicitly specified in filter options.
|
|
5
|
+
*/
|
|
2
6
|
export declare const DEFAULT_LIMIT = 10;
|
|
7
|
+
/**
|
|
8
|
+
* Defines the operation scope for repository instances.
|
|
9
|
+
* Controls whether a repository can perform read-only or read-write operations.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Check if a scope is valid
|
|
14
|
+
* RepositoryOperationScopes.isValid('READ_ONLY'); // true
|
|
15
|
+
*
|
|
16
|
+
* // Use in repository configuration
|
|
17
|
+
* const scope = RepositoryOperationScopes.READ_WRITE;
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
3
20
|
export declare class RepositoryOperationScopes {
|
|
21
|
+
/** Repository can only perform read operations (find, count, existsWith). */
|
|
4
22
|
static readonly READ_ONLY = "READ_ONLY";
|
|
23
|
+
/** Repository can only perform write operations (create, update, delete). */
|
|
5
24
|
static readonly WRITE_ONLY = "WRITE_ONLY";
|
|
25
|
+
/** Repository can perform both read and write operations. */
|
|
6
26
|
static readonly READ_WRITE = "READ_WRITE";
|
|
27
|
+
/** Set of all valid operation scopes for validation. */
|
|
7
28
|
static readonly SCHEME_SET: Set<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Validates if a given string is a valid operation scope.
|
|
31
|
+
*
|
|
32
|
+
* @param orgType - The scope string to validate
|
|
33
|
+
* @returns True if the scope is valid, false otherwise
|
|
34
|
+
*/
|
|
8
35
|
static isValid(orgType: string): boolean;
|
|
9
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Type representing valid repository operation scope values.
|
|
39
|
+
* Derived from {@link RepositoryOperationScopes} static properties.
|
|
40
|
+
*/
|
|
10
41
|
export type TRepositoryOperationScope = TConstValue<typeof RepositoryOperationScopes>;
|
|
42
|
+
/**
|
|
43
|
+
* Defines the type of relation between entities in the ORM.
|
|
44
|
+
* Used for configuring entity relationships (one-to-one, one-to-many, many-to-one).
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Define a one-to-many relation
|
|
49
|
+
* const relation: TRelationConfig = {
|
|
50
|
+
* name: 'posts',
|
|
51
|
+
* type: RelationTypes.MANY,
|
|
52
|
+
* schema: PostSchema,
|
|
53
|
+
* metadata: { fields: [Post.schema.authorId], references: [User.schema.id] }
|
|
54
|
+
* };
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
11
57
|
export declare class RelationTypes {
|
|
58
|
+
/** Represents a one-to-one or many-to-one relation. */
|
|
12
59
|
static readonly ONE = "one";
|
|
60
|
+
/** Represents a one-to-many relation. */
|
|
13
61
|
static readonly MANY = "many";
|
|
62
|
+
/** Set of all valid relation types for validation. */
|
|
14
63
|
static readonly SCHEME_SET: Set<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Validates if a given string is a valid relation type.
|
|
66
|
+
*
|
|
67
|
+
* @param orgType - The relation type string to validate
|
|
68
|
+
* @returns True if the relation type is valid, false otherwise
|
|
69
|
+
*/
|
|
15
70
|
static isValid(orgType: string): boolean;
|
|
16
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Type representing valid relation type values.
|
|
74
|
+
* Derived from {@link RelationTypes} static properties.
|
|
75
|
+
*/
|
|
17
76
|
export type TRelationType = TConstValue<typeof RelationTypes>;
|
|
18
77
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,eAAO,MAAM,aAAa,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,qBAAa,yBAAyB;IACpC,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IAExC,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAE1C,6DAA6D;IAC7D,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAE1C,wDAAwD;IACxD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAA+D;IAEzF;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAa;IACxB,uDAAuD;IACvD,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS;IAE5B,yCAAyC;IACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAE9B,sDAAsD;IACtD,MAAM,CAAC,QAAQ,CAAC,UAAU,cAAkC;IAE5D;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGzC;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -1,23 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RelationTypes = exports.RepositoryOperationScopes = exports.DEFAULT_LIMIT = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default pagination limit for repository queries.
|
|
6
|
+
* Used when no limit is explicitly specified in filter options.
|
|
7
|
+
*/
|
|
4
8
|
exports.DEFAULT_LIMIT = 10;
|
|
5
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Defines the operation scope for repository instances.
|
|
11
|
+
* Controls whether a repository can perform read-only or read-write operations.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Check if a scope is valid
|
|
16
|
+
* RepositoryOperationScopes.isValid('READ_ONLY'); // true
|
|
17
|
+
*
|
|
18
|
+
* // Use in repository configuration
|
|
19
|
+
* const scope = RepositoryOperationScopes.READ_WRITE;
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
6
22
|
class RepositoryOperationScopes {
|
|
23
|
+
/** Repository can only perform read operations (find, count, existsWith). */
|
|
7
24
|
static { this.READ_ONLY = 'READ_ONLY'; }
|
|
25
|
+
/** Repository can only perform write operations (create, update, delete). */
|
|
8
26
|
static { this.WRITE_ONLY = 'WRITE_ONLY'; }
|
|
27
|
+
/** Repository can perform both read and write operations. */
|
|
9
28
|
static { this.READ_WRITE = 'READ_WRITE'; }
|
|
29
|
+
/** Set of all valid operation scopes for validation. */
|
|
10
30
|
static { this.SCHEME_SET = new Set([this.READ_ONLY, this.WRITE_ONLY, this.READ_WRITE]); }
|
|
31
|
+
/**
|
|
32
|
+
* Validates if a given string is a valid operation scope.
|
|
33
|
+
*
|
|
34
|
+
* @param orgType - The scope string to validate
|
|
35
|
+
* @returns True if the scope is valid, false otherwise
|
|
36
|
+
*/
|
|
11
37
|
static isValid(orgType) {
|
|
12
38
|
return this.SCHEME_SET.has(orgType);
|
|
13
39
|
}
|
|
14
40
|
}
|
|
15
41
|
exports.RepositoryOperationScopes = RepositoryOperationScopes;
|
|
16
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Defines the type of relation between entities in the ORM.
|
|
44
|
+
* Used for configuring entity relationships (one-to-one, one-to-many, many-to-one).
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* // Define a one-to-many relation
|
|
49
|
+
* const relation: TRelationConfig = {
|
|
50
|
+
* name: 'posts',
|
|
51
|
+
* type: RelationTypes.MANY,
|
|
52
|
+
* schema: PostSchema,
|
|
53
|
+
* metadata: { fields: [Post.schema.authorId], references: [User.schema.id] }
|
|
54
|
+
* };
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
17
57
|
class RelationTypes {
|
|
58
|
+
/** Represents a one-to-one or many-to-one relation. */
|
|
18
59
|
static { this.ONE = 'one'; }
|
|
60
|
+
/** Represents a one-to-many relation. */
|
|
19
61
|
static { this.MANY = 'many'; }
|
|
62
|
+
/** Set of all valid relation types for validation. */
|
|
20
63
|
static { this.SCHEME_SET = new Set([this.ONE, this.MANY]); }
|
|
64
|
+
/**
|
|
65
|
+
* Validates if a given string is a valid relation type.
|
|
66
|
+
*
|
|
67
|
+
* @param orgType - The relation type string to validate
|
|
68
|
+
* @returns True if the relation type is valid, false otherwise
|
|
69
|
+
*/
|
|
21
70
|
static isValid(orgType) {
|
|
22
71
|
return this.SCHEME_SET.has(orgType);
|
|
23
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/base/repositories/common/constants.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACU,QAAA,aAAa,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,MAAa,yBAAyB;IACpC,6EAA6E;aAC7D,cAAS,GAAG,WAAW,CAAC;IAExC,6EAA6E;aAC7D,eAAU,GAAG,YAAY,CAAC;IAE1C,6DAA6D;aAC7C,eAAU,GAAG,YAAY,CAAC;IAE1C,wDAAwD;aACxC,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEzF;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AArBH,8DAsBC;AAQD;;;;;;;;;;;;;;GAcG;AACH,MAAa,aAAa;IACxB,uDAAuD;aACvC,QAAG,GAAG,KAAK,CAAC;IAE5B,yCAAyC;aACzB,SAAI,GAAG,MAAM,CAAC;IAE9B,sDAAsD;aACtC,eAAU,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;;AAlBH,sCAmBC"}
|