@hichchi/nest-crud 0.0.6 → 0.0.8
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/CHANGELOG.md +16 -0
- package/README.md +679 -347
- package/base/base-entity.js +0 -1
- package/base/base-entity.js.map +1 -1
- package/base/base-repository.d.ts +3 -2
- package/base/base-repository.js +19 -8
- package/base/base-repository.js.map +1 -1
- package/base/base-user.entity.d.ts +59 -12
- package/base/base-user.entity.js +73 -15
- package/base/base-user.entity.js.map +1 -1
- package/crud.module.js +3 -3
- package/crud.module.js.map +1 -1
- package/decorators/entity.decorator.js +1 -1
- package/decorators/entity.decorator.js.map +1 -1
- package/decorators/page.decorator.d.ts +50 -2
- package/decorators/page.decorator.js +15 -3
- package/decorators/page.decorator.js.map +1 -1
- package/interfaces/crud-options.interfaces.d.ts +11 -3
- package/package.json +4 -4
- package/readme-top.md +5 -1
- package/responses/crud.error.responses.d.ts +22 -0
- package/responses/crud.error.responses.js +28 -0
- package/responses/crud.error.responses.js.map +1 -1
- package/services/crud.service.d.ts +61 -51
- package/services/crud.service.js +49 -41
- package/services/crud.service.js.map +1 -1
- package/types/find-conditions.type.d.ts +1 -1
package/base/base-entity.js
CHANGED
package/base/base-entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/base/base-entity.ts"],"names":[],"mappings":";;;;AAAA,qCAA6G;AAG7G,sCAAmD;AAEnD;;;;;;;;;;;;GAYG;AACU,QAAA,2BAA2B,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAa,UAAU;IACnB;;;;;OAKG;IAEH,EAAE,CAAW;IAEb;;;;;OAKG;IAEH,SAAS,CAAO;IAEhB;;;;;OAKG;IAEH,SAAS,CAAO;IAEhB;;;;;OAKG;IAEH,SAAS,CAAc;IAEvB;;;;;OAKG;IAEH,WAAW,CAAkB;IAE7B;;;;;OAKG;IAGH,SAAS,CAAkB;IAE3B;;;;;OAKG;IAEH,WAAW,CAAkB;IAE7B;;;;;OAKG;IAGH,SAAS,CAAkB;IAE3B;;;;;OAKG;IAEH,WAAW,CAAkB;IAE7B;;;;;OAKG;IAGH,SAAS,CAAkB;IAE3B;;;;;;;;;OASG;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QACnE,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACO,cAAc,CAAE,IAAc;QACpC,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,
|
|
1
|
+
{"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/base/base-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -358,7 +358,7 @@ export declare class BaseRepository<Entity extends Model | ModelExtension> exten
|
|
|
358
358
|
* @see {@link EntityDeepPartial} TypeORM's type for partial entity updates
|
|
359
359
|
* @see {@link UpdateResult} TypeORM's result type for update operations
|
|
360
360
|
*/
|
|
361
|
-
updateOne(where: QueryDeepPartial<Entity
|
|
361
|
+
updateOne(where: QueryDeepPartial<Entity> | QueryDeepPartial<Entity>[], partialEntity: EntityDeepPartial<Entity>): Promise<UpdateResult>;
|
|
362
362
|
/**
|
|
363
363
|
* Update multiple entities matching the specified criteria
|
|
364
364
|
*
|
|
@@ -731,7 +731,7 @@ export declare class BaseRepository<Entity extends Model | ModelExtension> exten
|
|
|
731
731
|
*
|
|
732
732
|
* Key features:
|
|
733
733
|
* - Handles nested objects recursively
|
|
734
|
-
* - Applies operators to values (like ILike, Not,
|
|
734
|
+
* - Applies operators to values (like ILike, Not, IsNull)
|
|
735
735
|
* - Supports string templating with the wrap parameter
|
|
736
736
|
* - Preserves existing conditions when merging
|
|
737
737
|
* - Maintains type safety throughout the transformation
|
|
@@ -751,6 +751,7 @@ export declare class BaseRepository<Entity extends Model | ModelExtension> exten
|
|
|
751
751
|
* @see {@link toFindOptionsWhere} Utility function for type-safe where condition conversion
|
|
752
752
|
* @see {@link ILike} Example of an operator that can be applied
|
|
753
753
|
* @see {@link Not} Example of an operator that can be applied
|
|
754
|
+
* @see {@link IsNull} Example of an operator that can be applied
|
|
754
755
|
*/
|
|
755
756
|
mapAndWhere<T = Entity>(where: FindOptionsWhere<T>, and: QueryDeepPartial<T>, operator?: <V>(value: V | FindOperator<V>) => FindOperator<V>, wrap?: `${string}{}${string}`): FindOptionsWhere<T>;
|
|
756
757
|
}
|
package/base/base-repository.js
CHANGED
|
@@ -358,12 +358,16 @@ class BaseRepository extends typeorm_1.Repository {
|
|
|
358
358
|
* @see {@link UpdateResult} TypeORM's result type for update operations
|
|
359
359
|
*/
|
|
360
360
|
updateMany(where, partialEntity) {
|
|
361
|
-
return this.entityRepository.update(
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
361
|
+
return this.entityRepository.update(where instanceof typeorm_1.ObjectId || where instanceof Date || typeof where === "string" || typeof where === "number"
|
|
362
|
+
? where
|
|
363
|
+
: Array.isArray(where)
|
|
364
|
+
? where.every(w => w instanceof typeorm_1.ObjectId ||
|
|
365
|
+
w instanceof Date ||
|
|
366
|
+
typeof w === "string" ||
|
|
367
|
+
typeof w === "number")
|
|
368
|
+
? where
|
|
369
|
+
: (0, repository_utils_1.toFindOptionsWhere)(where)
|
|
370
|
+
: (0, repository_utils_1.toFindOptionsWhere)(where), partialEntity);
|
|
367
371
|
}
|
|
368
372
|
/**
|
|
369
373
|
* Update multiple entities by their IDs
|
|
@@ -389,7 +393,7 @@ class BaseRepository extends typeorm_1.Repository {
|
|
|
389
393
|
* @see {@link UpdateResult} TypeORM's result type for update operations
|
|
390
394
|
*/
|
|
391
395
|
updateByIds(ids, partialEntity) {
|
|
392
|
-
return this.updateMany(
|
|
396
|
+
return this.updateMany(ids, partialEntity);
|
|
393
397
|
}
|
|
394
398
|
/**
|
|
395
399
|
* Get an entity by ID
|
|
@@ -792,7 +796,7 @@ class BaseRepository extends typeorm_1.Repository {
|
|
|
792
796
|
*
|
|
793
797
|
* Key features:
|
|
794
798
|
* - Handles nested objects recursively
|
|
795
|
-
* - Applies operators to values (like ILike, Not,
|
|
799
|
+
* - Applies operators to values (like ILike, Not, IsNull)
|
|
796
800
|
* - Supports string templating with the wrap parameter
|
|
797
801
|
* - Preserves existing conditions when merging
|
|
798
802
|
* - Maintains type safety throughout the transformation
|
|
@@ -812,6 +816,7 @@ class BaseRepository extends typeorm_1.Repository {
|
|
|
812
816
|
* @see {@link toFindOptionsWhere} Utility function for type-safe where condition conversion
|
|
813
817
|
* @see {@link ILike} Example of an operator that can be applied
|
|
814
818
|
* @see {@link Not} Example of an operator that can be applied
|
|
819
|
+
* @see {@link IsNull} Example of an operator that can be applied
|
|
815
820
|
*/
|
|
816
821
|
mapAndWhere(where, and, operator, wrap) {
|
|
817
822
|
// Start with a copy of the base where conditions
|
|
@@ -833,6 +838,12 @@ class BaseRepository extends typeorm_1.Repository {
|
|
|
833
838
|
whr[key] = nestedResult;
|
|
834
839
|
}
|
|
835
840
|
else {
|
|
841
|
+
// Convert explicit null leaf values to SQL IS NULL semantics
|
|
842
|
+
if (value === null) {
|
|
843
|
+
const nullCondition = (0, typeorm_1.IsNull)();
|
|
844
|
+
whr[key] = (operator ? operator(nullCondition) : nullCondition);
|
|
845
|
+
continue;
|
|
846
|
+
}
|
|
836
847
|
// Handle primitive values and FindOperators
|
|
837
848
|
let processedValue = value;
|
|
838
849
|
// Apply string wrapping if specified
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-repository.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/base/base-repository.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAWrC,
|
|
1
|
+
{"version":3,"file":"base-repository.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/base/base-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UserInfo } from "@hichchi/nest-connector";
|
|
2
2
|
import { EntityId, Model } from "@hichchi/nest-connector/crud";
|
|
3
|
-
import { AuthProvider, GoogleProfile, TenantSlug } from "@hichchi/nest-connector/auth";
|
|
3
|
+
import { AuthProvider, GoogleProfile, Role, Tenant, TenantSlug, User } from "@hichchi/nest-connector/auth";
|
|
4
4
|
/**
|
|
5
5
|
* Base user entity class that provides common user fields and functionality
|
|
6
6
|
*
|
|
@@ -35,7 +35,7 @@ import { AuthProvider, GoogleProfile, TenantSlug } from "@hichchi/nest-connector
|
|
|
35
35
|
* @implements {UserInfo} Provides the core user identification properties
|
|
36
36
|
* @see {@link UserInfo} The interface that defines the required user properties
|
|
37
37
|
*/
|
|
38
|
-
export declare class HichchiUserEntity implements
|
|
38
|
+
export declare class HichchiUserEntity implements User, Model {
|
|
39
39
|
/**
|
|
40
40
|
* Unique identifier for the entity
|
|
41
41
|
*
|
|
@@ -43,16 +43,6 @@ export declare class HichchiUserEntity implements UserInfo, Model {
|
|
|
43
43
|
* It serves as the primary key for the entity in the database.
|
|
44
44
|
*/
|
|
45
45
|
id: EntityId;
|
|
46
|
-
/**
|
|
47
|
-
* Represents the tenant associated with the current context.
|
|
48
|
-
* The value can either be a tenant-specific identifier (TenantSlug) or null if no tenant is assigned.
|
|
49
|
-
*
|
|
50
|
-
* A TenantSlug is typically a unique string or slug representing a tenant in multi-tenant applications.
|
|
51
|
-
* Null indicates the absence of a tenant in the current context.
|
|
52
|
-
*
|
|
53
|
-
* This variable is often used to scope application logic and data to a specific tenant.
|
|
54
|
-
*/
|
|
55
|
-
tenant: TenantSlug | null;
|
|
56
46
|
/**
|
|
57
47
|
* Timestamp when the entity was created
|
|
58
48
|
*
|
|
@@ -155,11 +145,68 @@ export declare class HichchiUserEntity implements UserInfo, Model {
|
|
|
155
145
|
* alternative authentication methods like email-only authentication.
|
|
156
146
|
*/
|
|
157
147
|
username: string | null;
|
|
148
|
+
/**
|
|
149
|
+
* The user's password (stored in hashed form).
|
|
150
|
+
*
|
|
151
|
+
* This value is excluded from serialized responses and should never contain
|
|
152
|
+
* plaintext credentials. It may be null for users authenticated via external providers.
|
|
153
|
+
*/
|
|
158
154
|
password: string | null;
|
|
155
|
+
/**
|
|
156
|
+
* Indicates whether the user's email address has been verified.
|
|
157
|
+
*
|
|
158
|
+
* Used to enforce verification-dependent flows and prevent unverified
|
|
159
|
+
* accounts from accessing restricted features.
|
|
160
|
+
*/
|
|
159
161
|
emailVerified: boolean;
|
|
162
|
+
/**
|
|
163
|
+
* URL or path to the user's profile avatar image.
|
|
164
|
+
*
|
|
165
|
+
* This field is optional and may be populated from uploaded images or
|
|
166
|
+
* third-party identity providers.
|
|
167
|
+
*/
|
|
160
168
|
avatar: string | null;
|
|
169
|
+
/**
|
|
170
|
+
* Additional profile information associated with the user.
|
|
171
|
+
*
|
|
172
|
+
* Stores provider-specific or extended profile attributes in JSON format.
|
|
173
|
+
*/
|
|
161
174
|
profileData: GoogleProfile | null;
|
|
175
|
+
/**
|
|
176
|
+
* Authentication provider used when the account was created.
|
|
177
|
+
*
|
|
178
|
+
* Determines which sign-in flow and credential requirements apply to the user.
|
|
179
|
+
*/
|
|
162
180
|
signUpType: AuthProvider;
|
|
181
|
+
/**
|
|
182
|
+
* The authorization role assigned to the user.
|
|
183
|
+
*
|
|
184
|
+
* Stores either a role identifier string or a populated role object,
|
|
185
|
+
* depending on how the entity is loaded and mapped.
|
|
186
|
+
*/
|
|
187
|
+
role: string | Role | null;
|
|
188
|
+
/**
|
|
189
|
+
* The unique identifier of the user's role.
|
|
190
|
+
*
|
|
191
|
+
* Optional foreign key reference to the role entity for direct relational access.
|
|
192
|
+
*/
|
|
193
|
+
roleId?: EntityId | null | undefined;
|
|
194
|
+
/**
|
|
195
|
+
* Represents the tenant associated with the current context.
|
|
196
|
+
* The value can either be a tenant-specific identifier (TenantSlug) or null if no tenant is assigned.
|
|
197
|
+
*
|
|
198
|
+
* A TenantSlug is typically a unique string or slug representing a tenant in multi-tenant applications.
|
|
199
|
+
* Null indicates the absence of a tenant in the current context.
|
|
200
|
+
*
|
|
201
|
+
* This variable is often used to scope application logic and data to a specific tenant.
|
|
202
|
+
*/
|
|
203
|
+
tenant: TenantSlug | Tenant | null;
|
|
204
|
+
/**
|
|
205
|
+
* The unique identifier of the user's tenant.
|
|
206
|
+
*
|
|
207
|
+
* Optional foreign key reference used to scope data to a tenant context.
|
|
208
|
+
*/
|
|
209
|
+
tenantId?: EntityId | null | undefined;
|
|
163
210
|
/**
|
|
164
211
|
* Lifecycle hooks that run before an entity is inserted or updated
|
|
165
212
|
*
|
package/base/base-user.entity.js
CHANGED
|
@@ -48,16 +48,6 @@ class HichchiUserEntity {
|
|
|
48
48
|
* It serves as the primary key for the entity in the database.
|
|
49
49
|
*/
|
|
50
50
|
id;
|
|
51
|
-
/**
|
|
52
|
-
* Represents the tenant associated with the current context.
|
|
53
|
-
* The value can either be a tenant-specific identifier (TenantSlug) or null if no tenant is assigned.
|
|
54
|
-
*
|
|
55
|
-
* A TenantSlug is typically a unique string or slug representing a tenant in multi-tenant applications.
|
|
56
|
-
* Null indicates the absence of a tenant in the current context.
|
|
57
|
-
*
|
|
58
|
-
* This variable is often used to scope application logic and data to a specific tenant.
|
|
59
|
-
*/
|
|
60
|
-
tenant;
|
|
61
51
|
/**
|
|
62
52
|
* Timestamp when the entity was created
|
|
63
53
|
*
|
|
@@ -160,11 +150,68 @@ class HichchiUserEntity {
|
|
|
160
150
|
* alternative authentication methods like email-only authentication.
|
|
161
151
|
*/
|
|
162
152
|
username;
|
|
153
|
+
/**
|
|
154
|
+
* The user's password (stored in hashed form).
|
|
155
|
+
*
|
|
156
|
+
* This value is excluded from serialized responses and should never contain
|
|
157
|
+
* plaintext credentials. It may be null for users authenticated via external providers.
|
|
158
|
+
*/
|
|
163
159
|
password;
|
|
160
|
+
/**
|
|
161
|
+
* Indicates whether the user's email address has been verified.
|
|
162
|
+
*
|
|
163
|
+
* Used to enforce verification-dependent flows and prevent unverified
|
|
164
|
+
* accounts from accessing restricted features.
|
|
165
|
+
*/
|
|
164
166
|
emailVerified;
|
|
167
|
+
/**
|
|
168
|
+
* URL or path to the user's profile avatar image.
|
|
169
|
+
*
|
|
170
|
+
* This field is optional and may be populated from uploaded images or
|
|
171
|
+
* third-party identity providers.
|
|
172
|
+
*/
|
|
165
173
|
avatar;
|
|
174
|
+
/**
|
|
175
|
+
* Additional profile information associated with the user.
|
|
176
|
+
*
|
|
177
|
+
* Stores provider-specific or extended profile attributes in JSON format.
|
|
178
|
+
*/
|
|
166
179
|
profileData;
|
|
180
|
+
/**
|
|
181
|
+
* Authentication provider used when the account was created.
|
|
182
|
+
*
|
|
183
|
+
* Determines which sign-in flow and credential requirements apply to the user.
|
|
184
|
+
*/
|
|
167
185
|
signUpType;
|
|
186
|
+
/**
|
|
187
|
+
* The authorization role assigned to the user.
|
|
188
|
+
*
|
|
189
|
+
* Stores either a role identifier string or a populated role object,
|
|
190
|
+
* depending on how the entity is loaded and mapped.
|
|
191
|
+
*/
|
|
192
|
+
role;
|
|
193
|
+
/**
|
|
194
|
+
* The unique identifier of the user's role.
|
|
195
|
+
*
|
|
196
|
+
* Optional foreign key reference to the role entity for direct relational access.
|
|
197
|
+
*/
|
|
198
|
+
roleId;
|
|
199
|
+
/**
|
|
200
|
+
* Represents the tenant associated with the current context.
|
|
201
|
+
* The value can either be a tenant-specific identifier (TenantSlug) or null if no tenant is assigned.
|
|
202
|
+
*
|
|
203
|
+
* A TenantSlug is typically a unique string or slug representing a tenant in multi-tenant applications.
|
|
204
|
+
* Null indicates the absence of a tenant in the current context.
|
|
205
|
+
*
|
|
206
|
+
* This variable is often used to scope application logic and data to a specific tenant.
|
|
207
|
+
*/
|
|
208
|
+
tenant;
|
|
209
|
+
/**
|
|
210
|
+
* The unique identifier of the user's tenant.
|
|
211
|
+
*
|
|
212
|
+
* Optional foreign key reference used to scope data to a tenant context.
|
|
213
|
+
*/
|
|
214
|
+
tenantId;
|
|
168
215
|
/**
|
|
169
216
|
* Lifecycle hooks that run before an entity is inserted or updated
|
|
170
217
|
*
|
|
@@ -210,7 +257,6 @@ class HichchiUserEntity {
|
|
|
210
257
|
_mapUserEntity(user) {
|
|
211
258
|
return {
|
|
212
259
|
id: user.id,
|
|
213
|
-
tenant: user.tenant,
|
|
214
260
|
firstName: user.firstName,
|
|
215
261
|
lastName: user.lastName,
|
|
216
262
|
fullName: user.fullName,
|
|
@@ -222,10 +268,6 @@ tslib_1.__decorate([
|
|
|
222
268
|
(0, typeorm_1.PrimaryGeneratedColumn)("uuid"),
|
|
223
269
|
tslib_1.__metadata("design:type", String)
|
|
224
270
|
], HichchiUserEntity.prototype, "id", void 0);
|
|
225
|
-
tslib_1.__decorate([
|
|
226
|
-
(0, typeorm_1.Column)("varchar", { nullable: true }),
|
|
227
|
-
tslib_1.__metadata("design:type", Object)
|
|
228
|
-
], HichchiUserEntity.prototype, "tenant", void 0);
|
|
229
271
|
tslib_1.__decorate([
|
|
230
272
|
(0, typeorm_1.Column)("timestamp", { nullable: false, default: () => "CURRENT_TIMESTAMP" }),
|
|
231
273
|
tslib_1.__metadata("design:type", Date)
|
|
@@ -306,6 +348,22 @@ tslib_1.__decorate([
|
|
|
306
348
|
(0, typeorm_1.Column)("enum", { enum: auth_1.AuthProvider, nullable: false }),
|
|
307
349
|
tslib_1.__metadata("design:type", String)
|
|
308
350
|
], HichchiUserEntity.prototype, "signUpType", void 0);
|
|
351
|
+
tslib_1.__decorate([
|
|
352
|
+
(0, typeorm_1.Column)("varchar", { nullable: true }),
|
|
353
|
+
tslib_1.__metadata("design:type", Object)
|
|
354
|
+
], HichchiUserEntity.prototype, "role", void 0);
|
|
355
|
+
tslib_1.__decorate([
|
|
356
|
+
(0, typeorm_1.Column)("uuid", { nullable: true }),
|
|
357
|
+
tslib_1.__metadata("design:type", Object)
|
|
358
|
+
], HichchiUserEntity.prototype, "roleId", void 0);
|
|
359
|
+
tslib_1.__decorate([
|
|
360
|
+
(0, typeorm_1.Column)("varchar", { nullable: true }),
|
|
361
|
+
tslib_1.__metadata("design:type", Object)
|
|
362
|
+
], HichchiUserEntity.prototype, "tenant", void 0);
|
|
363
|
+
tslib_1.__decorate([
|
|
364
|
+
(0, typeorm_1.Column)("uuid", { nullable: true }),
|
|
365
|
+
tslib_1.__metadata("design:type", Object)
|
|
366
|
+
], HichchiUserEntity.prototype, "tenantId", void 0);
|
|
309
367
|
tslib_1.__decorate([
|
|
310
368
|
(0, typeorm_1.BeforeInsert)(),
|
|
311
369
|
(0, typeorm_1.BeforeUpdate)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-user.entity.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/base/base-user.entity.ts"],"names":[],"mappings":";;;;AAAA,qCASiB;AAGjB,sCAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"base-user.entity.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/base/base-user.entity.ts"],"names":[],"mappings":"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"}
|
package/crud.module.js
CHANGED
|
@@ -195,9 +195,9 @@ let HichchiCrudModule = HichchiCrudModule_1 = class HichchiCrudModule {
|
|
|
195
195
|
if (!(0, nest_core_1.hichchiMetadata)().isHichchiEntity(entity)) {
|
|
196
196
|
throw new nest_core_1.ImplementationException("Invalid entity", `'${entity.name}' must be decorated with '@HichchiEntity()'.`);
|
|
197
197
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
198
|
+
const validBaseClasses = [base_1.BaseEntity, base_1.BaseEntityExtension, base_1.HichchiUserEntity];
|
|
199
|
+
const isValidEntityBase = validBaseClasses.some(base => entity === base || Object.prototype.isPrototypeOf.call(base, entity));
|
|
200
|
+
if (!isValidEntityBase) {
|
|
201
201
|
throw new nest_core_1.ImplementationException("Invalid entity", `'${entity.name}' must extend 'BaseEntity' or 'BaseEntityExtension' or 'HichchiUserEntity'.`);
|
|
202
202
|
}
|
|
203
203
|
}
|
package/crud.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.module.js","sourceRoot":"","sources":["../../../libs/nest-crud/src/crud.module.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"crud.module.js","sourceRoot":"","sources":["../../../libs/nest-crud/src/crud.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,7 +146,7 @@ function HichchiEntity(tableName, unique, skipFkValidation) {
|
|
|
146
146
|
const columns = uniques.columns();
|
|
147
147
|
tableUnique.push(...(typeof columns === "object" ? Object.keys(columns) : []));
|
|
148
148
|
}
|
|
149
|
-
(0, nest_core_1.hichchiMetadata)().addEntity(target, tableName, tableUnique);
|
|
149
|
+
(0, nest_core_1.hichchiMetadata)().addEntity(target, tableName, Array.from(new Set(tableUnique)));
|
|
150
150
|
}
|
|
151
151
|
if (!skipFkValidation) {
|
|
152
152
|
entityRelations.forEach(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.decorator.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/decorators/entity.decorator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"entity.decorator.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/decorators/entity.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,58 @@
|
|
|
1
1
|
import { PaginationOptions } from "@hichchi/nest-connector/crud";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Pagination parameter decorator overload for query-driven pagination.
|
|
4
|
+
*
|
|
5
|
+
* This overload reads `page` and `limit` directly from `req.query` and returns
|
|
6
|
+
* a normalized {@link Pagination} object with `page`, `limit`, `take`, and `skip`.
|
|
7
|
+
*
|
|
8
|
+
* Behavior:
|
|
9
|
+
* 1. Uses request query values only
|
|
10
|
+
* 2. Parses both values as numbers
|
|
11
|
+
* 3. Falls back to `1` for invalid page and {@link DEFAULT_ITEMS_PER_PAGE} for invalid limit
|
|
12
|
+
* 4. Removes `page` and `limit` from `req.query` after extraction
|
|
13
|
+
* 5. Returns `undefined` when either query key is missing
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* @Get()
|
|
18
|
+
* list(@Pager() pagination?: Pagination) {
|
|
19
|
+
* return pagination ? this.service.findPaginated(pagination) : this.service.findAll();
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @returns {ParameterDecorator} A decorator that injects pagination from query params
|
|
24
|
+
*
|
|
25
|
+
* @see {@link Pagination} Pagination structure returned by this overload
|
|
26
|
+
* @see {@link DEFAULT_ITEMS_PER_PAGE} Default page size used for invalid limits
|
|
4
27
|
*/
|
|
5
28
|
export declare function Pager(): ParameterDecorator;
|
|
6
29
|
/**
|
|
7
|
-
*
|
|
30
|
+
* Pagination parameter decorator overload with numeric fallback defaults.
|
|
31
|
+
*
|
|
32
|
+
* This overload reads `page` and `limit` from `req.query`, and when those values
|
|
33
|
+
* are present but invalid, applies the provided numeric defaults.
|
|
34
|
+
*
|
|
35
|
+
* Behavior:
|
|
36
|
+
* 1. Parses request query values for `page` and `limit`
|
|
37
|
+
* 2. Uses supplied defaults for invalid numeric values
|
|
38
|
+
* 3. Computes `skip` using `(page - 1) * take`
|
|
39
|
+
* 4. Removes `page` and `limit` from `req.query` after extraction
|
|
40
|
+
* 5. Returns `undefined` when either query key is missing
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* @Get()
|
|
45
|
+
* list(@Pager(1, 25) pagination?: Pagination) {
|
|
46
|
+
* return pagination ? this.service.findPaginated(pagination) : this.service.findAll();
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @param {number} page - Default page number when query `page` is invalid
|
|
51
|
+
* @param {number} limit - Default page size when query `limit` is invalid
|
|
52
|
+
* @returns {ParameterDecorator} A decorator that injects pagination with numeric defaults
|
|
53
|
+
*
|
|
54
|
+
* @see {@link Pagination} Pagination structure returned by this overload
|
|
55
|
+
* @see {@link DEFAULT_ITEMS_PER_PAGE} Built-in fallback page size
|
|
8
56
|
*/
|
|
9
57
|
export declare function Pager(page: number, limit: number): ParameterDecorator;
|
|
10
58
|
/**
|
|
@@ -5,14 +5,26 @@ exports.Pager = Pager;
|
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const nest_connector_1 = require("@hichchi/nest-connector");
|
|
7
7
|
/**
|
|
8
|
-
* Implementation
|
|
8
|
+
* Implementation signature for all `Pager` overload variants.
|
|
9
|
+
*
|
|
10
|
+
* Accepts either:
|
|
11
|
+
* - a `PaginationOptions` object, or
|
|
12
|
+
* - numeric `page` and `limit` defaults.
|
|
13
|
+
*
|
|
14
|
+
* It extracts pagination from the current HTTP request query and returns
|
|
15
|
+
* a normalized {@link Pagination} object when both `page` and `limit`
|
|
16
|
+
* query parameters are present.
|
|
17
|
+
*
|
|
18
|
+
* @param {PaginationOptions | number} [input] - Object defaults or numeric page fallback
|
|
19
|
+
* @param {number} [limit] - Numeric limit fallback when `input` is numeric
|
|
20
|
+
* @returns {ParameterDecorator} A NestJS parameter decorator for pagination extraction
|
|
9
21
|
*/
|
|
10
22
|
function Pager(input, limit) {
|
|
11
23
|
return (0, common_1.createParamDecorator)((_data, ctx) => {
|
|
12
24
|
const req = ctx.switchToHttp().getRequest();
|
|
13
|
-
if (req.query?.page
|
|
25
|
+
if (req.query?.page || req.query?.limit || typeof input === "number" || input?.page || input?.limit || limit) {
|
|
14
26
|
const p = Number(req.query.page || (typeof input === "number" ? input : input?.page));
|
|
15
|
-
const l = Number(req.query.limit || (typeof input === "number" ?
|
|
27
|
+
const l = Number(req.query.limit || (typeof input === "number" ? limit : input?.limit));
|
|
16
28
|
const page = p ? p : 1;
|
|
17
29
|
const take = l ? l : nest_connector_1.DEFAULT_ITEMS_PER_PAGE;
|
|
18
30
|
delete req.query.page;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.decorator.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/decorators/page.decorator.ts"],"names":[],"mappings":";AAAA,qCAAqC;;
|
|
1
|
+
{"version":3,"file":"page.decorator.js","sourceRoot":"","sources":["../../../../libs/nest-crud/src/decorators/page.decorator.ts"],"names":[],"mappings":";AAAA,qCAAqC;;AAuLrC,sBAgBC;AArMD,2CAAwE;AAExE,4DAAiE;AAoKjE;;;;;;;;;;;;;;GAcG;AACH,SAAgB,KAAK,CAAC,KAAkC,EAAE,KAAc;IACpE,OAAO,IAAA,6BAAoB,EAAC,CAAC,KAAc,EAAE,GAAqB,EAA0B,EAAE;QAC1F,MAAM,GAAG,GAA0C,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAEnF,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;YAC3G,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACtF,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACxF,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAsB,CAAC;YACpD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACtB,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;QAChE,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityManager, FindOneOptions, SaveOptions } from "typeorm";
|
|
1
|
+
import { EntityManager, FindOneOptions, FindOptionsRelations, SaveOptions } from "typeorm";
|
|
2
2
|
import { SortOptions } from "../types";
|
|
3
3
|
import { EntityId, Pagination, QueryDeepPartial } from "@hichchi/nest-connector/crud";
|
|
4
4
|
/**
|
|
@@ -41,10 +41,18 @@ export interface QueryOptions<Entity> {
|
|
|
41
41
|
* This is transformed into TypeORM's relations option internally.
|
|
42
42
|
*
|
|
43
43
|
* @example
|
|
44
|
-
* //
|
|
44
|
+
* // Array-style relations
|
|
45
45
|
* relations: ['profile', 'posts']
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* // FindOptionsRelations<Entity> object-style relations
|
|
49
|
+
* relations: { profile: true, posts: true }
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* // Nested FindOptionsRelations<Entity> object-style relations
|
|
53
|
+
* relations: { profile: true, posts: { author: true, comments: true } }
|
|
46
54
|
*/
|
|
47
|
-
relations?: (keyof Entity | `${keyof Entity}.${string}`)[];
|
|
55
|
+
relations?: FindOptionsRelations<Entity> | (keyof Entity | `${keyof Entity}.${string}`)[];
|
|
48
56
|
/**
|
|
49
57
|
* Additional TypeORM find options excluding 'where' and 'relations'.
|
|
50
58
|
*
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hichchi/nest-crud",
|
|
3
3
|
"description": "NestJS CRUD extension library that extends @hichchi/nest-core functionality with comprehensive TypeORM-based CRUD operations, BaseEntity classes, advanced repositories, query builders, audit trails, soft delete, and enterprise-grade features - cannot be used independently, requires nest-core as foundation",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.8",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"winston-transport": "4.9.0"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@hichchi/nest-connector": "0.0.
|
|
39
|
-
"@hichchi/nest-core": "0.0.
|
|
40
|
-
"@hichchi/utils": "0.0.
|
|
38
|
+
"@hichchi/nest-connector": "0.0.8",
|
|
39
|
+
"@hichchi/nest-core": "0.0.8",
|
|
40
|
+
"@hichchi/utils": "0.0.8",
|
|
41
41
|
"@nestjs/common": "^11.1.13",
|
|
42
42
|
"@nestjs/core": "^11.1.13",
|
|
43
43
|
"@nestjs/typeorm": "^11.0.0",
|
package/readme-top.md
CHANGED
|
@@ -300,7 +300,7 @@ npm install mongodb
|
|
|
300
300
|
|
|
301
301
|
### 🏗️ Ready-to-Use Base Classes
|
|
302
302
|
- 🗂️ **BaseEntity** - Pre-configured entity with common fields (id, createdAt, updatedAt, etc.)
|
|
303
|
-
- 👤 **BaseUserEntity** - Extended entity with user-specific fields and relationships
|
|
303
|
+
- 👤 **BaseUserEntity** - Extended entity with user-specific fields, role/tenant references, and relationships
|
|
304
304
|
- 🔧 **BaseEntityExtension** - Flexible entity extension for custom requirements
|
|
305
305
|
- 📦 **BaseRepository** - Comprehensive repository with advanced CRUD operations
|
|
306
306
|
|
|
@@ -380,6 +380,10 @@ export class UserEntity extends HichchiUserEntity {
|
|
|
380
380
|
// - fullName: string (automatically generated)
|
|
381
381
|
// - email: string | null
|
|
382
382
|
// - username: string | null
|
|
383
|
+
// - role: string | Role | null
|
|
384
|
+
// - roleId: EntityId | null
|
|
385
|
+
// - tenant: TenantSlug | Tenant | null
|
|
386
|
+
// - tenantId: EntityId | null
|
|
383
387
|
// Plus all BaseEntity fields
|
|
384
388
|
|
|
385
389
|
// Overriding email as only string if
|