@merkaly/api 0.4.6 → 0.4.7

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.
@@ -3,8 +3,7 @@ import { MongoService } from './mongo.service.js';
3
3
  import { AbstractEntity } from './abstract.entity.js';
4
4
  import { AbstractSchema } from './abstract.schema.js';
5
5
  import { AbstractValidator, ReadValidator, SearchValidator } from './abstract.validator.js';
6
- import type { Request } from 'express';
7
- import type { Document, HydratedDocument, Model, RootFilterQuery, UpdateQuery } from 'mongoose';
6
+ import type { Document, FilterQuery, HydratedDocument, Model, RootFilterQuery, UpdateQuery } from 'mongoose';
8
7
  type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
9
8
  type SystemKeys = '_id' | 'createdAt' | 'updatedAt' | 'deletedAt' | keyof Document;
10
9
  export type CreateEntityArgs<T> = {
@@ -22,17 +21,15 @@ export interface SaveOptions<E extends AbstractEntity> {
22
21
  export declare abstract class AbstractRepository<E extends AbstractEntity = AbstractEntity> {
23
22
  protected abstract readonly $schema: AbstractSchema<E>;
24
23
  protected readonly $logger: LoggerService;
25
- protected readonly $request: Request;
26
24
  protected readonly $mongo: MongoService<E>;
27
25
  protected readonly $joins: Record<string, AbstractSchema<any> | null>;
28
- constructor($request: Request, $mongo: MongoService<E>, $logger: LoggerService);
29
26
  get $builder(): Model<E>;
30
- get $user(): import("../../app.types").AppAuthUser;
31
- set $identity(value: string);
27
+ get $user(): any;
32
28
  get $identity(): string;
33
29
  private sanitizePaths;
34
30
  private removeNonDeclaredSchemas;
35
31
  private applyPopulate;
32
+ count(filters?: FilterQuery<E>): Promise<number>;
36
33
  search(validator?: SearchValidator<E>): Promise<{
37
34
  data: import("mongoose").IfAny<E, any, Document<unknown, {}, E, {}, {}> & (import("mongoose").Require_id<E> extends infer T ? T extends import("mongoose").Require_id<E> ? T extends {
38
35
  __v?: infer U;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './abstract.entity';
2
2
  export * from './abstract.validator';
3
3
  export * from './abstract.repository';
4
+ export * from './not-equal-to.decorator';
4
5
  export * from './address.entity';
5
6
  export * from './address.validator';
6
7
  export type { CreateEntityArgs } from './repository.types';
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './abstract.validator.js';
2
+ export * from './not-equal-to.decorator.js';
2
3
  export * from './address.validator.js';
@@ -0,0 +1,2 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare function IsNotEqualTo<T = any>(fn: (it: T) => any, validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
@@ -0,0 +1,22 @@
1
+ import * as class_validator_1 from "class-validator";
2
+ export function IsNotEqualTo(fn, validationOptions) {
3
+ return function (object, propertyName) {
4
+ (0, class_validator_1.registerDecorator)({
5
+ name: 'isNotEqualTo',
6
+ target: object.constructor,
7
+ propertyName,
8
+ constraints: [fn],
9
+ options: validationOptions,
10
+ validator: {
11
+ validate(value, args) {
12
+ const [resolver] = args.constraints;
13
+ const relatedValue = resolver(args.object);
14
+ return !value || !relatedValue || value !== relatedValue;
15
+ },
16
+ defaultMessage(args) {
17
+ return `${args.property} must be different`;
18
+ },
19
+ },
20
+ });
21
+ };
22
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@merkaly/api",
3
- "version": "0.4.6",
3
+ "version": "0.4.7",
4
4
  "type": "module",
5
5
  "description": "Shared TypeScript interfaces and enums for Merkaly API",
6
6
  "exports": {