@ooneex/typeorm 0.0.1

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.
Files changed (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/ooneex-typeorm-0.0.1.tgz +0 -0
  4. package/dist/shared/chunk-2e7zbxcq.js +5 -0
  5. package/dist/shared/chunk-2e7zbxcq.js.map +10 -0
  6. package/dist/shared/chunk-764bzjhz.js +5 -0
  7. package/dist/shared/chunk-764bzjhz.js.map +12 -0
  8. package/dist/shared/chunk-eh420jqn.js +5 -0
  9. package/dist/shared/chunk-eh420jqn.js.map +15 -0
  10. package/dist/shared/chunk-gjsgnzaq.js +5 -0
  11. package/dist/shared/chunk-gjsgnzaq.js.map +10 -0
  12. package/dist/shared/chunk-hw4vdg6q.js +5 -0
  13. package/dist/shared/chunk-hw4vdg6q.js.map +10 -0
  14. package/dist/shared/chunk-j7nprmyh.js +5 -0
  15. package/dist/shared/chunk-j7nprmyh.js.map +10 -0
  16. package/dist/shared/chunk-kgxsdeye.js +5 -0
  17. package/dist/shared/chunk-kgxsdeye.js.map +13 -0
  18. package/dist/shared/chunk-ntrrrvwt.js +5 -0
  19. package/dist/shared/chunk-ntrrrvwt.js.map +12 -0
  20. package/dist/shared/chunk-pwhygf44.js +5 -0
  21. package/dist/shared/chunk-pwhygf44.js.map +10 -0
  22. package/dist/shared/chunk-sd6mmec6.js +5 -0
  23. package/dist/shared/chunk-sd6mmec6.js.map +12 -0
  24. package/dist/shared/chunk-wawk30n1.js +5 -0
  25. package/dist/shared/chunk-wawk30n1.js.map +14 -0
  26. package/dist/shared/chunk-wmftwzcs.js +5 -0
  27. package/dist/shared/chunk-wmftwzcs.js.map +16 -0
  28. package/dist/shared/chunk-zmzz7hqq.js +5 -0
  29. package/dist/shared/chunk-zmzz7hqq.js.map +10 -0
  30. package/dist/src/entities/book/index.d.ts +62 -0
  31. package/dist/src/entities/book/index.js +4 -0
  32. package/dist/src/entities/book/index.js.map +9 -0
  33. package/dist/src/entities/common/index.d.ts +81 -0
  34. package/dist/src/entities/common/index.js +4 -0
  35. package/dist/src/entities/common/index.js.map +9 -0
  36. package/dist/src/entities/gamification/flashcard/index.d.ts +179 -0
  37. package/dist/src/entities/gamification/flashcard/index.js +4 -0
  38. package/dist/src/entities/gamification/flashcard/index.js.map +9 -0
  39. package/dist/src/entities/gamification/index.d.ts +22 -0
  40. package/dist/src/entities/gamification/index.js +4 -0
  41. package/dist/src/entities/gamification/index.js.map +9 -0
  42. package/dist/src/entities/gamification/mcq/index.d.ts +74 -0
  43. package/dist/src/entities/gamification/mcq/index.js +4 -0
  44. package/dist/src/entities/gamification/mcq/index.js.map +9 -0
  45. package/dist/src/entities/image/index.d.ts +35 -0
  46. package/dist/src/entities/image/index.js +4 -0
  47. package/dist/src/entities/image/index.js.map +9 -0
  48. package/dist/src/entities/payment/index.d.ts +89 -0
  49. package/dist/src/entities/payment/index.js +4 -0
  50. package/dist/src/entities/payment/index.js.map +9 -0
  51. package/dist/src/entities/user/index.d.ts +122 -0
  52. package/dist/src/entities/user/index.js +4 -0
  53. package/dist/src/entities/user/index.js.map +9 -0
  54. package/dist/src/entities/video/index.d.ts +67 -0
  55. package/dist/src/entities/video/index.js +4 -0
  56. package/dist/src/entities/video/index.js.map +9 -0
  57. package/dist/src/repositories/book/index.d.ts +128 -0
  58. package/dist/src/repositories/book/index.js +4 -0
  59. package/dist/src/repositories/book/index.js.map +12 -0
  60. package/dist/src/repositories/common/index.d.ts +210 -0
  61. package/dist/src/repositories/common/index.js +4 -0
  62. package/dist/src/repositories/common/index.js.map +15 -0
  63. package/dist/src/repositories/gamification/flashcard/index.d.ts +330 -0
  64. package/dist/src/repositories/gamification/flashcard/index.js +4 -0
  65. package/dist/src/repositories/gamification/flashcard/index.js.map +16 -0
  66. package/dist/src/repositories/gamification/index.d.ts +506 -0
  67. package/dist/src/repositories/gamification/index.js +4 -0
  68. package/dist/src/repositories/gamification/index.js.map +10 -0
  69. package/dist/src/repositories/gamification/mcq/index.d.ts +163 -0
  70. package/dist/src/repositories/gamification/mcq/index.js +4 -0
  71. package/dist/src/repositories/gamification/mcq/index.js.map +13 -0
  72. package/dist/src/repositories/image/index.d.ts +57 -0
  73. package/dist/src/repositories/image/index.js +4 -0
  74. package/dist/src/repositories/image/index.js.map +10 -0
  75. package/dist/src/repositories/payment/index.d.ts +220 -0
  76. package/dist/src/repositories/payment/index.js +4 -0
  77. package/dist/src/repositories/payment/index.js.map +15 -0
  78. package/dist/src/repositories/user/index.d.ts +245 -0
  79. package/dist/src/repositories/user/index.js +4 -0
  80. package/dist/src/repositories/user/index.js.map +14 -0
  81. package/dist/src/repositories/video/index.d.ts +132 -0
  82. package/dist/src/repositories/video/index.js +4 -0
  83. package/dist/src/repositories/video/index.js.map +12 -0
  84. package/package.json +155 -0
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["src/repositories/payment/PaymentCouponRepository.ts", "src/repositories/payment/PaymentCreditRepository.ts", "src/repositories/payment/PaymentFeatureRepository.ts", "src/repositories/payment/PaymentPlanRepository.ts", "src/repositories/payment/PaymentProductRepository.ts", "src/repositories/payment/PaymentSubscriptionRepository.ts"],
4
+ "sourcesContent": [
5
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { PaymentCouponEntity } from \"../../entities/payment/PaymentCouponEntity\";\n\nexport class PaymentCouponRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<PaymentCouponEntity>> {\n return await this.database.open(PaymentCouponEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<PaymentCouponEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<PaymentCouponEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply coupon search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [{ code: ILike(`%${q}%`) }, { name: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [{ code: ILike(`%${q}%`) }, { name: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<PaymentCouponEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<PaymentCouponEntity>): Promise<PaymentCouponEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: PaymentCouponEntity, options?: SaveOptions): Promise<PaymentCouponEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: PaymentCouponEntity[], options?: SaveOptions): Promise<PaymentCouponEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: PaymentCouponEntity, options?: SaveOptions): Promise<PaymentCouponEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: PaymentCouponEntity[], options?: SaveOptions): Promise<PaymentCouponEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<PaymentCouponEntity> | FindOptionsWhere<PaymentCouponEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<PaymentCouponEntity> | FindOptionsWhere<PaymentCouponEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
6
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { PaymentCreditEntity } from \"../../entities/payment/PaymentCreditEntity\";\n\nexport class PaymentCreditRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<PaymentCreditEntity>> {\n return await this.database.open(PaymentCreditEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<PaymentCreditEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<PaymentCreditEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply credit description search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n findOptions = {\n ...findOptions,\n where: {\n ...rest.where,\n description: ILike(`%${q}%`),\n },\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including description search\n let countWhere = rest.where;\n if (q) {\n countWhere = {\n ...rest.where,\n description: ILike(`%${q}%`),\n };\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<PaymentCreditEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<PaymentCreditEntity>): Promise<PaymentCreditEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: PaymentCreditEntity, options?: SaveOptions): Promise<PaymentCreditEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: PaymentCreditEntity[], options?: SaveOptions): Promise<PaymentCreditEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: PaymentCreditEntity, options?: SaveOptions): Promise<PaymentCreditEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: PaymentCreditEntity[], options?: SaveOptions): Promise<PaymentCreditEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<PaymentCreditEntity> | FindOptionsWhere<PaymentCreditEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<PaymentCreditEntity> | FindOptionsWhere<PaymentCreditEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
7
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { PaymentFeatureEntity } from \"../../entities/payment/PaymentFeatureEntity\";\n\nexport class PaymentFeatureRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<PaymentFeatureEntity>> {\n return await this.database.open(PaymentFeatureEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<PaymentFeatureEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<PaymentFeatureEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply feature search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [{ name: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [{ name: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<PaymentFeatureEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<PaymentFeatureEntity>): Promise<PaymentFeatureEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: PaymentFeatureEntity, options?: SaveOptions): Promise<PaymentFeatureEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: PaymentFeatureEntity[], options?: SaveOptions): Promise<PaymentFeatureEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: PaymentFeatureEntity, options?: SaveOptions): Promise<PaymentFeatureEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: PaymentFeatureEntity[], options?: SaveOptions): Promise<PaymentFeatureEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<PaymentFeatureEntity> | FindOptionsWhere<PaymentFeatureEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<PaymentFeatureEntity> | FindOptionsWhere<PaymentFeatureEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
8
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { PaymentPlanEntity } from \"../../entities/payment/PaymentPlanEntity\";\n\nexport class PaymentPlanRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<PaymentPlanEntity>> {\n return await this.database.open(PaymentPlanEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<PaymentPlanEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<PaymentPlanEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply plan search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [{ name: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [{ name: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<PaymentPlanEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<PaymentPlanEntity>): Promise<PaymentPlanEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: PaymentPlanEntity, options?: SaveOptions): Promise<PaymentPlanEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: PaymentPlanEntity[], options?: SaveOptions): Promise<PaymentPlanEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: PaymentPlanEntity, options?: SaveOptions): Promise<PaymentPlanEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: PaymentPlanEntity[], options?: SaveOptions): Promise<PaymentPlanEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<PaymentPlanEntity> | FindOptionsWhere<PaymentPlanEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<PaymentPlanEntity> | FindOptionsWhere<PaymentPlanEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
9
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { PaymentProductEntity } from \"../../entities/payment/PaymentProductEntity\";\n\nexport class PaymentProductRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<PaymentProductEntity>> {\n return await this.database.open(PaymentProductEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<PaymentProductEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<PaymentProductEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply product search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [\n { name: ILike(`%${q}%`) },\n { description: ILike(`%${q}%`) },\n { barcode: ILike(`%${q}%`) },\n ];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [\n { name: ILike(`%${q}%`) },\n { description: ILike(`%${q}%`) },\n { barcode: ILike(`%${q}%`) },\n ];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<PaymentProductEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<PaymentProductEntity>): Promise<PaymentProductEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: PaymentProductEntity, options?: SaveOptions): Promise<PaymentProductEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: PaymentProductEntity[], options?: SaveOptions): Promise<PaymentProductEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: PaymentProductEntity, options?: SaveOptions): Promise<PaymentProductEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: PaymentProductEntity[], options?: SaveOptions): Promise<PaymentProductEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<PaymentProductEntity> | FindOptionsWhere<PaymentProductEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<PaymentProductEntity> | FindOptionsWhere<PaymentProductEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
10
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { PaymentSubscriptionEntity } from \"../../entities/payment/PaymentSubscriptionEntity\";\n\nexport class PaymentSubscriptionRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<PaymentSubscriptionEntity>> {\n return await this.database.open(PaymentSubscriptionEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<PaymentSubscriptionEntity> & { page?: number; limit?: number },\n ): Promise<FilterResultType<PaymentSubscriptionEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n const result = await repository.find({ ...rest, take, ...(skip !== undefined && { skip }) });\n\n const total = await this.count(rest.where);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<PaymentSubscriptionEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(\n criteria: FindOptionsWhere<PaymentSubscriptionEntity>,\n ): Promise<PaymentSubscriptionEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: PaymentSubscriptionEntity, options?: SaveOptions): Promise<PaymentSubscriptionEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(\n entities: PaymentSubscriptionEntity[],\n options?: SaveOptions,\n ): Promise<PaymentSubscriptionEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: PaymentSubscriptionEntity, options?: SaveOptions): Promise<PaymentSubscriptionEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(\n entities: PaymentSubscriptionEntity[],\n options?: SaveOptions,\n ): Promise<PaymentSubscriptionEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<PaymentSubscriptionEntity> | FindOptionsWhere<PaymentSubscriptionEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<PaymentSubscriptionEntity> | FindOptionsWhere<PaymentSubscriptionEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n"
11
+ ],
12
+ "mappings": "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",
13
+ "debugId": "EEDFDF331979925864756E2164756E21",
14
+ "names": []
15
+ }
@@ -0,0 +1,245 @@
1
+ import { ITypeormDatabaseAdapter } from "@ooneex/database";
2
+ import { FilterResultType } from "@ooneex/types";
3
+ import { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from "typeorm";
4
+ import { IAccount, IUser } from "@ooneex/user";
5
+ import { EAccountType } from "@ooneex/user";
6
+ import { LocaleType } from "@ooneex/translation";
7
+ import { IBase } from "@ooneex/types";
8
+ declare abstract class BaseEntity implements IBase {
9
+ id: string;
10
+ isLocked?: boolean;
11
+ lockedAt?: Date;
12
+ isBlocked?: boolean;
13
+ blockedAt?: Date;
14
+ blockReason?: string;
15
+ isPublic?: boolean;
16
+ language?: LocaleType;
17
+ createdAt?: Date;
18
+ updatedAt?: Date;
19
+ deletedAt?: Date;
20
+ }
21
+ declare class AccountEntity extends BaseEntity implements IAccount {
22
+ provider?: string;
23
+ providerAccountId?: string;
24
+ type: EAccountType;
25
+ password?: string;
26
+ accessToken?: string;
27
+ accessTokenExpiresAt?: Date;
28
+ refreshToken?: string;
29
+ refreshTokenExpiresAt?: Date;
30
+ expiresAt?: Date;
31
+ tokenType?: string;
32
+ scope?: string;
33
+ idToken?: string;
34
+ sessionState?: string;
35
+ email?: string;
36
+ emailVerified?: boolean;
37
+ name?: string;
38
+ picture?: string;
39
+ profile?: Record<string, unknown>;
40
+ user?: IUser;
41
+ }
42
+ declare class AccountRepository {
43
+ private readonly database;
44
+ constructor(database: ITypeormDatabaseAdapter);
45
+ open(): Promise<Repository<AccountEntity>>;
46
+ close(): Promise<void>;
47
+ find(criteria: FindManyOptions<AccountEntity> & {
48
+ page?: number;
49
+ limit?: number;
50
+ q?: string;
51
+ }): Promise<FilterResultType<AccountEntity>>;
52
+ findOne(id: string): Promise<AccountEntity | null>;
53
+ findOneBy(criteria: FindOptionsWhere<AccountEntity>): Promise<AccountEntity | null>;
54
+ create(entity: AccountEntity, options?: SaveOptions): Promise<AccountEntity>;
55
+ createMany(entities: AccountEntity[], options?: SaveOptions): Promise<AccountEntity[]>;
56
+ update(entity: AccountEntity, options?: SaveOptions): Promise<AccountEntity>;
57
+ updateMany(entities: AccountEntity[], options?: SaveOptions): Promise<AccountEntity[]>;
58
+ delete(criteria: FindOptionsWhere<AccountEntity> | FindOptionsWhere<AccountEntity>[]): Promise<UpdateResult>;
59
+ count(criteria?: FindOptionsWhere<AccountEntity> | FindOptionsWhere<AccountEntity>[]): Promise<number>;
60
+ }
61
+ import { ITypeormDatabaseAdapter as ITypeormDatabaseAdapter2 } from "@ooneex/database";
62
+ import { FilterResultType as FilterResultType2 } from "@ooneex/types";
63
+ import { FindManyOptions as FindManyOptions2, FindOptionsWhere as FindOptionsWhere2, Repository as Repository2, SaveOptions as SaveOptions2, UpdateResult as UpdateResult2 } from "typeorm";
64
+ import { ISession, IUser as IUser2 } from "@ooneex/user";
65
+ declare class SessionEntity extends BaseEntity implements ISession {
66
+ token: string;
67
+ refreshToken?: string;
68
+ userAgent?: string;
69
+ ipAddress?: string;
70
+ deviceType?: string;
71
+ deviceName?: string;
72
+ browser?: string;
73
+ operatingSystem?: string;
74
+ location?: string;
75
+ isActive: boolean;
76
+ expiresAt: Date;
77
+ lastAccessAt?: Date;
78
+ revokedAt?: Date;
79
+ revokedReason?: string;
80
+ user?: IUser2;
81
+ }
82
+ declare class SessionRepository {
83
+ private readonly database;
84
+ constructor(database: ITypeormDatabaseAdapter2);
85
+ open(): Promise<Repository2<SessionEntity>>;
86
+ close(): Promise<void>;
87
+ find(criteria: FindManyOptions2<SessionEntity> & {
88
+ page?: number;
89
+ limit?: number;
90
+ q?: string;
91
+ }): Promise<FilterResultType2<SessionEntity>>;
92
+ findOne(id: string): Promise<SessionEntity | null>;
93
+ findOneBy(criteria: FindOptionsWhere2<SessionEntity>): Promise<SessionEntity | null>;
94
+ findByToken(token: string): Promise<SessionEntity | null>;
95
+ findByRefreshToken(refreshToken: string): Promise<SessionEntity | null>;
96
+ findActiveSessions(userId: string): Promise<SessionEntity[]>;
97
+ findExpiredSessions(): Promise<SessionEntity[]>;
98
+ create(entity: SessionEntity, options?: SaveOptions2): Promise<SessionEntity>;
99
+ createMany(entities: SessionEntity[], options?: SaveOptions2): Promise<SessionEntity[]>;
100
+ update(entity: SessionEntity, options?: SaveOptions2): Promise<SessionEntity>;
101
+ updateMany(entities: SessionEntity[], options?: SaveOptions2): Promise<SessionEntity[]>;
102
+ delete(criteria: FindOptionsWhere2<SessionEntity> | FindOptionsWhere2<SessionEntity>[]): Promise<UpdateResult2>;
103
+ revokeSession(sessionId: string, reason?: string): Promise<UpdateResult2>;
104
+ revokeAllUserSessions(userId: string, reason?: string): Promise<UpdateResult2>;
105
+ count(criteria?: FindOptionsWhere2<SessionEntity> | FindOptionsWhere2<SessionEntity>[]): Promise<number>;
106
+ }
107
+ import { ITypeormDatabaseAdapter as ITypeormDatabaseAdapter3 } from "@ooneex/database";
108
+ import { FilterResultType as FilterResultType3 } from "@ooneex/types";
109
+ import { FindManyOptions as FindManyOptions3, FindOptionsWhere as FindOptionsWhere3, Repository as Repository3, SaveOptions as SaveOptions3, UpdateResult as UpdateResult3 } from "typeorm";
110
+ import { IUser as IUser3, IUserProfileUpdate, IVerification } from "@ooneex/user";
111
+ import { EProfileUpdateStatus } from "@ooneex/user";
112
+ declare class UserProfileUpdateEntity extends BaseEntity implements IUserProfileUpdate {
113
+ changedFields: string[];
114
+ previousValues?: Record<string, unknown>;
115
+ newValues?: Record<string, unknown>;
116
+ updateReason?: string;
117
+ ipAddress?: string;
118
+ userAgent?: string;
119
+ requiresVerification?: boolean;
120
+ status: EProfileUpdateStatus;
121
+ appliedAt?: Date;
122
+ metadata?: Record<string, unknown>;
123
+ description?: string;
124
+ user?: IUser3;
125
+ verification?: IVerification;
126
+ }
127
+ declare class UserProfileUpdateRepository {
128
+ private readonly database;
129
+ constructor(database: ITypeormDatabaseAdapter3);
130
+ open(): Promise<Repository3<UserProfileUpdateEntity>>;
131
+ close(): Promise<void>;
132
+ find(criteria: FindManyOptions3<UserProfileUpdateEntity> & {
133
+ page?: number;
134
+ limit?: number;
135
+ q?: string;
136
+ }): Promise<FilterResultType3<UserProfileUpdateEntity>>;
137
+ findOne(id: string): Promise<UserProfileUpdateEntity | null>;
138
+ findOneBy(criteria: FindOptionsWhere3<UserProfileUpdateEntity>): Promise<UserProfileUpdateEntity | null>;
139
+ create(entity: UserProfileUpdateEntity, options?: SaveOptions3): Promise<UserProfileUpdateEntity>;
140
+ createMany(entities: UserProfileUpdateEntity[], options?: SaveOptions3): Promise<UserProfileUpdateEntity[]>;
141
+ update(entity: UserProfileUpdateEntity, options?: SaveOptions3): Promise<UserProfileUpdateEntity>;
142
+ updateMany(entities: UserProfileUpdateEntity[], options?: SaveOptions3): Promise<UserProfileUpdateEntity[]>;
143
+ markAsCompleted(id: string): Promise<UpdateResult3>;
144
+ markAsFailed(id: string, reason?: string): Promise<UpdateResult3>;
145
+ markAsReverted(id: string, reason?: string): Promise<UpdateResult3>;
146
+ delete(criteria: FindOptionsWhere3<UserProfileUpdateEntity> | FindOptionsWhere3<UserProfileUpdateEntity>[]): Promise<UpdateResult3>;
147
+ count(criteria?: FindOptionsWhere3<UserProfileUpdateEntity> | FindOptionsWhere3<UserProfileUpdateEntity>[]): Promise<number>;
148
+ }
149
+ import { ITypeormDatabaseAdapter as ITypeormDatabaseAdapter4 } from "@ooneex/database";
150
+ import { FilterResultType as FilterResultType4 } from "@ooneex/types";
151
+ import { FindManyOptions as FindManyOptions4, FindOptionsWhere as FindOptionsWhere4, Repository as Repository4, SaveOptions as SaveOptions4, UpdateResult as UpdateResult4 } from "typeorm";
152
+ import { IImage } from "@ooneex/image";
153
+ import { ERole } from "@ooneex/role";
154
+ import { IAccount as IAccount2, ISession as ISession2, IUser as IUser4, IVerification as IVerification2 } from "@ooneex/user";
155
+ declare class UserEntity extends BaseEntity implements IUser4 {
156
+ email: string;
157
+ roles: ERole[];
158
+ name?: string;
159
+ lastName?: string;
160
+ firstName?: string;
161
+ username?: string;
162
+ avatar?: IImage;
163
+ bio?: string;
164
+ phone?: string;
165
+ birthDate?: Date;
166
+ timezone?: string;
167
+ isEmailVerified?: boolean;
168
+ isPhoneVerified?: boolean;
169
+ lastActiveAt?: Date;
170
+ emailVerifiedAt?: Date;
171
+ phoneVerifiedAt?: Date;
172
+ lastLoginAt?: Date;
173
+ passwordChangedAt?: Date;
174
+ twoFactorEnabled?: boolean;
175
+ twoFactorSecret?: string;
176
+ recoveryTokens?: string[];
177
+ sessions?: ISession2[];
178
+ accounts?: IAccount2[];
179
+ verifications?: IVerification2[];
180
+ }
181
+ declare class UserRepository {
182
+ private readonly database;
183
+ constructor(database: ITypeormDatabaseAdapter4);
184
+ open(): Promise<Repository4<UserEntity>>;
185
+ close(): Promise<void>;
186
+ find(criteria: FindManyOptions4<UserEntity> & {
187
+ page?: number;
188
+ limit?: number;
189
+ q?: string;
190
+ }): Promise<FilterResultType4<UserEntity>>;
191
+ findOne(id: string): Promise<UserEntity | null>;
192
+ findOneBy(criteria: FindOptionsWhere4<UserEntity>): Promise<UserEntity | null>;
193
+ create(entity: UserEntity, options?: SaveOptions4): Promise<UserEntity>;
194
+ createMany(entities: UserEntity[], options?: SaveOptions4): Promise<UserEntity[]>;
195
+ update(entity: UserEntity, options?: SaveOptions4): Promise<UserEntity>;
196
+ updateMany(entities: UserEntity[], options?: SaveOptions4): Promise<UserEntity[]>;
197
+ delete(criteria: FindOptionsWhere4<UserEntity> | FindOptionsWhere4<UserEntity>[]): Promise<UpdateResult4>;
198
+ count(criteria?: FindOptionsWhere4<UserEntity> | FindOptionsWhere4<UserEntity>[]): Promise<number>;
199
+ }
200
+ import { ITypeormDatabaseAdapter as ITypeormDatabaseAdapter5 } from "@ooneex/database";
201
+ import { FilterResultType as FilterResultType5 } from "@ooneex/types";
202
+ import { FindManyOptions as FindManyOptions5, FindOptionsWhere as FindOptionsWhere5, Repository as Repository5, SaveOptions as SaveOptions5, UpdateResult as UpdateResult5 } from "typeorm";
203
+ import { IUser as IUser5, IVerification as IVerification3 } from "@ooneex/user";
204
+ import { EVerificationType } from "@ooneex/user";
205
+ declare class VerificationEntity extends BaseEntity implements IVerification3 {
206
+ email?: string;
207
+ phone?: string;
208
+ token: string;
209
+ type: EVerificationType;
210
+ code?: string;
211
+ isUsed: boolean;
212
+ usedAt?: Date;
213
+ expiresAt: Date;
214
+ attemptsCount: number;
215
+ maxAttempts: number;
216
+ ipAddress?: string;
217
+ userAgent?: string;
218
+ metadata?: Record<string, unknown>;
219
+ description?: string;
220
+ user?: IUser5;
221
+ }
222
+ declare class VerificationRepository {
223
+ private readonly database;
224
+ constructor(database: ITypeormDatabaseAdapter5);
225
+ open(): Promise<Repository5<VerificationEntity>>;
226
+ close(): Promise<void>;
227
+ find(criteria: FindManyOptions5<VerificationEntity> & {
228
+ page?: number;
229
+ limit?: number;
230
+ q?: string;
231
+ }): Promise<FilterResultType5<VerificationEntity>>;
232
+ findOne(id: string): Promise<VerificationEntity | null>;
233
+ findOneBy(criteria: FindOptionsWhere5<VerificationEntity>): Promise<VerificationEntity | null>;
234
+ findByToken(token: string): Promise<VerificationEntity | null>;
235
+ findByCode(code: string): Promise<VerificationEntity | null>;
236
+ create(entity: VerificationEntity, options?: SaveOptions5): Promise<VerificationEntity>;
237
+ createMany(entities: VerificationEntity[], options?: SaveOptions5): Promise<VerificationEntity[]>;
238
+ update(entity: VerificationEntity, options?: SaveOptions5): Promise<VerificationEntity>;
239
+ updateMany(entities: VerificationEntity[], options?: SaveOptions5): Promise<VerificationEntity[]>;
240
+ markAsUsed(id: string): Promise<UpdateResult5>;
241
+ incrementAttempts(id: string): Promise<UpdateResult5>;
242
+ delete(criteria: FindOptionsWhere5<VerificationEntity> | FindOptionsWhere5<VerificationEntity>[]): Promise<UpdateResult5>;
243
+ count(criteria?: FindOptionsWhere5<VerificationEntity> | FindOptionsWhere5<VerificationEntity>[]): Promise<number>;
244
+ }
245
+ export { VerificationRepository, UserRepository, UserProfileUpdateRepository, SessionRepository, AccountRepository };
@@ -0,0 +1,4 @@
1
+ // @bun
2
+ import{D as f,E as U,F as C,G as R,H as g}from"../../../shared/chunk-wawk30n1.js";import"../../../shared/chunk-2e7zbxcq.js";import"../../../shared/chunk-764bzjhz.js";import{V as Z,W as _,X as $}from"../../../shared/chunk-j7nprmyh.js";import{inject as h}from"@ooneex/container";import{ILike as A}from"typeorm";class V{database;constructor(x){this.database=x}async open(){return await this.database.open(U)}async close(){await this.database.close()}async find(x){let v=await this.open(),{page:F=1,limit:B=100,q:z,...G}=x,J,Q=B===0?100:B;if(F&&F>0&&B&&B>0)J=(F-1)*Q;let K={...G,take:Q,...J!==void 0&&{skip:J}};if(z){let H=[{provider:A(`%${z}%`)},{providerAccountId:A(`%${z}%`)},{email:A(`%${z}%`)},{name:A(`%${z}%`)}];K={...K,where:G.where?[...H.map((N)=>({...G.where,...N}))]:H}}let T=await v.find(K),X=G.where;if(z){let H=[{provider:A(`%${z}%`)},{providerAccountId:A(`%${z}%`)},{email:A(`%${z}%`)},{name:A(`%${z}%`)}];X=G.where?[...H.map((N)=>({...G.where,...N}))]:H}let Y=await this.count(X),w=Math.ceil(Y/B);return{resources:T,total:Y,totalPages:w,page:F,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async create(x,v){return await(await this.open()).save(x,v)}async createMany(x,v){return await(await this.open()).save(x,v)}async update(x,v){return await this.create(x,v)}async updateMany(x,v){return await this.createMany(x,v)}async delete(x){return await(await this.open()).softDelete(x)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}V=Z([_(0,h("database")),$("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],V);import{inject as L}from"@ooneex/container";import{ILike as M,LessThan as u}from"typeorm";class D{database;constructor(x){this.database=x}async open(){return await this.database.open(C)}async close(){await this.database.close()}async find(x){let v=await this.open(),{page:F=1,limit:B=100,q:z,...G}=x,J,Q=B===0?100:B;if(F&&F>0&&B&&B>0)J=(F-1)*Q;let K={...G,take:Q,...J!==void 0&&{skip:J}};if(z){let H=[{deviceName:M(`%${z}%`)},{deviceType:M(`%${z}%`)},{browser:M(`%${z}%`)},{operatingSystem:M(`%${z}%`)},{location:M(`%${z}%`)}];K={...K,where:G.where?[...H.map((N)=>({...G.where,...N}))]:H}}let T=await v.find(K),X=G.where;if(z){let H=[{deviceName:M(`%${z}%`)},{deviceType:M(`%${z}%`)},{browser:M(`%${z}%`)},{operatingSystem:M(`%${z}%`)},{location:M(`%${z}%`)}];X=G.where?[...H.map((N)=>({...G.where,...N}))]:H}let Y=await this.count(X),w=Math.ceil(Y/B);return{resources:T,total:Y,totalPages:w,page:F,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async findByToken(x){return await(await this.open()).findOne({where:{token:x}})}async findByRefreshToken(x){return await(await this.open()).findOne({where:{refreshToken:x}})}async findActiveSessions(x){return await(await this.open()).find({where:{user:{id:x},isActive:!0},order:{lastAccessAt:"DESC"}})}async findExpiredSessions(){return await(await this.open()).find({where:{expiresAt:u(new Date),isActive:!0}})}async create(x,v){return await(await this.open()).save(x,v)}async createMany(x,v){return await(await this.open()).save(x,v)}async update(x,v){return await this.create(x,v)}async updateMany(x,v){return await this.createMany(x,v)}async delete(x){return await(await this.open()).softDelete(x)}async revokeSession(x,v){let F=await this.open(),B={isActive:!1,revokedAt:new Date};if(v!==void 0)B.revokedReason=v;return await F.update(x,B)}async revokeAllUserSessions(x,v){let F=await this.open(),B={isActive:!1,revokedAt:new Date};if(v!==void 0)B.revokedReason=v;return await F.update({user:{id:x},isActive:!0},B)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}D=Z([_(0,L("database")),$("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],D);import{inject as I}from"@ooneex/container";import{EProfileUpdateStatus as O}from"@ooneex/user";import{ILike as S}from"typeorm";class W{database;constructor(x){this.database=x}async open(){return await this.database.open(g)}async close(){await this.database.close()}async find(x){let v=await this.open(),{page:F=1,limit:B=100,q:z,...G}=x,J,Q=B===0?100:B;if(F&&F>0&&B&&B>0)J=(F-1)*Q;let K={...G,take:Q,...J!==void 0&&{skip:J}};if(z){let H=[{updateReason:S(`%${z}%`)},{description:S(`%${z}%`)}];K={...K,where:G.where?[...H.map((N)=>({...G.where,...N}))]:H}}let T=await v.find(K),X=G.where;if(z){let H=[{updateReason:S(`%${z}%`)},{description:S(`%${z}%`)}];X=G.where?[...H.map((N)=>({...G.where,...N}))]:H}let Y=await this.count(X),w=Math.ceil(Y/B);return{resources:T,total:Y,totalPages:w,page:F,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async create(x,v){return await(await this.open()).save(x,v)}async createMany(x,v){return await(await this.open()).save(x,v)}async update(x,v){return await this.create(x,v)}async updateMany(x,v){return await this.createMany(x,v)}async markAsCompleted(x){return await(await this.open()).update(x,{status:O.COMPLETED,appliedAt:new Date})}async markAsFailed(x,v){let F=await this.open(),B={status:O.FAILED};if(v!==void 0)B.description=v;return await F.update(x,B)}async markAsReverted(x,v){let F=await this.open(),B={status:O.REVERTED};if(v!==void 0)B.description=v;return await F.update(x,B)}async delete(x){return await(await this.open()).softDelete(x)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}W=Z([_(0,I("database")),$("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],W);import{inject as q}from"@ooneex/container";import{ILike as b}from"typeorm";class P{database;constructor(x){this.database=x}async open(){return await this.database.open(f)}async close(){await this.database.close()}async find(x){let v=await this.open(),{page:F=1,limit:B=100,q:z,...G}=x,J,Q=B===0?100:B;if(F&&F>0&&B&&B>0)J=(F-1)*Q;let K={...G,take:Q,...J!==void 0&&{skip:J}};if(z){let H=[{email:b(`%${z}%`)},{name:b(`%${z}%`)},{firstName:b(`%${z}%`)},{lastName:b(`%${z}%`)},{username:b(`%${z}%`)}];K={...K,where:G.where?[...H.map((N)=>({...G.where,...N}))]:H}}let T=await v.find(K),X=G.where;if(z){let H=[{email:b(`%${z}%`)},{name:b(`%${z}%`)},{firstName:b(`%${z}%`)},{lastName:b(`%${z}%`)},{username:b(`%${z}%`)}];X=G.where?[...H.map((N)=>({...G.where,...N}))]:H}let Y=await this.count(X),w=Math.ceil(Y/B);return{resources:T,total:Y,totalPages:w,page:F,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async create(x,v){return await(await this.open()).save(x,v)}async createMany(x,v){return await(await this.open()).save(x,v)}async update(x,v){return await this.create(x,v)}async updateMany(x,v){return await this.createMany(x,v)}async delete(x){return await(await this.open()).softDelete(x)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}P=Z([_(0,q("database")),$("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],P);import{inject as y}from"@ooneex/container";import{ILike as j,MoreThan as m}from"typeorm";class E{database;constructor(x){this.database=x}async open(){return await this.database.open(R)}async close(){await this.database.close()}async find(x){let v=await this.open(),{page:F=1,limit:B=100,q:z,...G}=x,J,Q=B===0?100:B;if(F&&F>0&&B&&B>0)J=(F-1)*Q;let K={...G,take:Q,...J!==void 0&&{skip:J}};if(z){let H=[{email:j(`%${z}%`)},{phone:j(`%${z}%`)},{token:j(`%${z}%`)},{code:j(`%${z}%`)},{description:j(`%${z}%`)}];K={...K,where:G.where?[...H.map((N)=>({...G.where,...N}))]:H}}let T=await v.find(K),X=G.where;if(z){let H=[{email:j(`%${z}%`)},{phone:j(`%${z}%`)},{token:j(`%${z}%`)},{code:j(`%${z}%`)},{description:j(`%${z}%`)}];X=G.where?[...H.map((N)=>({...G.where,...N}))]:H}let Y=await this.count(X),w=Math.ceil(Y/B);return{resources:T,total:Y,totalPages:w,page:F,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async findByToken(x){return await(await this.open()).findOne({where:{token:x,isUsed:!1,expiresAt:m(new Date)}})}async findByCode(x){return await(await this.open()).findOne({where:{code:x,isUsed:!1,expiresAt:m(new Date)}})}async create(x,v){return await(await this.open()).save(x,v)}async createMany(x,v){return await(await this.open()).save(x,v)}async update(x,v){return await this.create(x,v)}async updateMany(x,v){return await this.createMany(x,v)}async markAsUsed(x){return await(await this.open()).update(x,{isUsed:!0,usedAt:new Date})}async incrementAttempts(x){return await(await this.open()).createQueryBuilder().update(R).set({attemptsCount:()=>"attempts_count + 1"}).where("id = :id",{id:x}).execute()}async delete(x){return await(await this.open()).softDelete(x)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}E=Z([_(0,y("database")),$("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],E);export{E as VerificationRepository,P as UserRepository,W as UserProfileUpdateRepository,D as SessionRepository,V as AccountRepository};
3
+
4
+ //# debugId=2650EAE646D1240964756E2164756E21
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["src/repositories/user/AccountRepository.ts", "src/repositories/user/SessionRepository.ts", "src/repositories/user/UserProfileUpdateRepository.ts", "src/repositories/user/UserRepository.ts", "src/repositories/user/VerificationRepository.ts"],
4
+ "sourcesContent": [
5
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { AccountEntity } from \"../../entities/user/AccountEntity\";\n\nexport class AccountRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<AccountEntity>> {\n return await this.database.open(AccountEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<AccountEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<AccountEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply account search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [\n { provider: ILike(`%${q}%`) },\n { providerAccountId: ILike(`%${q}%`) },\n { email: ILike(`%${q}%`) },\n { name: ILike(`%${q}%`) },\n ];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [\n { provider: ILike(`%${q}%`) },\n { providerAccountId: ILike(`%${q}%`) },\n { email: ILike(`%${q}%`) },\n { name: ILike(`%${q}%`) },\n ];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<AccountEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<AccountEntity>): Promise<AccountEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: AccountEntity, options?: SaveOptions): Promise<AccountEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: AccountEntity[], options?: SaveOptions): Promise<AccountEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: AccountEntity, options?: SaveOptions): Promise<AccountEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: AccountEntity[], options?: SaveOptions): Promise<AccountEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<AccountEntity> | FindOptionsWhere<AccountEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(criteria?: FindOptionsWhere<AccountEntity> | FindOptionsWhere<AccountEntity>[]): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
6
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike, LessThan } from \"typeorm\";\nimport { SessionEntity } from \"../../entities/user/SessionEntity\";\n\nexport class SessionRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<SessionEntity>> {\n return await this.database.open(SessionEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<SessionEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<SessionEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply session search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [\n { deviceName: ILike(`%${q}%`) },\n { deviceType: ILike(`%${q}%`) },\n { browser: ILike(`%${q}%`) },\n { operatingSystem: ILike(`%${q}%`) },\n { location: ILike(`%${q}%`) },\n ];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [\n { deviceName: ILike(`%${q}%`) },\n { deviceType: ILike(`%${q}%`) },\n { browser: ILike(`%${q}%`) },\n { operatingSystem: ILike(`%${q}%`) },\n { location: ILike(`%${q}%`) },\n ];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<SessionEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<SessionEntity>): Promise<SessionEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async findByToken(token: string): Promise<SessionEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { token },\n });\n }\n\n public async findByRefreshToken(refreshToken: string): Promise<SessionEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { refreshToken },\n });\n }\n\n public async findActiveSessions(userId: string): Promise<SessionEntity[]> {\n const repository = await this.open();\n\n return await repository.find({\n where: { user: { id: userId }, isActive: true },\n order: { lastAccessAt: \"DESC\" },\n });\n }\n\n public async findExpiredSessions(): Promise<SessionEntity[]> {\n const repository = await this.open();\n\n return await repository.find({\n where: { expiresAt: LessThan(new Date()), isActive: true },\n });\n }\n\n public async create(entity: SessionEntity, options?: SaveOptions): Promise<SessionEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: SessionEntity[], options?: SaveOptions): Promise<SessionEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: SessionEntity, options?: SaveOptions): Promise<SessionEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: SessionEntity[], options?: SaveOptions): Promise<SessionEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(\n criteria: FindOptionsWhere<SessionEntity> | FindOptionsWhere<SessionEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async revokeSession(sessionId: string, reason?: string): Promise<UpdateResult> {\n const repository = await this.open();\n\n const updateData: Record<string, unknown> = {\n isActive: false,\n revokedAt: new Date(),\n };\n\n if (reason !== undefined) {\n updateData.revokedReason = reason;\n }\n\n return await repository.update(sessionId, updateData);\n }\n\n public async revokeAllUserSessions(userId: string, reason?: string): Promise<UpdateResult> {\n const repository = await this.open();\n\n const updateData: Record<string, unknown> = {\n isActive: false,\n revokedAt: new Date(),\n };\n\n if (reason !== undefined) {\n updateData.revokedReason = reason;\n }\n\n return await repository.update({ user: { id: userId }, isActive: true }, updateData);\n }\n\n public async count(criteria?: FindOptionsWhere<SessionEntity> | FindOptionsWhere<SessionEntity>[]): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
7
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport { EProfileUpdateStatus } from \"@ooneex/user\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { UserProfileUpdateEntity } from \"../../entities/user/UserProfileUpdateEntity\";\n\nexport class UserProfileUpdateRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<UserProfileUpdateEntity>> {\n return await this.database.open(UserProfileUpdateEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<UserProfileUpdateEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<UserProfileUpdateEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply user profile update search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [{ updateReason: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [{ updateReason: ILike(`%${q}%`) }, { description: ILike(`%${q}%`) }];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<UserProfileUpdateEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<UserProfileUpdateEntity>): Promise<UserProfileUpdateEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: UserProfileUpdateEntity, options?: SaveOptions): Promise<UserProfileUpdateEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(\n entities: UserProfileUpdateEntity[],\n options?: SaveOptions,\n ): Promise<UserProfileUpdateEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: UserProfileUpdateEntity, options?: SaveOptions): Promise<UserProfileUpdateEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(\n entities: UserProfileUpdateEntity[],\n options?: SaveOptions,\n ): Promise<UserProfileUpdateEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async markAsCompleted(id: string): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.update(id, {\n status: EProfileUpdateStatus.COMPLETED,\n appliedAt: new Date(),\n });\n }\n\n public async markAsFailed(id: string, reason?: string): Promise<UpdateResult> {\n const repository = await this.open();\n\n const updateData: Record<string, unknown> = {\n status: EProfileUpdateStatus.FAILED,\n };\n\n if (reason !== undefined) {\n updateData.description = reason;\n }\n\n return await repository.update(id, updateData);\n }\n\n public async markAsReverted(id: string, reason?: string): Promise<UpdateResult> {\n const repository = await this.open();\n\n const updateData: Record<string, unknown> = {\n status: EProfileUpdateStatus.REVERTED,\n };\n\n if (reason !== undefined) {\n updateData.description = reason;\n }\n\n return await repository.update(id, updateData);\n }\n\n public async delete(\n criteria: FindOptionsWhere<UserProfileUpdateEntity> | FindOptionsWhere<UserProfileUpdateEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<UserProfileUpdateEntity> | FindOptionsWhere<UserProfileUpdateEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
8
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike } from \"typeorm\";\nimport { UserEntity } from \"../../entities/user/UserEntity\";\n\nexport class UserRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<UserEntity>> {\n return await this.database.open(UserEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<UserEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<UserEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply user search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [\n { email: ILike(`%${q}%`) },\n { name: ILike(`%${q}%`) },\n { firstName: ILike(`%${q}%`) },\n { lastName: ILike(`%${q}%`) },\n { username: ILike(`%${q}%`) },\n ];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [\n { email: ILike(`%${q}%`) },\n { name: ILike(`%${q}%`) },\n { firstName: ILike(`%${q}%`) },\n { lastName: ILike(`%${q}%`) },\n { username: ILike(`%${q}%`) },\n ];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<UserEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<UserEntity>): Promise<UserEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async create(entity: UserEntity, options?: SaveOptions): Promise<UserEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: UserEntity[], options?: SaveOptions): Promise<UserEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: UserEntity, options?: SaveOptions): Promise<UserEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: UserEntity[], options?: SaveOptions): Promise<UserEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async delete(criteria: FindOptionsWhere<UserEntity> | FindOptionsWhere<UserEntity>[]): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(criteria?: FindOptionsWhere<UserEntity> | FindOptionsWhere<UserEntity>[]): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n",
9
+ "import { inject } from \"@ooneex/container\";\nimport type { ITypeormDatabaseAdapter } from \"@ooneex/database\";\nimport type { FilterResultType } from \"@ooneex/types\";\nimport type { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from \"typeorm\";\nimport { ILike, MoreThan } from \"typeorm\";\nimport { VerificationEntity } from \"../../entities/user/VerificationEntity\";\n\nexport class VerificationRepository {\n constructor(\n @inject(\"database\")\n private readonly database: ITypeormDatabaseAdapter,\n ) {}\n\n public async open(): Promise<Repository<VerificationEntity>> {\n return await this.database.open(VerificationEntity);\n }\n\n public async close(): Promise<void> {\n await this.database.close();\n }\n\n public async find(\n criteria: FindManyOptions<VerificationEntity> & { page?: number; limit?: number; q?: string },\n ): Promise<FilterResultType<VerificationEntity>> {\n const repository = await this.open();\n\n const { page = 1, limit = 100, q, ...rest } = criteria;\n\n let skip: number | undefined;\n const take = limit === 0 ? 100 : limit;\n\n if (page && page > 0 && limit && limit > 0) {\n skip = (page - 1) * take;\n }\n\n // Apply verification search if q parameter is provided\n let findOptions = { ...rest, take, ...(skip !== undefined && { skip }) };\n if (q) {\n const searchConditions = [\n { email: ILike(`%${q}%`) },\n { phone: ILike(`%${q}%`) },\n { token: ILike(`%${q}%`) },\n { code: ILike(`%${q}%`) },\n { description: ILike(`%${q}%`) },\n ];\n\n findOptions = {\n ...findOptions,\n where: rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions,\n };\n }\n\n const result = await repository.find(findOptions);\n\n // Apply the same where conditions for count including search\n let countWhere = rest.where;\n if (q) {\n const searchConditions = [\n { email: ILike(`%${q}%`) },\n { phone: ILike(`%${q}%`) },\n { token: ILike(`%${q}%`) },\n { code: ILike(`%${q}%`) },\n { description: ILike(`%${q}%`) },\n ];\n\n countWhere = rest.where\n ? [...searchConditions.map((condition) => ({ ...rest.where, ...condition }))]\n : searchConditions;\n }\n\n const total = await this.count(countWhere);\n const totalPages = Math.ceil(total / limit);\n\n return {\n resources: result,\n total,\n totalPages,\n page,\n limit,\n };\n }\n\n public async findOne(id: string): Promise<VerificationEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { id },\n });\n }\n\n public async findOneBy(criteria: FindOptionsWhere<VerificationEntity>): Promise<VerificationEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: criteria,\n });\n }\n\n public async findByToken(token: string): Promise<VerificationEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { token, isUsed: false, expiresAt: MoreThan(new Date()) },\n });\n }\n\n public async findByCode(code: string): Promise<VerificationEntity | null> {\n const repository = await this.open();\n\n return await repository.findOne({\n where: { code, isUsed: false, expiresAt: MoreThan(new Date()) },\n });\n }\n\n public async create(entity: VerificationEntity, options?: SaveOptions): Promise<VerificationEntity> {\n const repository = await this.open();\n\n return await repository.save(entity, options);\n }\n\n public async createMany(entities: VerificationEntity[], options?: SaveOptions): Promise<VerificationEntity[]> {\n const repository = await this.open();\n\n return await repository.save(entities, options);\n }\n\n public async update(entity: VerificationEntity, options?: SaveOptions): Promise<VerificationEntity> {\n return await this.create(entity, options);\n }\n\n public async updateMany(entities: VerificationEntity[], options?: SaveOptions): Promise<VerificationEntity[]> {\n return await this.createMany(entities, options);\n }\n\n public async markAsUsed(id: string): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.update(id, {\n isUsed: true,\n usedAt: new Date(),\n });\n }\n\n public async incrementAttempts(id: string): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository\n .createQueryBuilder()\n .update(VerificationEntity)\n .set({ attemptsCount: () => \"attempts_count + 1\" })\n .where(\"id = :id\", { id })\n .execute();\n }\n\n public async delete(\n criteria: FindOptionsWhere<VerificationEntity> | FindOptionsWhere<VerificationEntity>[],\n ): Promise<UpdateResult> {\n const repository = await this.open();\n\n return await repository.softDelete(criteria);\n }\n\n public async count(\n criteria?: FindOptionsWhere<VerificationEntity> | FindOptionsWhere<VerificationEntity>[],\n ): Promise<number> {\n const repository = await this.open();\n\n return await repository.count(criteria ? { where: criteria } : {});\n }\n}\n"
10
+ ],
11
+ "mappings": ";kNAAA,yBAAS,kCAIT,wBAAS,gBAGF,MAAM,CAAkB,CAGV,SAFnB,WAAW,CAEQ,EACjB,CADiB,qBAGN,KAAI,EAAuC,CACtD,OAAO,MAAM,KAAK,SAAS,KAAK,CAAa,OAGlC,MAAK,EAAkB,CAClC,MAAM,KAAK,SAAS,MAAM,OAGf,KAAI,CACf,EAC0C,CAC1C,IAAM,EAAa,MAAM,KAAK,KAAK,GAE3B,OAAO,EAAG,QAAQ,IAAK,OAAM,GAAS,EAE1C,EACE,EAAO,IAAU,EAAI,IAAM,EAEjC,GAAI,GAAQ,EAAO,GAAK,GAAS,EAAQ,EACvC,GAAQ,EAAO,GAAK,EAItB,IAAI,EAAc,IAAK,EAAM,UAAU,IAAS,QAAa,CAAE,MAAK,CAAG,EACvE,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,EAC5B,CAAE,kBAAmB,EAAM,IAAI,IAAI,CAAE,EACrC,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,KAAM,EAAM,IAAI,IAAI,CAAE,CAC1B,EAEA,EAAc,IACT,EACH,MAAO,EAAK,MACR,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,CACN,EAGF,IAAM,EAAS,MAAM,EAAW,KAAK,CAAW,EAG5C,EAAa,EAAK,MACtB,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,EAC5B,CAAE,kBAAmB,EAAM,IAAI,IAAI,CAAE,EACrC,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,KAAM,EAAM,IAAI,IAAI,CAAE,CAC1B,EAEA,EAAa,EAAK,MACd,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,EAGN,IAAM,EAAQ,MAAM,KAAK,MAAM,CAAU,EACnC,EAAa,KAAK,KAAK,EAAQ,CAAK,EAE1C,MAAO,CACL,UAAW,EACX,QACA,aACA,OACA,OACF,OAGW,QAAO,CAAC,EAA2C,CAG9D,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,IAAG,CACd,CAAC,OAGU,UAAS,CAAC,EAA0E,CAG/F,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CACT,CAAC,OAGU,OAAM,CAAC,EAAuB,EAA+C,CAGxF,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAQ,CAAO,OAGjC,WAAU,CAAC,EAA2B,EAAiD,CAGlG,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAU,CAAO,OAGnC,OAAM,CAAC,EAAuB,EAA+C,CACxF,OAAO,MAAM,KAAK,OAAO,EAAQ,CAAO,OAG7B,WAAU,CAAC,EAA2B,EAAiD,CAClG,OAAO,MAAM,KAAK,WAAW,EAAU,CAAO,OAGnC,OAAM,CACjB,EACuB,CAGvB,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,WAAW,CAAQ,OAGhC,MAAK,CAAC,EAAiG,CAGlH,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,MAAM,EAAW,CAAE,MAAO,CAAS,EAAI,CAAC,CAAC,EAErE,CA5Ha,EAAN,GAEF,MAAO,UAAU,GAFf,sGAAM,GCPb,iBAAS,0BAIT,gBAAS,cAAO,gBAGT,MAAM,CAAkB,CAGV,SAFnB,WAAW,CAEQ,EACjB,CADiB,qBAGN,KAAI,EAAuC,CACtD,OAAO,MAAM,KAAK,SAAS,KAAK,CAAa,OAGlC,MAAK,EAAkB,CAClC,MAAM,KAAK,SAAS,MAAM,OAGf,KAAI,CACf,EAC0C,CAC1C,IAAM,EAAa,MAAM,KAAK,KAAK,GAE3B,OAAO,EAAG,QAAQ,IAAK,OAAM,GAAS,EAE1C,EACE,EAAO,IAAU,EAAI,IAAM,EAEjC,GAAI,GAAQ,EAAO,GAAK,GAAS,EAAQ,EACvC,GAAQ,EAAO,GAAK,EAItB,IAAI,EAAc,IAAK,EAAM,UAAU,IAAS,QAAa,CAAE,MAAK,CAAG,EACvE,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,WAAY,EAAM,IAAI,IAAI,CAAE,EAC9B,CAAE,WAAY,EAAM,IAAI,IAAI,CAAE,EAC9B,CAAE,QAAS,EAAM,IAAI,IAAI,CAAE,EAC3B,CAAE,gBAAiB,EAAM,IAAI,IAAI,CAAE,EACnC,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,CAC9B,EAEA,EAAc,IACT,EACH,MAAO,EAAK,MACR,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,CACN,EAGF,IAAM,EAAS,MAAM,EAAW,KAAK,CAAW,EAG5C,EAAa,EAAK,MACtB,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,WAAY,EAAM,IAAI,IAAI,CAAE,EAC9B,CAAE,WAAY,EAAM,IAAI,IAAI,CAAE,EAC9B,CAAE,QAAS,EAAM,IAAI,IAAI,CAAE,EAC3B,CAAE,gBAAiB,EAAM,IAAI,IAAI,CAAE,EACnC,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,CAC9B,EAEA,EAAa,EAAK,MACd,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,EAGN,IAAM,EAAQ,MAAM,KAAK,MAAM,CAAU,EACnC,EAAa,KAAK,KAAK,EAAQ,CAAK,EAE1C,MAAO,CACL,UAAW,EACX,QACA,aACA,OACA,OACF,OAGW,QAAO,CAAC,EAA2C,CAG9D,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,IAAG,CACd,CAAC,OAGU,UAAS,CAAC,EAA0E,CAG/F,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CACT,CAAC,OAGU,YAAW,CAAC,EAA8C,CAGrE,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,OAAM,CACjB,CAAC,OAGU,mBAAkB,CAAC,EAAqD,CAGnF,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,cAAa,CACxB,CAAC,OAGU,mBAAkB,CAAC,EAA0C,CAGxE,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,CAC3B,MAAO,CAAE,KAAM,CAAE,GAAI,CAAO,EAAG,SAAU,EAAK,EAC9C,MAAO,CAAE,aAAc,MAAO,CAChC,CAAC,OAGU,oBAAmB,EAA6B,CAG3D,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,CAC3B,MAAO,CAAE,UAAW,EAAS,IAAI,IAAM,EAAG,SAAU,EAAK,CAC3D,CAAC,OAGU,OAAM,CAAC,EAAuB,EAA+C,CAGxF,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAQ,CAAO,OAGjC,WAAU,CAAC,EAA2B,EAAiD,CAGlG,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAU,CAAO,OAGnC,OAAM,CAAC,EAAuB,EAA+C,CACxF,OAAO,MAAM,KAAK,OAAO,EAAQ,CAAO,OAG7B,WAAU,CAAC,EAA2B,EAAiD,CAClG,OAAO,MAAM,KAAK,WAAW,EAAU,CAAO,OAGnC,OAAM,CACjB,EACuB,CAGvB,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,WAAW,CAAQ,OAGhC,cAAa,CAAC,EAAmB,EAAwC,CACpF,IAAM,EAAa,MAAM,KAAK,KAAK,EAE7B,EAAsC,CAC1C,SAAU,GACV,UAAW,IAAI,IACjB,EAEA,GAAI,IAAW,OACb,EAAW,cAAgB,EAG7B,OAAO,MAAM,EAAW,OAAO,EAAW,CAAU,OAGzC,sBAAqB,CAAC,EAAgB,EAAwC,CACzF,IAAM,EAAa,MAAM,KAAK,KAAK,EAE7B,EAAsC,CAC1C,SAAU,GACV,UAAW,IAAI,IACjB,EAEA,GAAI,IAAW,OACb,EAAW,cAAgB,EAG7B,OAAO,MAAM,EAAW,OAAO,CAAE,KAAM,CAAE,GAAI,CAAO,EAAG,SAAU,EAAK,EAAG,CAAU,OAGxE,MAAK,CAAC,EAAiG,CAGlH,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,MAAM,EAAW,CAAE,MAAO,CAAS,EAAI,CAAC,CAAC,EAErE,CA7La,EAAN,GAEF,MAAO,UAAU,GAFf,sGAAM,GCPb,iBAAS,0BAGT,+BAAS,qBAET,gBAAS,gBAGF,MAAM,CAA4B,CAGpB,SAFnB,WAAW,CAEQ,EACjB,CADiB,qBAGN,KAAI,EAAiD,CAChE,OAAO,MAAM,KAAK,SAAS,KAAK,CAAuB,OAG5C,MAAK,EAAkB,CAClC,MAAM,KAAK,SAAS,MAAM,OAGf,KAAI,CACf,EACoD,CACpD,IAAM,EAAa,MAAM,KAAK,KAAK,GAE3B,OAAO,EAAG,QAAQ,IAAK,OAAM,GAAS,EAE1C,EACE,EAAO,IAAU,EAAI,IAAM,EAEjC,GAAI,GAAQ,EAAO,GAAK,GAAS,EAAQ,EACvC,GAAQ,EAAO,GAAK,EAItB,IAAI,EAAc,IAAK,EAAM,UAAU,IAAS,QAAa,CAAE,MAAK,CAAG,EACvE,GAAI,EAAG,CACL,IAAM,EAAmB,CAAC,CAAE,aAAc,EAAM,IAAI,IAAI,CAAE,EAAG,CAAE,YAAa,EAAM,IAAI,IAAI,CAAE,CAAC,EAE7F,EAAc,IACT,EACH,MAAO,EAAK,MACR,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,CACN,EAGF,IAAM,EAAS,MAAM,EAAW,KAAK,CAAW,EAG5C,EAAa,EAAK,MACtB,GAAI,EAAG,CACL,IAAM,EAAmB,CAAC,CAAE,aAAc,EAAM,IAAI,IAAI,CAAE,EAAG,CAAE,YAAa,EAAM,IAAI,IAAI,CAAE,CAAC,EAE7F,EAAa,EAAK,MACd,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,EAGN,IAAM,EAAQ,MAAM,KAAK,MAAM,CAAU,EACnC,EAAa,KAAK,KAAK,EAAQ,CAAK,EAE1C,MAAO,CACL,UAAW,EACX,QACA,aACA,OACA,OACF,OAGW,QAAO,CAAC,EAAqD,CAGxE,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,IAAG,CACd,CAAC,OAGU,UAAS,CAAC,EAA8F,CAGnH,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CACT,CAAC,OAGU,OAAM,CAAC,EAAiC,EAAyD,CAG5G,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAQ,CAAO,OAGjC,WAAU,CACrB,EACA,EACoC,CAGpC,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAU,CAAO,OAGnC,OAAM,CAAC,EAAiC,EAAyD,CAC5G,OAAO,MAAM,KAAK,OAAO,EAAQ,CAAO,OAG7B,WAAU,CACrB,EACA,EACoC,CACpC,OAAO,MAAM,KAAK,WAAW,EAAU,CAAO,OAGnC,gBAAe,CAAC,EAAmC,CAG9D,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,OAAO,EAAI,CACjC,OAAQ,EAAqB,UAC7B,UAAW,IAAI,IACjB,CAAC,OAGU,aAAY,CAAC,EAAY,EAAwC,CAC5E,IAAM,EAAa,MAAM,KAAK,KAAK,EAE7B,EAAsC,CAC1C,OAAQ,EAAqB,MAC/B,EAEA,GAAI,IAAW,OACb,EAAW,YAAc,EAG3B,OAAO,MAAM,EAAW,OAAO,EAAI,CAAU,OAGlC,eAAc,CAAC,EAAY,EAAwC,CAC9E,IAAM,EAAa,MAAM,KAAK,KAAK,EAE7B,EAAsC,CAC1C,OAAQ,EAAqB,QAC/B,EAEA,GAAI,IAAW,OACb,EAAW,YAAc,EAG3B,OAAO,MAAM,EAAW,OAAO,EAAI,CAAU,OAGlC,OAAM,CACjB,EACuB,CAGvB,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,WAAW,CAAQ,OAGhC,MAAK,CAChB,EACiB,CAGjB,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,MAAM,EAAW,CAAE,MAAO,CAAS,EAAI,CAAC,CAAC,EAErE,CA/Ja,EAAN,GAEF,MAAO,UAAU,GAFf,sGAAM,GCRb,iBAAS,0BAIT,gBAAS,gBAGF,MAAM,CAAe,CAGP,SAFnB,WAAW,CAEQ,EACjB,CADiB,qBAGN,KAAI,EAAoC,CACnD,OAAO,MAAM,KAAK,SAAS,KAAK,CAAU,OAG/B,MAAK,EAAkB,CAClC,MAAM,KAAK,SAAS,MAAM,OAGf,KAAI,CACf,EACuC,CACvC,IAAM,EAAa,MAAM,KAAK,KAAK,GAE3B,OAAO,EAAG,QAAQ,IAAK,OAAM,GAAS,EAE1C,EACE,EAAO,IAAU,EAAI,IAAM,EAEjC,GAAI,GAAQ,EAAO,GAAK,GAAS,EAAQ,EACvC,GAAQ,EAAO,GAAK,EAItB,IAAI,EAAc,IAAK,EAAM,UAAU,IAAS,QAAa,CAAE,MAAK,CAAG,EACvE,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,KAAM,EAAM,IAAI,IAAI,CAAE,EACxB,CAAE,UAAW,EAAM,IAAI,IAAI,CAAE,EAC7B,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,EAC5B,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,CAC9B,EAEA,EAAc,IACT,EACH,MAAO,EAAK,MACR,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,CACN,EAGF,IAAM,EAAS,MAAM,EAAW,KAAK,CAAW,EAG5C,EAAa,EAAK,MACtB,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,KAAM,EAAM,IAAI,IAAI,CAAE,EACxB,CAAE,UAAW,EAAM,IAAI,IAAI,CAAE,EAC7B,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,EAC5B,CAAE,SAAU,EAAM,IAAI,IAAI,CAAE,CAC9B,EAEA,EAAa,EAAK,MACd,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,EAGN,IAAM,EAAQ,MAAM,KAAK,MAAM,CAAU,EACnC,EAAa,KAAK,KAAK,EAAQ,CAAK,EAE1C,MAAO,CACL,UAAW,EACX,QACA,aACA,OACA,OACF,OAGW,QAAO,CAAC,EAAwC,CAG3D,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,IAAG,CACd,CAAC,OAGU,UAAS,CAAC,EAAoE,CAGzF,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CACT,CAAC,OAGU,OAAM,CAAC,EAAoB,EAA4C,CAGlF,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAQ,CAAO,OAGjC,WAAU,CAAC,EAAwB,EAA8C,CAG5F,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAU,CAAO,OAGnC,OAAM,CAAC,EAAoB,EAA4C,CAClF,OAAO,MAAM,KAAK,OAAO,EAAQ,CAAO,OAG7B,WAAU,CAAC,EAAwB,EAA8C,CAC5F,OAAO,MAAM,KAAK,WAAW,EAAU,CAAO,OAGnC,OAAM,CAAC,EAAgG,CAGlH,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,WAAW,CAAQ,OAGhC,MAAK,CAAC,EAA2F,CAG5G,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,MAAM,EAAW,CAAE,MAAO,CAAS,EAAI,CAAC,CAAC,EAErE,CA5Ha,EAAN,GAEF,MAAO,UAAU,GAFf,sGAAM,GCPb,iBAAS,0BAIT,gBAAS,cAAO,gBAGT,MAAM,CAAuB,CAGf,SAFnB,WAAW,CAEQ,EACjB,CADiB,qBAGN,KAAI,EAA4C,CAC3D,OAAO,MAAM,KAAK,SAAS,KAAK,CAAkB,OAGvC,MAAK,EAAkB,CAClC,MAAM,KAAK,SAAS,MAAM,OAGf,KAAI,CACf,EAC+C,CAC/C,IAAM,EAAa,MAAM,KAAK,KAAK,GAE3B,OAAO,EAAG,QAAQ,IAAK,OAAM,GAAS,EAE1C,EACE,EAAO,IAAU,EAAI,IAAM,EAEjC,GAAI,GAAQ,EAAO,GAAK,GAAS,EAAQ,EACvC,GAAQ,EAAO,GAAK,EAItB,IAAI,EAAc,IAAK,EAAM,UAAU,IAAS,QAAa,CAAE,MAAK,CAAG,EACvE,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,KAAM,EAAM,IAAI,IAAI,CAAE,EACxB,CAAE,YAAa,EAAM,IAAI,IAAI,CAAE,CACjC,EAEA,EAAc,IACT,EACH,MAAO,EAAK,MACR,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,CACN,EAGF,IAAM,EAAS,MAAM,EAAW,KAAK,CAAW,EAG5C,EAAa,EAAK,MACtB,GAAI,EAAG,CACL,IAAM,EAAmB,CACvB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,MAAO,EAAM,IAAI,IAAI,CAAE,EACzB,CAAE,KAAM,EAAM,IAAI,IAAI,CAAE,EACxB,CAAE,YAAa,EAAM,IAAI,IAAI,CAAE,CACjC,EAEA,EAAa,EAAK,MACd,CAAC,GAAG,EAAiB,IAAI,CAAC,KAAe,IAAK,EAAK,SAAU,CAAU,EAAE,CAAC,EAC1E,EAGN,IAAM,EAAQ,MAAM,KAAK,MAAM,CAAU,EACnC,EAAa,KAAK,KAAK,EAAQ,CAAK,EAE1C,MAAO,CACL,UAAW,EACX,QACA,aACA,OACA,OACF,OAGW,QAAO,CAAC,EAAgD,CAGnE,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,IAAG,CACd,CAAC,OAGU,UAAS,CAAC,EAAoF,CAGzG,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CACT,CAAC,OAGU,YAAW,CAAC,EAAmD,CAG1E,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,QAAO,OAAQ,GAAO,UAAW,EAAS,IAAI,IAAM,CAAE,CACjE,CAAC,OAGU,WAAU,CAAC,EAAkD,CAGxE,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,QAAQ,CAC9B,MAAO,CAAE,OAAM,OAAQ,GAAO,UAAW,EAAS,IAAI,IAAM,CAAE,CAChE,CAAC,OAGU,OAAM,CAAC,EAA4B,EAAoD,CAGlG,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAQ,CAAO,OAGjC,WAAU,CAAC,EAAgC,EAAsD,CAG5G,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,KAAK,EAAU,CAAO,OAGnC,OAAM,CAAC,EAA4B,EAAoD,CAClG,OAAO,MAAM,KAAK,OAAO,EAAQ,CAAO,OAG7B,WAAU,CAAC,EAAgC,EAAsD,CAC5G,OAAO,MAAM,KAAK,WAAW,EAAU,CAAO,OAGnC,WAAU,CAAC,EAAmC,CAGzD,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,OAAO,EAAI,CACjC,OAAQ,GACR,OAAQ,IAAI,IACd,CAAC,OAGU,kBAAiB,CAAC,EAAmC,CAGhE,OAAO,MAFY,MAAM,KAAK,KAAK,GAGhC,mBAAmB,EACnB,OAAO,CAAkB,EACzB,IAAI,CAAE,cAAe,IAAM,oBAAqB,CAAC,EACjD,MAAM,WAAY,CAAE,IAAG,CAAC,EACxB,QAAQ,OAGA,OAAM,CACjB,EACuB,CAGvB,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,WAAW,CAAQ,OAGhC,MAAK,CAChB,EACiB,CAGjB,OAAO,MAFY,MAAM,KAAK,KAAK,GAEX,MAAM,EAAW,CAAE,MAAO,CAAS,EAAI,CAAC,CAAC,EAErE,CApKa,EAAN,GAEF,MAAO,UAAU,GAFf,sGAAM",
12
+ "debugId": "2650EAE646D1240964756E2164756E21",
13
+ "names": []
14
+ }
@@ -0,0 +1,132 @@
1
+ import { ITypeormDatabaseAdapter } from "@ooneex/database";
2
+ import { FilterResultType } from "@ooneex/types";
3
+ import { FindManyOptions, FindOptionsWhere, Repository, SaveOptions, UpdateResult } from "typeorm";
4
+ import { IStatus } from "@ooneex/status";
5
+ import { ITag } from "@ooneex/tag";
6
+ import { IPlaylist, IVideo } from "@ooneex/video";
7
+ import { LocaleType } from "@ooneex/translation";
8
+ import { IBase } from "@ooneex/types";
9
+ declare abstract class BaseEntity implements IBase {
10
+ id: string;
11
+ isLocked?: boolean;
12
+ lockedAt?: Date;
13
+ isBlocked?: boolean;
14
+ blockedAt?: Date;
15
+ blockReason?: string;
16
+ isPublic?: boolean;
17
+ language?: LocaleType;
18
+ createdAt?: Date;
19
+ updatedAt?: Date;
20
+ deletedAt?: Date;
21
+ }
22
+ declare class VideoPlaylistEntity extends BaseEntity implements IPlaylist {
23
+ name: string;
24
+ description?: string;
25
+ videos?: IVideo[];
26
+ tags?: ITag[];
27
+ status?: IStatus;
28
+ }
29
+ declare class VideoPlaylistRepository {
30
+ private readonly database;
31
+ constructor(database: ITypeormDatabaseAdapter);
32
+ open(): Promise<Repository<VideoPlaylistEntity>>;
33
+ close(): Promise<void>;
34
+ find(criteria: FindManyOptions<VideoPlaylistEntity> & {
35
+ page?: number;
36
+ limit?: number;
37
+ q?: string;
38
+ }): Promise<FilterResultType<VideoPlaylistEntity>>;
39
+ findOne(id: string): Promise<VideoPlaylistEntity | null>;
40
+ findOneBy(criteria: FindOptionsWhere<VideoPlaylistEntity>): Promise<VideoPlaylistEntity | null>;
41
+ create(entity: VideoPlaylistEntity, options?: SaveOptions): Promise<VideoPlaylistEntity>;
42
+ createMany(entities: VideoPlaylistEntity[], options?: SaveOptions): Promise<VideoPlaylistEntity[]>;
43
+ update(entity: VideoPlaylistEntity, options?: SaveOptions): Promise<VideoPlaylistEntity>;
44
+ updateMany(entities: VideoPlaylistEntity[], options?: SaveOptions): Promise<VideoPlaylistEntity[]>;
45
+ delete(criteria: FindOptionsWhere<VideoPlaylistEntity> | FindOptionsWhere<VideoPlaylistEntity>[]): Promise<UpdateResult>;
46
+ count(criteria?: FindOptionsWhere<VideoPlaylistEntity> | FindOptionsWhere<VideoPlaylistEntity>[]): Promise<number>;
47
+ }
48
+ import { ITypeormDatabaseAdapter as ITypeormDatabaseAdapter2 } from "@ooneex/database";
49
+ import { FilterResultType as FilterResultType2 } from "@ooneex/types";
50
+ import { FindManyOptions as FindManyOptions2, FindOptionsWhere as FindOptionsWhere2, Repository as Repository2, SaveOptions as SaveOptions2, UpdateResult as UpdateResult2 } from "typeorm";
51
+ import { IVideo as IVideo2, IVideoProgress } from "@ooneex/video";
52
+ declare class VideoProgressEntity extends BaseEntity implements IVideoProgress {
53
+ video?: IVideo2;
54
+ userId: string;
55
+ currentTime: number;
56
+ duration?: number;
57
+ completed?: boolean;
58
+ lastWatched?: string;
59
+ }
60
+ declare class VideoProgressRepository {
61
+ private readonly database;
62
+ constructor(database: ITypeormDatabaseAdapter2);
63
+ open(): Promise<Repository2<VideoProgressEntity>>;
64
+ close(): Promise<void>;
65
+ find(criteria: FindManyOptions2<VideoProgressEntity> & {
66
+ page?: number;
67
+ limit?: number;
68
+ }): Promise<FilterResultType2<VideoProgressEntity>>;
69
+ findOne(id: string): Promise<VideoProgressEntity | null>;
70
+ findOneBy(criteria: FindOptionsWhere2<VideoProgressEntity>): Promise<VideoProgressEntity | null>;
71
+ create(entity: VideoProgressEntity, options?: SaveOptions2): Promise<VideoProgressEntity>;
72
+ createMany(entities: VideoProgressEntity[], options?: SaveOptions2): Promise<VideoProgressEntity[]>;
73
+ update(entity: VideoProgressEntity, options?: SaveOptions2): Promise<VideoProgressEntity>;
74
+ updateMany(entities: VideoProgressEntity[], options?: SaveOptions2): Promise<VideoProgressEntity[]>;
75
+ delete(criteria: FindOptionsWhere2<VideoProgressEntity> | FindOptionsWhere2<VideoProgressEntity>[]): Promise<UpdateResult2>;
76
+ count(criteria?: FindOptionsWhere2<VideoProgressEntity> | FindOptionsWhere2<VideoProgressEntity>[]): Promise<number>;
77
+ }
78
+ import { ITypeormDatabaseAdapter as ITypeormDatabaseAdapter3 } from "@ooneex/database";
79
+ import { FilterResultType as FilterResultType3 } from "@ooneex/types";
80
+ import { FindManyOptions as FindManyOptions3, FindOptionsWhere as FindOptionsWhere3, Repository as Repository3, SaveOptions as SaveOptions3, UpdateResult as UpdateResult3 } from "typeorm";
81
+ import { ICategory } from "@ooneex/category";
82
+ import { IStatus as IStatus2 } from "@ooneex/status";
83
+ import { ITag as ITag2 } from "@ooneex/tag";
84
+ import { AudioChannelsType, AudioCodecType, EVideoCodec, EVideoFormat, EVideoQuality, EVideoResolution, IVideo as IVideo3 } from "@ooneex/video";
85
+ declare class VideoEntity extends BaseEntity implements IVideo3 {
86
+ title: string;
87
+ subtitle?: string;
88
+ releaseDate?: string;
89
+ description?: string;
90
+ duration?: number;
91
+ category?: ICategory;
92
+ genres?: string[];
93
+ size?: number;
94
+ url?: string;
95
+ posterImage?: string;
96
+ thumbnailImage?: string;
97
+ resolution?: EVideoResolution;
98
+ quality?: EVideoQuality;
99
+ format?: EVideoFormat;
100
+ codec?: EVideoCodec;
101
+ bitrate?: number;
102
+ frameRate?: number;
103
+ audioCodec?: AudioCodecType;
104
+ audioChannels?: AudioChannelsType;
105
+ averageRating?: number;
106
+ ratingsCount?: number;
107
+ contentRating?: string;
108
+ context?: string;
109
+ contextId?: string;
110
+ tags?: ITag2[];
111
+ status?: IStatus2;
112
+ }
113
+ declare class VideoRepository {
114
+ private readonly database;
115
+ constructor(database: ITypeormDatabaseAdapter3);
116
+ open(): Promise<Repository3<VideoEntity>>;
117
+ close(): Promise<void>;
118
+ find(criteria: FindManyOptions3<VideoEntity> & {
119
+ page?: number;
120
+ limit?: number;
121
+ q?: string;
122
+ }): Promise<FilterResultType3<VideoEntity>>;
123
+ findOne(id: string): Promise<VideoEntity | null>;
124
+ findOneBy(criteria: FindOptionsWhere3<VideoEntity>): Promise<VideoEntity | null>;
125
+ create(entity: VideoEntity, options?: SaveOptions3): Promise<VideoEntity>;
126
+ createMany(entities: VideoEntity[], options?: SaveOptions3): Promise<VideoEntity[]>;
127
+ update(entity: VideoEntity, options?: SaveOptions3): Promise<VideoEntity>;
128
+ updateMany(entities: VideoEntity[], options?: SaveOptions3): Promise<VideoEntity[]>;
129
+ delete(criteria: FindOptionsWhere3<VideoEntity> | FindOptionsWhere3<VideoEntity>[]): Promise<UpdateResult3>;
130
+ count(criteria?: FindOptionsWhere3<VideoEntity> | FindOptionsWhere3<VideoEntity>[]): Promise<number>;
131
+ }
132
+ export { VideoRepository, VideoProgressRepository, VideoPlaylistRepository };
@@ -0,0 +1,4 @@
1
+ // @bun
2
+ import{A as j,B as v,z as w}from"../../../shared/chunk-sd6mmec6.js";import"../../../shared/chunk-zmzz7hqq.js";import"../../../shared/chunk-764bzjhz.js";import{V as N,W as Q,X as S}from"../../../shared/chunk-j7nprmyh.js";import{inject as W}from"@ooneex/container";import{ILike as Z}from"typeorm";class _{database;constructor(x){this.database=x}async open(){return await this.database.open(j)}async close(){await this.database.close()}async find(x){let z=await this.open(),{page:A=1,limit:B=100,q:D,...F}=x,H,K=B===0?100:B;if(A&&A>0&&B&&B>0)H=(A-1)*K;let J={...F,take:K,...H!==void 0&&{skip:H}};if(D){let G=[{name:Z(`%${D}%`)},{description:Z(`%${D}%`)}];J={...J,where:F.where?[...G.map((M)=>({...F.where,...M}))]:G}}let U=await z.find(J),X=F.where;if(D){let G=[{name:Z(`%${D}%`)},{description:Z(`%${D}%`)}];X=F.where?[...G.map((M)=>({...F.where,...M}))]:G}let Y=await this.count(X),f=Math.ceil(Y/B);return{resources:U,total:Y,totalPages:f,page:A,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async create(x,z){return await(await this.open()).save(x,z)}async createMany(x,z){return await(await this.open()).save(x,z)}async update(x,z){return await this.create(x,z)}async updateMany(x,z){return await this.createMany(x,z)}async delete(x){return await(await this.open()).softDelete(x)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}_=N([Q(0,W("database")),S("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],_);import{inject as E}from"@ooneex/container";class ${database;constructor(x){this.database=x}async open(){return await this.database.open(v)}async close(){await this.database.close()}async find(x){let z=await this.open(),{page:A=1,limit:B=100,...D}=x,F,H=B===0?100:B;if(A&&A>0&&B&&B>0)F=(A-1)*H;let K=await z.find({...D,take:H,...F!==void 0&&{skip:F}}),J=await this.count(D.where),U=Math.ceil(J/B);return{resources:K,total:J,totalPages:U,page:A,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async create(x,z){return await(await this.open()).save(x,z)}async createMany(x,z){return await(await this.open()).save(x,z)}async update(x,z){return await this.create(x,z)}async updateMany(x,z){return await this.createMany(x,z)}async delete(x){return await(await this.open()).softDelete(x)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}$=N([Q(0,E("database")),S("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],$);import{inject as O}from"@ooneex/container";import{ILike as T}from"typeorm";class b{database;constructor(x){this.database=x}async open(){return await this.database.open(w)}async close(){await this.database.close()}async find(x){let z=await this.open(),{page:A=1,limit:B=100,q:D,...F}=x,H,K=B===0?100:B;if(A&&A>0&&B&&B>0)H=(A-1)*K;let J={...F,take:K,...H!==void 0&&{skip:H}};if(D){let G=[{title:T(`%${D}%`)},{subtitle:T(`%${D}%`)},{description:T(`%${D}%`)}];J={...J,where:F.where?[...G.map((M)=>({...F.where,...M}))]:G}}let U=await z.find(J),X=F.where;if(D){let G=[{title:T(`%${D}%`)},{subtitle:T(`%${D}%`)},{description:T(`%${D}%`)}];X=F.where?[...G.map((M)=>({...F.where,...M}))]:G}let Y=await this.count(X),f=Math.ceil(Y/B);return{resources:U,total:Y,totalPages:f,page:A,limit:B}}async findOne(x){return await(await this.open()).findOne({where:{id:x}})}async findOneBy(x){return await(await this.open()).findOne({where:x})}async create(x,z){return await(await this.open()).save(x,z)}async createMany(x,z){return await(await this.open()).save(x,z)}async update(x,z){return await this.create(x,z)}async updateMany(x,z){return await this.createMany(x,z)}async delete(x){return await(await this.open()).softDelete(x)}async count(x){return await(await this.open()).count(x?{where:x}:{})}}b=N([Q(0,O("database")),S("design:paramtypes",[typeof ITypeormDatabaseAdapter==="undefined"?Object:ITypeormDatabaseAdapter])],b);export{b as VideoRepository,$ as VideoProgressRepository,_ as VideoPlaylistRepository};
3
+
4
+ //# debugId=59AB9CEDA5BB815B64756E2164756E21