@lyxa.ai/core 1.0.38 → 1.0.40

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 (198) hide show
  1. package/dist/index.js +6 -1
  2. package/dist/index.js.map +1 -1
  3. package/dist/libraries/auth/index.js.map +1 -1
  4. package/dist/libraries/auth/refreshtoken.js.map +1 -1
  5. package/dist/libraries/auth/repository.js.map +1 -1
  6. package/dist/libraries/configuration/index.js.map +1 -1
  7. package/dist/libraries/configuration/types/EnvironmentConfigurationType.js.map +1 -1
  8. package/dist/libraries/dispatcher/index.js.map +1 -1
  9. package/dist/libraries/event/BaseEvent.js.map +1 -1
  10. package/dist/libraries/event/decorators/metadata.js.map +1 -1
  11. package/dist/libraries/event/decorators/subscribe.js.map +1 -1
  12. package/dist/libraries/event/index.js.map +1 -1
  13. package/dist/libraries/event/registry/SubscriptionRegistry.js.map +1 -1
  14. package/dist/libraries/event/test/OrderCreationEvent.js.map +1 -1
  15. package/dist/libraries/firebase/index.js.map +1 -1
  16. package/dist/libraries/index.d.ts +2 -0
  17. package/dist/libraries/index.js +4 -0
  18. package/dist/libraries/index.js.map +1 -1
  19. package/dist/libraries/logger/index.js.map +1 -1
  20. package/dist/libraries/map/index.d.ts +2 -0
  21. package/dist/libraries/map/index.js +19 -0
  22. package/dist/libraries/map/index.js.map +1 -0
  23. package/dist/libraries/map/interfaces/IMapService.d.ts +31 -0
  24. package/dist/libraries/map/interfaces/IMapService.js +3 -0
  25. package/dist/libraries/map/interfaces/IMapService.js.map +1 -0
  26. package/dist/libraries/map/mapService.d.ts +8 -0
  27. package/dist/libraries/map/mapService.js +45 -0
  28. package/dist/libraries/map/mapService.js.map +1 -0
  29. package/dist/libraries/map/providers/google-maps.d.ts +7 -0
  30. package/dist/libraries/map/providers/google-maps.js +134 -0
  31. package/dist/libraries/map/providers/google-maps.js.map +1 -0
  32. package/dist/libraries/map/providers/index.d.ts +1 -0
  33. package/dist/libraries/map/providers/index.js +18 -0
  34. package/dist/libraries/map/providers/index.js.map +1 -0
  35. package/dist/libraries/mongo/index.js.map +1 -1
  36. package/dist/libraries/mongo/models/activity-log.model.js.map +1 -1
  37. package/dist/libraries/mongo/models/admin-access-control.model.js.map +1 -1
  38. package/dist/libraries/mongo/models/admin.model.js.map +1 -1
  39. package/dist/libraries/mongo/models/app-screen-setting.model.js.map +1 -1
  40. package/dist/libraries/mongo/models/attribute.model.js.map +1 -1
  41. package/dist/libraries/mongo/models/banner.model.js.map +1 -1
  42. package/dist/libraries/mongo/models/base/base-review.model.js.map +1 -1
  43. package/dist/libraries/mongo/models/bob-finance.model.js.map +1 -1
  44. package/dist/libraries/mongo/models/brand.model.js.map +1 -1
  45. package/dist/libraries/mongo/models/card.model.js.map +1 -1
  46. package/dist/libraries/mongo/models/cart-participant.model.js.map +1 -1
  47. package/dist/libraries/mongo/models/cart.model.js.map +1 -1
  48. package/dist/libraries/mongo/models/category.model.js.map +1 -1
  49. package/dist/libraries/mongo/models/core-auth-identity.model.js.map +1 -1
  50. package/dist/libraries/mongo/models/core-user.model.js.map +1 -1
  51. package/dist/libraries/mongo/models/counter.model.js.map +1 -1
  52. package/dist/libraries/mongo/models/coupon.model.js.map +1 -1
  53. package/dist/libraries/mongo/models/deal-setting.model.js.map +1 -1
  54. package/dist/libraries/mongo/models/dish.model.js.map +1 -1
  55. package/dist/libraries/mongo/models/embedded/charge.model.js.map +1 -1
  56. package/dist/libraries/mongo/models/embedded/delivery-charge-setting.model.d.ts +10 -0
  57. package/dist/libraries/mongo/models/embedded/{charge-setting.model.js → delivery-charge-setting.model.js} +16 -25
  58. package/dist/libraries/mongo/models/embedded/delivery-charge-setting.model.js.map +1 -0
  59. package/dist/libraries/mongo/models/embedded/delivery-info.model.js.map +1 -1
  60. package/dist/libraries/mongo/models/embedded/line-item-attribute.model.js.map +1 -1
  61. package/dist/libraries/mongo/models/embedded/marketing-cut.model.d.ts +17 -0
  62. package/dist/libraries/mongo/models/embedded/marketing-cut.model.js +69 -0
  63. package/dist/libraries/mongo/models/embedded/marketing-cut.model.js.map +1 -0
  64. package/dist/libraries/mongo/models/embedded/order-cancel.model.js.map +1 -1
  65. package/dist/libraries/mongo/models/embedded/order-pricing.model.d.ts +2 -6
  66. package/dist/libraries/mongo/models/embedded/order-pricing.model.js +4 -24
  67. package/dist/libraries/mongo/models/embedded/order-pricing.model.js.map +1 -1
  68. package/dist/libraries/mongo/models/embedded/otp-fields.model.js.map +1 -1
  69. package/dist/libraries/mongo/models/embedded/parent-document.model.js.map +1 -1
  70. package/dist/libraries/mongo/models/embedded/payment-attempt.model.js.map +1 -1
  71. package/dist/libraries/mongo/models/embedded/payment-infromation.model.js +3 -8
  72. package/dist/libraries/mongo/models/embedded/payment-infromation.model.js.map +1 -1
  73. package/dist/libraries/mongo/models/embedded/price-breakdown.model.js.map +1 -1
  74. package/dist/libraries/mongo/models/embedded/profit.model.d.ts +14 -0
  75. package/dist/libraries/mongo/models/embedded/profit.model.js +63 -0
  76. package/dist/libraries/mongo/models/embedded/profit.model.js.map +1 -0
  77. package/dist/libraries/mongo/models/embedded/rider-equipment.model.js.map +1 -1
  78. package/dist/libraries/mongo/models/embedded/shop-document.model.js.map +1 -1
  79. package/dist/libraries/mongo/models/embedded/status-timeline.model.js.map +1 -1
  80. package/dist/libraries/mongo/models/embedded/vat.model.d.ts +4 -0
  81. package/dist/libraries/mongo/models/embedded/vat.model.js +27 -0
  82. package/dist/libraries/mongo/models/embedded/vat.model.js.map +1 -0
  83. package/dist/libraries/mongo/models/embedded/zone-geometry.mode.js.map +1 -1
  84. package/dist/libraries/mongo/models/faq.model.js.map +1 -1
  85. package/dist/libraries/mongo/models/favourite.model.js.map +1 -1
  86. package/dist/libraries/mongo/models/featured-setting.model.js.map +1 -1
  87. package/dist/libraries/mongo/models/filter-container.model.js.map +1 -1
  88. package/dist/libraries/mongo/models/finance-settlement.model.d.ts +18 -0
  89. package/dist/libraries/mongo/models/finance-settlement.model.js +68 -0
  90. package/dist/libraries/mongo/models/finance-settlement.model.js.map +1 -0
  91. package/dist/libraries/mongo/models/gallery.model.js.map +1 -1
  92. package/dist/libraries/mongo/models/index.d.ts +28 -16
  93. package/dist/libraries/mongo/models/index.js +30 -18
  94. package/dist/libraries/mongo/models/index.js.map +1 -1
  95. package/dist/libraries/mongo/models/line-item.model.js.map +1 -1
  96. package/dist/libraries/mongo/models/list-container.model.js.map +1 -1
  97. package/dist/libraries/mongo/models/loyalty-point-category.model.js.map +1 -1
  98. package/dist/libraries/mongo/models/loyalty-point-setting.model.js.map +1 -1
  99. package/dist/libraries/mongo/models/marketing.model.js +3 -0
  100. package/dist/libraries/mongo/models/marketing.model.js.map +1 -1
  101. package/dist/libraries/mongo/models/meal-plan.model.js.map +1 -1
  102. package/dist/libraries/mongo/models/notification.model.js.map +1 -1
  103. package/dist/libraries/mongo/models/nutrition.model.js.map +1 -1
  104. package/dist/libraries/mongo/models/order-delivery.model.js.map +1 -1
  105. package/dist/libraries/mongo/models/order-finance.model.d.ts +12 -0
  106. package/dist/libraries/mongo/models/order-finance.model.js +45 -0
  107. package/dist/libraries/mongo/models/order-finance.model.js.map +1 -0
  108. package/dist/libraries/mongo/models/order-payment.model.d.ts +0 -4
  109. package/dist/libraries/mongo/models/order-payment.model.js +2 -14
  110. package/dist/libraries/mongo/models/order-payment.model.js.map +1 -1
  111. package/dist/libraries/mongo/models/order.model.js.map +1 -1
  112. package/dist/libraries/mongo/models/parent.model.js.map +1 -1
  113. package/dist/libraries/mongo/models/product-marketing.model.js.map +1 -1
  114. package/dist/libraries/mongo/models/product.model.js.map +1 -1
  115. package/dist/libraries/mongo/models/providers/areeba-card.model.js.map +1 -1
  116. package/dist/libraries/mongo/models/providers/buy1-get1-marketing.model.js.map +1 -1
  117. package/dist/libraries/mongo/models/providers/core-apple-auth-identity.model.js.map +1 -1
  118. package/dist/libraries/mongo/models/providers/core-email-auth-identity.model.js.map +1 -1
  119. package/dist/libraries/mongo/models/providers/core-google-auth-identity.model.js.map +1 -1
  120. package/dist/libraries/mongo/models/providers/core-phone-auth-identity.model.js.map +1 -1
  121. package/dist/libraries/mongo/models/providers/courier-order-finance.model.d.ts +7 -0
  122. package/dist/libraries/mongo/models/providers/courier-order-finance.model.js +26 -0
  123. package/dist/libraries/mongo/models/providers/courier-order-finance.model.js.map +1 -0
  124. package/dist/libraries/mongo/models/providers/courier-order.model.js.map +1 -1
  125. package/dist/libraries/mongo/models/providers/custom-coupon.model.js.map +1 -1
  126. package/dist/libraries/mongo/models/providers/discount-marketing.model.d.ts +1 -1
  127. package/dist/libraries/mongo/models/providers/discount-marketing.model.js +6 -2
  128. package/dist/libraries/mongo/models/providers/discount-marketing.model.js.map +1 -1
  129. package/dist/libraries/mongo/models/providers/featured-marketing.model.js.map +1 -1
  130. package/dist/libraries/mongo/models/providers/free-delivery-marketing.model.js.map +1 -1
  131. package/dist/libraries/mongo/models/providers/global-coupon.model.js.map +1 -1
  132. package/dist/libraries/mongo/models/providers/individual-store-coupon.model.d.ts +1 -1
  133. package/dist/libraries/mongo/models/providers/individual-store-coupon.model.js +1 -1
  134. package/dist/libraries/mongo/models/providers/individual-store-coupon.model.js.map +1 -1
  135. package/dist/libraries/mongo/models/providers/individual-user-coupon.model.js.map +1 -1
  136. package/dist/libraries/mongo/models/providers/loyalty-point-marketing.model.js.map +1 -1
  137. package/dist/libraries/mongo/models/providers/punch-marketing.model.js.map +1 -1
  138. package/dist/libraries/mongo/models/providers/referral-code-coupon.model.js.map +1 -1
  139. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.d.ts +1 -1
  140. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js +3 -3
  141. package/dist/libraries/mongo/models/providers/referral-reward-coupon.model.js.map +1 -1
  142. package/dist/libraries/mongo/models/providers/regular-order-finance.model.d.ts +18 -0
  143. package/dist/libraries/mongo/models/providers/regular-order-finance.model.js +73 -0
  144. package/dist/libraries/mongo/models/providers/regular-order-finance.model.js.map +1 -0
  145. package/dist/libraries/mongo/models/providers/regular-order.model.js.map +1 -1
  146. package/dist/libraries/mongo/models/punch-marketing-history.model.js.map +1 -1
  147. package/dist/libraries/mongo/models/rating-setting.model.js.map +1 -1
  148. package/dist/libraries/mongo/models/referral-setting.model.js.map +1 -1
  149. package/dist/libraries/mongo/models/request-area.model.js.map +1 -1
  150. package/dist/libraries/mongo/models/rider-review.model.js.map +1 -1
  151. package/dist/libraries/mongo/models/rider-timeout.model.js.map +1 -1
  152. package/dist/libraries/mongo/models/rider-tracking.model.js.map +1 -1
  153. package/dist/libraries/mongo/models/rider.model.js.map +1 -1
  154. package/dist/libraries/mongo/models/role.model.js.map +1 -1
  155. package/dist/libraries/mongo/models/setting.model.d.ts +2 -2
  156. package/dist/libraries/mongo/models/setting.model.js +5 -5
  157. package/dist/libraries/mongo/models/setting.model.js.map +1 -1
  158. package/dist/libraries/mongo/models/shared/address.model.js.map +1 -1
  159. package/dist/libraries/mongo/models/shared/geo-location.model.js.map +1 -1
  160. package/dist/libraries/mongo/models/shared/work-hour.model.js.map +1 -1
  161. package/dist/libraries/mongo/models/shop-access-control.model.js.map +1 -1
  162. package/dist/libraries/mongo/models/shop-category.model.js.map +1 -1
  163. package/dist/libraries/mongo/models/shop-meal-plan.model.js.map +1 -1
  164. package/dist/libraries/mongo/models/shop-review.model.js.map +1 -1
  165. package/dist/libraries/mongo/models/shop.model.js.map +1 -1
  166. package/dist/libraries/mongo/models/subscription-setting.model.js.map +1 -1
  167. package/dist/libraries/mongo/models/subscription.model.js.map +1 -1
  168. package/dist/libraries/mongo/models/tag.model.js.map +1 -1
  169. package/dist/libraries/mongo/models/user.model.js.map +1 -1
  170. package/dist/libraries/mongo/models/zone.model.js.map +1 -1
  171. package/dist/libraries/mongo/plugins/soft-delete-plugin.js.map +1 -1
  172. package/dist/libraries/redis/index.js.map +1 -1
  173. package/dist/libraries/secrets/index.js.map +1 -1
  174. package/dist/libraries/trpc/context.js.map +1 -1
  175. package/dist/libraries/trpc/index.js.map +1 -1
  176. package/dist/libraries/trpc/middlewares/auth.js.map +1 -1
  177. package/dist/libraries/trpc/middlewares/cors.js.map +1 -1
  178. package/dist/libraries/trpc/middlewares/phone-verified.js.map +1 -1
  179. package/dist/libraries/twilio/index.js.map +1 -1
  180. package/dist/libraries/upload/index.js.map +1 -1
  181. package/dist/utilities/common/password.js.map +1 -1
  182. package/dist/utilities/common/week.js.map +1 -1
  183. package/dist/utilities/enum.d.ts +12 -1
  184. package/dist/utilities/enum.js +14 -2
  185. package/dist/utilities/enum.js.map +1 -1
  186. package/dist/utilities/error-handler.js.map +1 -1
  187. package/dist/utilities/error-middleware.js.map +1 -1
  188. package/dist/utilities/pagination.js.map +1 -1
  189. package/dist/utilities/response.js.map +1 -1
  190. package/dist/utilities/search.js.map +1 -1
  191. package/dist/utilities/transformers.js.map +1 -1
  192. package/dist/utilities/validation/common-validation.d.ts +7 -7
  193. package/dist/utilities/validation/common-validation.js.map +1 -1
  194. package/dist/utilities/validation/global-validation.js.map +1 -1
  195. package/dist/utilities/validation/index.js.map +1 -1
  196. package/package.json +52 -50
  197. package/dist/libraries/mongo/models/embedded/charge-setting.model.d.ts +0 -14
  198. package/dist/libraries/mongo/models/embedded/charge-setting.model.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"soft-delete-plugin.js","sourceRoot":"/","sources":["libraries/mongo/plugins/soft-delete-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema, Query, Model } from 'mongoose';\r\nimport { getModelForClass, ReturnModelType, mongoose } from '@typegoose/typegoose';\r\nimport { AnyParamConstructor } from '@typegoose/typegoose/lib/types';\r\n\r\n/**\r\n * Interface for models with soft delete capabilities\r\n */\r\nexport interface SoftDeleteModel<T> extends Model<T> {\r\n\tsoftDelete(_id: mongoose.Types.ObjectId): Promise<any>;\r\n\tsoftDeleteOne(filter: object): Promise<any>;\r\n\tsoftDeleteMany(filter?: object): Promise<any>;\r\n\tdeleteRecord(filter: object, softDelete: boolean): Promise<any>;\r\n\tdeleteRecords(filter: object, softDelete: boolean): Promise<any>;\r\n\trestore(_id: mongoose.Types.ObjectId): Promise<any>;\r\n\trestoreOne(filter: object): Promise<any>;\r\n\trestoreMany(filter?: object): Promise<any>;\r\n\tfindWithDeleted(filter?: object): any;\r\n\tfindDeleted(filter?: object): any;\r\n}\r\n\r\n/**\r\n * Base class for models with soft delete functionality\r\n */\r\nexport class SoftDeleteBase {\r\n\tdeletedAt?: Date | null;\r\n}\r\n\r\n/**\r\n * SoftDelete class providing soft deletion functionality for mongoose models\r\n */\r\nexport class SoftDelete {\r\n\t/**\r\n\t * Apply soft delete plugin to a specific schema\r\n\t * @param schema Mongoose schema to enhance with soft delete functionality\r\n\t */\r\n\tpublic static applyToSchema(schema: Schema): void {\r\n\t\t// Add deletedAt field if it doesn't exist\r\n\t\tif (!schema.path('deletedAt')) {\r\n\t\t\tschema.add({\r\n\t\t\t\tdeletedAt: {\r\n\t\t\t\t\ttype: Date,\r\n\t\t\t\t\tdefault: null,\r\n\t\t\t\t\tindex: true,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Add schema middleware\r\n\t\tthis.addQueryMiddleware(schema);\r\n\r\n\t\t// Add instance methods\r\n\t\tthis.addInstanceMethods(schema);\r\n\r\n\t\t// Add static methods\r\n\t\tthis.addStaticMethods(schema);\r\n\t}\r\n\r\n\t/**\r\n\t * Apply soft delete plugin globally to all mongoose schemas\r\n\t */\r\n\tpublic static applyGlobally(): void {\r\n\t\tconst mongoose = require('mongoose');\r\n\t\tmongoose.plugin((schema: Schema) => this.applyToSchema(schema));\r\n\t}\r\n\r\n\t/**\r\n\t * Create a model with soft delete capabilities and proper TypeScript types\r\n\t * @param modelClass The class to create a model from\r\n\t * @returns A model with soft delete functionality\r\n\t */\r\n\tpublic static createModel<T extends SoftDeleteBase>(\r\n\t\tmodelClass: AnyParamConstructor<T>\r\n\t): SoftDeleteModel<T> & ReturnModelType<AnyParamConstructor<T>> {\r\n\t\tconst model = getModelForClass(modelClass);\r\n\t\treturn model as any; // The plugin adds the methods, we just need to tell TypeScript they exist\r\n\t}\r\n\r\n\t/**\r\n\t * Add query middleware to filter out soft-deleted documents\r\n\t * @param schema Schema to add middleware to\r\n\t */\r\n\tprivate static addQueryMiddleware(schema: Schema): void {\r\n\t\tconst queryMiddleware = function (this: Query<any, any>) {\r\n\t\t\tif (!this.getQuery().deletedAt) {\r\n\t\t\t\tthis.where({ deletedAt: null });\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Apply middleware to relevant query methods\r\n\t\tschema.pre('find', queryMiddleware);\r\n\t\tschema.pre('findOne', queryMiddleware);\r\n\t\tschema.pre('findOneAndUpdate', queryMiddleware);\r\n\t\tschema.pre('findOneAndDelete', queryMiddleware);\r\n\t\tschema.pre('findOneAndReplace', queryMiddleware);\r\n\t\tschema.pre('updateOne', queryMiddleware);\r\n\t\tschema.pre('updateMany', queryMiddleware);\r\n\t\t// TypeScript workaround for count hook\r\n\t\t(schema as any).pre('count', queryMiddleware);\r\n\t\tschema.pre('countDocuments', queryMiddleware);\r\n\t\t(schema as any).pre('exists', queryMiddleware);\r\n\r\n\t\t// Override findById to respect soft delete\r\n\t\tschema.statics.findById = function (_id: mongoose.Types.ObjectId, projection?: any, options?: any) {\r\n\t\t\treturn this.findOne({ _id, deletedAt: null }, projection, options);\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Add instance methods for soft delete operations\r\n\t * @param schema Schema to add methods to\r\n\t */\r\n\tprivate static addInstanceMethods(schema: Schema): void {\r\n\t\tschema.methods.softDelete = function () {\r\n\t\t\tthis.deletedAt = new Date();\r\n\t\t\treturn this.save();\r\n\t\t};\r\n\r\n\t\tschema.methods.restore = function () {\r\n\t\t\tthis.deletedAt = null;\r\n\t\t\treturn this.save();\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Add static methods for soft delete operations\r\n\t * @param schema Schema to add methods to\r\n\t */\r\n\tprivate static addStaticMethods(schema: Schema): void {\r\n\t\tschema.statics.softDelete = async function (_id: mongoose.Types.ObjectId) {\r\n\t\t\tconst result = await this.updateOne({ _id }, { deletedAt: new Date() });\r\n\t\t\treturn result.modifiedCount > 0;\r\n\t\t};\r\n\r\n\t\tschema.statics.softDeleteOne = async function (filter: object) {\r\n\t\t\tconst result = await this.updateOne(filter, { deletedAt: new Date() });\r\n\t\t\treturn result.modifiedCount > 0;\r\n\t\t};\r\n\r\n\t\tschema.statics.softDeleteMany = function (filter = {}) {\r\n\t\t\treturn this.updateMany(filter, { deletedAt: new Date() });\r\n\t\t};\r\n\r\n\t\tschema.statics.deleteRecord = async function (filter: object, softDelete: boolean) {\r\n\t\t\tif (softDelete) {\r\n\t\t\t\tconst result = await this.updateOne({ ...filter, deletedAt: null }, { deletedAt: new Date() }).lean();\r\n\t\t\t\treturn Boolean(result.modifiedCount);\r\n\t\t\t} else {\r\n\t\t\t\tconst result = await this.deleteOne(filter).lean();\r\n\t\t\t\treturn Boolean(result.deletedCount);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tschema.statics.deleteRecords = async function (filter: object, softDelete: boolean) {\r\n\t\t\tif (softDelete) {\r\n\t\t\t\tconst result = await this.updateMany(\r\n\t\t\t\t\t{ ...filter, deletedAt: null },\r\n\t\t\t\t\t{ deletedAt: new Date() }\r\n\t\t\t\t).lean();\r\n\t\t\t\treturn Boolean(result.modifiedCount);\r\n\t\t\t} else {\r\n\t\t\t\tconst result = await this.deleteMany(filter).lean();\r\n\t\t\t\treturn Boolean(result.deletedCount);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tschema.statics.restore = function (_id: mongoose.Types.ObjectId) {\r\n\t\t\treturn this.updateOne({ _id }, { deletedAt: null });\r\n\t\t};\r\n\r\n\t\tschema.statics.restoreOne = function (filter: object) {\r\n\t\t\treturn this.updateOne(filter, { deletedAt: null });\r\n\t\t};\r\n\r\n\t\tschema.statics.restoreMany = function (filter = {}) {\r\n\t\t\treturn this.updateMany(filter, { deletedAt: null });\r\n\t\t};\r\n\r\n\t\tschema.statics.findWithDeleted = function (filter = {}) {\r\n\t\t\treturn this.find(filter);\r\n\t\t};\r\n\r\n\t\tschema.statics.findDeleted = function (filter = {}) {\r\n\t\t\treturn this.find({ ...filter, deletedAt: { $ne: null } });\r\n\t\t};\r\n\t}\r\n}\r\n\r\n// Export convenience functions with the same names as before for backward compatibility\r\nexport const softDeletePlugin = (schema: Schema): void => SoftDelete.applyToSchema(schema);\r\nexport const applySoftDeletePlugin = (): void => SoftDelete.applyGlobally();\r\nexport const createSoftDeleteModel = <T extends SoftDeleteBase>(\r\n\tmodelClass: AnyParamConstructor<T>\r\n): SoftDeleteModel<T> & ReturnModelType<AnyParamConstructor<T>> => SoftDelete.createModel(modelClass);\r\n"]}
1
+ {"version":3,"file":"soft-delete-plugin.js","sourceRoot":"/","sources":["libraries/mongo/plugins/soft-delete-plugin.ts"],"names":[],"mappings":"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","sourcesContent":["import { Schema, Query, Model } from 'mongoose';\nimport { getModelForClass, ReturnModelType, mongoose } from '@typegoose/typegoose';\nimport { AnyParamConstructor } from '@typegoose/typegoose/lib/types';\n\n/**\n * Interface for models with soft delete capabilities\n */\nexport interface SoftDeleteModel<T> extends Model<T> {\n\tsoftDelete(_id: mongoose.Types.ObjectId): Promise<any>;\n\tsoftDeleteOne(filter: object): Promise<any>;\n\tsoftDeleteMany(filter?: object): Promise<any>;\n\tdeleteRecord(filter: object, softDelete: boolean): Promise<any>;\n\tdeleteRecords(filter: object, softDelete: boolean): Promise<any>;\n\trestore(_id: mongoose.Types.ObjectId): Promise<any>;\n\trestoreOne(filter: object): Promise<any>;\n\trestoreMany(filter?: object): Promise<any>;\n\tfindWithDeleted(filter?: object): any;\n\tfindDeleted(filter?: object): any;\n}\n\n/**\n * Base class for models with soft delete functionality\n */\nexport class SoftDeleteBase {\n\tdeletedAt?: Date | null;\n}\n\n/**\n * SoftDelete class providing soft deletion functionality for mongoose models\n */\nexport class SoftDelete {\n\t/**\n\t * Apply soft delete plugin to a specific schema\n\t * @param schema Mongoose schema to enhance with soft delete functionality\n\t */\n\tpublic static applyToSchema(schema: Schema): void {\n\t\t// Add deletedAt field if it doesn't exist\n\t\tif (!schema.path('deletedAt')) {\n\t\t\tschema.add({\n\t\t\t\tdeletedAt: {\n\t\t\t\t\ttype: Date,\n\t\t\t\t\tdefault: null,\n\t\t\t\t\tindex: true,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Add schema middleware\n\t\tthis.addQueryMiddleware(schema);\n\n\t\t// Add instance methods\n\t\tthis.addInstanceMethods(schema);\n\n\t\t// Add static methods\n\t\tthis.addStaticMethods(schema);\n\t}\n\n\t/**\n\t * Apply soft delete plugin globally to all mongoose schemas\n\t */\n\tpublic static applyGlobally(): void {\n\t\tconst mongoose = require('mongoose');\n\t\tmongoose.plugin((schema: Schema) => this.applyToSchema(schema));\n\t}\n\n\t/**\n\t * Create a model with soft delete capabilities and proper TypeScript types\n\t * @param modelClass The class to create a model from\n\t * @returns A model with soft delete functionality\n\t */\n\tpublic static createModel<T extends SoftDeleteBase>(\n\t\tmodelClass: AnyParamConstructor<T>\n\t): SoftDeleteModel<T> & ReturnModelType<AnyParamConstructor<T>> {\n\t\tconst model = getModelForClass(modelClass);\n\t\treturn model as any; // The plugin adds the methods, we just need to tell TypeScript they exist\n\t}\n\n\t/**\n\t * Add query middleware to filter out soft-deleted documents\n\t * @param schema Schema to add middleware to\n\t */\n\tprivate static addQueryMiddleware(schema: Schema): void {\n\t\tconst queryMiddleware = function (this: Query<any, any>) {\n\t\t\tif (!this.getQuery().deletedAt) {\n\t\t\t\tthis.where({ deletedAt: null });\n\t\t\t}\n\t\t};\n\n\t\t// Apply middleware to relevant query methods\n\t\tschema.pre('find', queryMiddleware);\n\t\tschema.pre('findOne', queryMiddleware);\n\t\tschema.pre('findOneAndUpdate', queryMiddleware);\n\t\tschema.pre('findOneAndDelete', queryMiddleware);\n\t\tschema.pre('findOneAndReplace', queryMiddleware);\n\t\tschema.pre('updateOne', queryMiddleware);\n\t\tschema.pre('updateMany', queryMiddleware);\n\t\t// TypeScript workaround for count hook\n\t\t(schema as any).pre('count', queryMiddleware);\n\t\tschema.pre('countDocuments', queryMiddleware);\n\t\t(schema as any).pre('exists', queryMiddleware);\n\n\t\t// Override findById to respect soft delete\n\t\tschema.statics.findById = function (_id: mongoose.Types.ObjectId, projection?: any, options?: any) {\n\t\t\treturn this.findOne({ _id, deletedAt: null }, projection, options);\n\t\t};\n\t}\n\n\t/**\n\t * Add instance methods for soft delete operations\n\t * @param schema Schema to add methods to\n\t */\n\tprivate static addInstanceMethods(schema: Schema): void {\n\t\tschema.methods.softDelete = function () {\n\t\t\tthis.deletedAt = new Date();\n\t\t\treturn this.save();\n\t\t};\n\n\t\tschema.methods.restore = function () {\n\t\t\tthis.deletedAt = null;\n\t\t\treturn this.save();\n\t\t};\n\t}\n\n\t/**\n\t * Add static methods for soft delete operations\n\t * @param schema Schema to add methods to\n\t */\n\tprivate static addStaticMethods(schema: Schema): void {\n\t\tschema.statics.softDelete = async function (_id: mongoose.Types.ObjectId) {\n\t\t\tconst result = await this.updateOne({ _id }, { deletedAt: new Date() });\n\t\t\treturn result.modifiedCount > 0;\n\t\t};\n\n\t\tschema.statics.softDeleteOne = async function (filter: object) {\n\t\t\tconst result = await this.updateOne(filter, { deletedAt: new Date() });\n\t\t\treturn result.modifiedCount > 0;\n\t\t};\n\n\t\tschema.statics.softDeleteMany = function (filter = {}) {\n\t\t\treturn this.updateMany(filter, { deletedAt: new Date() });\n\t\t};\n\n\t\tschema.statics.deleteRecord = async function (filter: object, softDelete: boolean) {\n\t\t\tif (softDelete) {\n\t\t\t\tconst result = await this.updateOne({ ...filter, deletedAt: null }, { deletedAt: new Date() }).lean();\n\t\t\t\treturn Boolean(result.modifiedCount);\n\t\t\t} else {\n\t\t\t\tconst result = await this.deleteOne(filter).lean();\n\t\t\t\treturn Boolean(result.deletedCount);\n\t\t\t}\n\t\t};\n\n\t\tschema.statics.deleteRecords = async function (filter: object, softDelete: boolean) {\n\t\t\tif (softDelete) {\n\t\t\t\tconst result = await this.updateMany(\n\t\t\t\t\t{ ...filter, deletedAt: null },\n\t\t\t\t\t{ deletedAt: new Date() }\n\t\t\t\t).lean();\n\t\t\t\treturn Boolean(result.modifiedCount);\n\t\t\t} else {\n\t\t\t\tconst result = await this.deleteMany(filter).lean();\n\t\t\t\treturn Boolean(result.deletedCount);\n\t\t\t}\n\t\t};\n\n\t\tschema.statics.restore = function (_id: mongoose.Types.ObjectId) {\n\t\t\treturn this.updateOne({ _id }, { deletedAt: null });\n\t\t};\n\n\t\tschema.statics.restoreOne = function (filter: object) {\n\t\t\treturn this.updateOne(filter, { deletedAt: null });\n\t\t};\n\n\t\tschema.statics.restoreMany = function (filter = {}) {\n\t\t\treturn this.updateMany(filter, { deletedAt: null });\n\t\t};\n\n\t\tschema.statics.findWithDeleted = function (filter = {}) {\n\t\t\treturn this.find(filter);\n\t\t};\n\n\t\tschema.statics.findDeleted = function (filter = {}) {\n\t\t\treturn this.find({ ...filter, deletedAt: { $ne: null } });\n\t\t};\n\t}\n}\n\n// Export convenience functions with the same names as before for backward compatibility\nexport const softDeletePlugin = (schema: Schema): void => SoftDelete.applyToSchema(schema);\nexport const applySoftDeletePlugin = (): void => SoftDelete.applyGlobally();\nexport const createSoftDeleteModel = <T extends SoftDeleteBase>(\n\tmodelClass: AnyParamConstructor<T>\n): SoftDeleteModel<T> & ReturnModelType<AnyParamConstructor<T>> => SoftDelete.createModel(modelClass);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/redis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA4B;AAC5B,mCAAiC;AAG1B,IAAM,YAAY,GAAlB,MAAM,YAAY;IAChB,YAAY,CAAS;IAE7B,YAAY,QAAgB;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAI,GAAW;QAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAM,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAI,GAAW,EAAE,MAAS,EAAE,MAAe;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAI,KAAa,EAAE,GAAW;QAChE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE/D,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAM,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAI,KAAa,EAAE,GAAW,EAAE,MAAS;QAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAI,KAAa,EAAE,GAAW;QACnE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,WAAW,CAAC,GAAW;QAC7B,OAAO,GAAG;aACR,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,WAAW,EAAE,CAAC;IACjB,CAAC;CACD,CAAA;AAlEY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,gBAAO,GAAE;;GACG,YAAY,CAkExB","sourcesContent":["import Redis from 'ioredis';\r\nimport { Service } from 'typedi';\r\n\r\n@Service()\r\nexport class RedisService {\r\n\tprivate _redisClient!: Redis;\r\n\r\n\tconstructor(redisURL: string) {\r\n\t\tthis._redisClient = new Redis(redisURL);\r\n\t}\r\n\r\n\tget redisClient(): Redis {\r\n\t\treturn this._redisClient;\r\n\t}\r\n\r\n\tpublic async getCachedObject<T>(key: string): Promise<T | undefined> {\r\n\t\tconst usageResponse = await this._redisClient.get(key);\r\n\r\n\t\tif (usageResponse != undefined) {\r\n\t\t\treturn JSON.parse(usageResponse) as T;\r\n\t\t}\r\n\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tpublic async cacheObject<T>(key: string, object: T, expiry?: number): Promise<boolean> {\r\n\t\tconst stringifiedObject = JSON.stringify(object);\r\n\r\n\t\tif (expiry) {\r\n\t\t\tawait this._redisClient.setex(key, expiry, stringifiedObject);\r\n\t\t} else {\r\n\t\t\tawait this._redisClient.set(key, stringifiedObject);\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic async deleteCachedObject(key: string): Promise<boolean> {\r\n\t\tawait this._redisClient.del(key);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic async getCachedObjectByGroup<T>(group: string, key: string): Promise<T | undefined> {\r\n\t\tconst usageResponse = await this._redisClient.hget(group, key);\r\n\r\n\t\tif (usageResponse != undefined) {\r\n\t\t\treturn JSON.parse(usageResponse) as T;\r\n\t\t}\r\n\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\tpublic async setCachedObjectByGroup<T>(group: string, key: string, object: T): Promise<boolean> {\r\n\t\tconst stringifiedObject = JSON.stringify(object);\r\n\t\tawait this._redisClient.hset(group, key, stringifiedObject);\r\n\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic async deleteCachedObjectByGroup<T>(group: string, key: string): Promise<boolean> {\r\n\t\tawait this._redisClient.hdel(group, key);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic sanitizeKey(key: string) {\r\n\t\treturn key\r\n\t\t\t.replace(/[^\\w\\s]/gi, '')\r\n\t\t\t.replace(/\\s+/g, '-')\r\n\t\t\t.toLowerCase();\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/redis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA4B;AAC5B,mCAAiC;AAG1B,IAAM,YAAY,GAAlB,MAAM,YAAY;IAChB,YAAY,CAAS;IAE7B,YAAY,QAAgB;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,eAAe,CAAI,GAAW;QAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAM,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,WAAW,CAAI,GAAW,EAAE,MAAS,EAAE,MAAe;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAI,KAAa,EAAE,GAAW;QAChE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE/D,IAAI,aAAa,IAAI,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAM,CAAC;QACvC,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAI,KAAa,EAAE,GAAW,EAAE,MAAS;QAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAE5D,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,yBAAyB,CAAI,KAAa,EAAE,GAAW;QACnE,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,WAAW,CAAC,GAAW;QAC7B,OAAO,GAAG;aACR,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;aACxB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,WAAW,EAAE,CAAC;IACjB,CAAC;CACD,CAAA;AAlEY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,gBAAO,GAAE;;GACG,YAAY,CAkExB","sourcesContent":["import Redis from 'ioredis';\nimport { Service } from 'typedi';\n\n@Service()\nexport class RedisService {\n\tprivate _redisClient!: Redis;\n\n\tconstructor(redisURL: string) {\n\t\tthis._redisClient = new Redis(redisURL);\n\t}\n\n\tget redisClient(): Redis {\n\t\treturn this._redisClient;\n\t}\n\n\tpublic async getCachedObject<T>(key: string): Promise<T | undefined> {\n\t\tconst usageResponse = await this._redisClient.get(key);\n\n\t\tif (usageResponse != undefined) {\n\t\t\treturn JSON.parse(usageResponse) as T;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tpublic async cacheObject<T>(key: string, object: T, expiry?: number): Promise<boolean> {\n\t\tconst stringifiedObject = JSON.stringify(object);\n\n\t\tif (expiry) {\n\t\t\tawait this._redisClient.setex(key, expiry, stringifiedObject);\n\t\t} else {\n\t\t\tawait this._redisClient.set(key, stringifiedObject);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tpublic async deleteCachedObject(key: string): Promise<boolean> {\n\t\tawait this._redisClient.del(key);\n\t\treturn true;\n\t}\n\n\tpublic async getCachedObjectByGroup<T>(group: string, key: string): Promise<T | undefined> {\n\t\tconst usageResponse = await this._redisClient.hget(group, key);\n\n\t\tif (usageResponse != undefined) {\n\t\t\treturn JSON.parse(usageResponse) as T;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tpublic async setCachedObjectByGroup<T>(group: string, key: string, object: T): Promise<boolean> {\n\t\tconst stringifiedObject = JSON.stringify(object);\n\t\tawait this._redisClient.hset(group, key, stringifiedObject);\n\n\t\treturn true;\n\t}\n\n\tpublic async deleteCachedObjectByGroup<T>(group: string, key: string): Promise<boolean> {\n\t\tawait this._redisClient.hdel(group, key);\n\t\treturn true;\n\t}\n\n\tpublic sanitizeKey(key: string) {\n\t\treturn key\n\t\t\t.replace(/[^\\w\\s]/gi, '')\n\t\t\t.replace(/\\s+/g, '-')\n\t\t\t.toLowerCase();\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/secrets/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0E;AAC1E,mCAAiC;AACjC,oCAAwC;AACxC,oDAAwD;AAGjD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACxB,qBAAqB,CAAwB;IAC7C,aAAa,CAAgB;IAC7B,OAAO,CAA8B;IAE7C,YAAY,oBAA0C,EAAE,YAA0B;QACjF,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,2CAA0B,CAAC;YAC7C,WAAW,EAAE;gBACZ,SAAS,EAAE,uBAAuB;gBAClC,cAAc,EAAE,0CAA0C;gBAC1D,IAAI,EAAE,iBAAiB;gBACvB,eAAe,EAAE,gBAAgB;gBACjC,SAAS,EAAE,gBAAgB;gBAC3B,WAAW,EACV,ssDAAssD;gBACvsD,YAAY,EAAE,kDAAkD;aAChE;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW;QAC9B,MAAM,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;QAE7F,OAAO,CAAC,GAAG,CAAC,gDAAgD,GAAG,yBAAyB,CAAC,CAAC;QAE1F,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAC3D,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,EACxD,GAAG,CACH,CAAC;YAEF,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBAC/D,IAAI,EAAE,gCAAgC,GAAG,yBAAyB,GAAG,kBAAkB;aACvF,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,cAAc,CAAC,OAAQ,CAAC,IAAK,CAAC,QAAQ,EAAE,CAAC;YAErD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAE5B,OAAO,GAAG,CAAC;QACZ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAa;QAC7C,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAC9C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,EACxD,GAAG,EACH,KAAK,CACL,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AA3DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,gBAAO,GAAE;qCAMyB,oCAAoB,EAAgB,oBAAY;GALtE,oBAAoB,CA2DhC","sourcesContent":["import { SecretManagerServiceClient } from '@google-cloud/secret-manager';\r\nimport { Service } from 'typedi';\r\nimport { RedisService } from '../redis';\r\nimport { ConfigurationService } from '../configuration';\r\n\r\n@Service()\r\nexport class SecretManagerService {\r\n\tprivate _configurationService!: ConfigurationService;\r\n\tprivate _redisManager!: RedisService;\r\n\tprivate _client!: SecretManagerServiceClient;\r\n\r\n\tconstructor(configurationService: ConfigurationService, redisManager: RedisService) {\r\n\t\tthis._configurationService = configurationService;\r\n\t\tthis._redisManager = redisManager;\r\n\t\tthis._client = new SecretManagerServiceClient({\r\n\t\t\tcredentials: {\r\n\t\t\t\tclient_id: '107840895824406590900',\r\n\t\t\t\tprivate_key_id: 'ece1ebdfde57414700f23f1f4014f5e83d4f7644',\r\n\t\t\t\ttype: 'service_account',\r\n\t\t\t\tuniverse_domain: 'googleapis.com',\r\n\t\t\t\tprojectId: 'for-poc-325210',\r\n\t\t\t\tprivate_key:\r\n\t\t\t\t\t'-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDPTk9M5nCDYJhC\\nLuyP+gqBXIHPrXegygco5tB50Y7Q9s/f4hm+xp/usYy5UCYyFVNjZ2mdjWQcr3Ta\\nT3GZV9OiHej8ejveY0iyFBi0IlfGNm9blYlOIyQT4i6MoevNul7u4EQL8bid/sp/\\nJ/XPNC+Jnk8Ke2G9FdfDYs+1O6Nf37HuPUmMwLAzcyl+k1v9UzInrgNPj+nactY7\\nEPCVSM6XcZI3UL86n574iQBvUXsMpUt3csYVOxPap1Vd1TBEo1k85jZepMvaXHoK\\nJUwQT7p1F1D0weVKJ1BjwQgmADZWfUKdwRyS8zFPbUGeptlA2XlxyVMasGzCCMi4\\n6jzJGC81AgMBAAECggEAXoaLnDn7Fbym0I7K6T+PKLtAqaykPpnAOAM/DjzijR/t\\nW12idZ3l8RXeX+VO9UlKE6pkuyVsf7P1aVIOL2ifpG1U/kLSJ65HyINnXEPImCXc\\nEvuVdx6I5dQde5ydg9o2TV/PR0756njyZpaW+9sEzhB0ZAgsYeai0oGsyiuebCkm\\nqlOnf5DO/kWlNvf8yZ7GMEa0WBYyan4O7YcVF13c7oM19XZfvw+lliU/geOwVNW5\\nEfSn91UWIEMB60Q5XKHg11LAvbq8mvcHD+6ujeoPMfoZJrHZj5ucBP5auyRNFCUM\\nWE2IILLpgdhDfE5I323xHIyMblMSc1OOkZzjhuNYRQKBgQDuEa/jMqEDu7ZpDo/g\\nf+M4Qmmyh1WIjnORwqbf8INi5oN1NoIv6tcJ++COAWcBpyerW9aknLRMX9FXrNH5\\nAPyRvHQt2IpRCqjdcEr2b3VwZmcjRVbpsISwqE0RBvXSXOnvbDzZ53bC70anL5OY\\n7UYwOotbQXpcEGC57wy8G+VVlwKBgQDe63bcubV1W2+WPbdtzb7tzIS5PPz19U5i\\n5PjVQ4E34FH0ZBnk2v1fjtVxR72mrzCg2xz72rWgdsHJ/1QZAfw+4troJV9LI9SG\\nYRMeh86NSfNObdkY+LmCSH4eiFe83kFLUUzhnYE6DU/17i6T4V+ofawToasu3wag\\nf7LzT2BzEwKBgQDlVD5lktDOQtWtj+yC607bVAZzhrCbUfX8FFEh6ZL3A2zgzXhN\\nZmBtaqfew3URf47UICy894MrCyYi2gSOZCfoz2vu+egLt0QBw/lCOQ4dD1gM/u+B\\nP5wifI14eIb2dLCZBV/83F5n24zo4gjBSNfS/6Jcbs/KvbAfjCptTkX10wKBgDxb\\nwy5WtlRVcqxaf50ilWzr8I/7fH7YceYDG4EbKxTHD0m+BOjbhrlmAlMO2sIUM3WK\\nfpmPCZiuLyCTmuC+kd8xK5ap79h3libgh/2/ReUpvdBhm+PQDOLC4CtCPYdtIn7T\\nP57jN8dRLXJokIIIBw+nH32dS62AQ9oXWYvZ1UKzAoGBAOWOSphZMnPlLeLN54/4\\nwKPI+D6G1JhzqQrUf8Z99J7m3r3ya+0ug5gRGQCoSRfqz9o87+fLCdSdc38L+j4T\\nBnuwIcY6n4LF+3yAPIF1rnrIBFRqzPta7epYPXHtUTvWOkEkKzNmsFVCZKF7nQjS\\ns/ucyyfUssPsTznYW3gXf3To\\n-----END PRIVATE KEY-----\\n',\r\n\t\t\t\tclient_email: 'lyxa-core@for-poc-325210.iam.gserviceaccount.com',\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\tpublic async getKey(key: string): Promise<string | undefined> {\r\n\t\tconst environmentTransformedKey = this._configurationService.options.environment + '_' + key;\r\n\r\n\t\tconsole.log('Attempting to fetch the following secret key: ' + environmentTransformedKey);\r\n\r\n\t\ttry {\r\n\t\t\tconst data = await this._redisManager.getCachedObjectByGroup<string>(\r\n\t\t\t\tthis._configurationService.options.environment + '_KEYS',\r\n\t\t\t\tkey\r\n\t\t\t);\r\n\r\n\t\t\tif (data != undefined) {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\r\n\t\t\tconst [accessResponse] = await this._client.accessSecretVersion({\r\n\t\t\t\tname: 'projects/899369746265/secrets/' + environmentTransformedKey + '/versions/latest',\r\n\t\t\t});\r\n\r\n\t\t\tconst val = accessResponse.payload!.data!.toString();\r\n\r\n\t\t\tawait this.setKey(key, val);\r\n\r\n\t\t\treturn val;\r\n\t\t} catch (e) {\r\n\t\t\tconsole.error(e);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic async setKey(key: string, value: string): Promise<string> {\r\n\t\tawait this._redisManager.setCachedObjectByGroup<string>(\r\n\t\t\tthis._configurationService.options.environment + '_KEYS',\r\n\t\t\tkey,\r\n\t\t\tvalue\r\n\t\t);\r\n\t\treturn value;\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/secrets/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iEAA0E;AAC1E,mCAAiC;AACjC,oCAAwC;AACxC,oDAAwD;AAGjD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACxB,qBAAqB,CAAwB;IAC7C,aAAa,CAAgB;IAC7B,OAAO,CAA8B;IAE7C,YAAY,oBAA0C,EAAE,YAA0B;QACjF,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,2CAA0B,CAAC;YAC7C,WAAW,EAAE;gBACZ,SAAS,EAAE,uBAAuB;gBAClC,cAAc,EAAE,0CAA0C;gBAC1D,IAAI,EAAE,iBAAiB;gBACvB,eAAe,EAAE,gBAAgB;gBACjC,SAAS,EAAE,gBAAgB;gBAC3B,WAAW,EACV,ssDAAssD;gBACvsD,YAAY,EAAE,kDAAkD;aAChE;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW;QAC9B,MAAM,yBAAyB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;QAE7F,OAAO,CAAC,GAAG,CAAC,gDAAgD,GAAG,yBAAyB,CAAC,CAAC;QAE1F,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAC3D,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,EACxD,GAAG,CACH,CAAC;YAEF,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACb,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBAC/D,IAAI,EAAE,gCAAgC,GAAG,yBAAyB,GAAG,kBAAkB;aACvF,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,cAAc,CAAC,OAAQ,CAAC,IAAK,CAAC,QAAQ,EAAE,CAAC;YAErD,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAE5B,OAAO,GAAG,CAAC;QACZ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAa;QAC7C,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAC9C,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,EACxD,GAAG,EACH,KAAK,CACL,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AA3DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,gBAAO,GAAE;qCAMyB,oCAAoB,EAAgB,oBAAY;GALtE,oBAAoB,CA2DhC","sourcesContent":["import { SecretManagerServiceClient } from '@google-cloud/secret-manager';\nimport { Service } from 'typedi';\nimport { RedisService } from '../redis';\nimport { ConfigurationService } from '../configuration';\n\n@Service()\nexport class SecretManagerService {\n\tprivate _configurationService!: ConfigurationService;\n\tprivate _redisManager!: RedisService;\n\tprivate _client!: SecretManagerServiceClient;\n\n\tconstructor(configurationService: ConfigurationService, redisManager: RedisService) {\n\t\tthis._configurationService = configurationService;\n\t\tthis._redisManager = redisManager;\n\t\tthis._client = new SecretManagerServiceClient({\n\t\t\tcredentials: {\n\t\t\t\tclient_id: '107840895824406590900',\n\t\t\t\tprivate_key_id: 'ece1ebdfde57414700f23f1f4014f5e83d4f7644',\n\t\t\t\ttype: 'service_account',\n\t\t\t\tuniverse_domain: 'googleapis.com',\n\t\t\t\tprojectId: 'for-poc-325210',\n\t\t\t\tprivate_key:\n\t\t\t\t\t'-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDPTk9M5nCDYJhC\\nLuyP+gqBXIHPrXegygco5tB50Y7Q9s/f4hm+xp/usYy5UCYyFVNjZ2mdjWQcr3Ta\\nT3GZV9OiHej8ejveY0iyFBi0IlfGNm9blYlOIyQT4i6MoevNul7u4EQL8bid/sp/\\nJ/XPNC+Jnk8Ke2G9FdfDYs+1O6Nf37HuPUmMwLAzcyl+k1v9UzInrgNPj+nactY7\\nEPCVSM6XcZI3UL86n574iQBvUXsMpUt3csYVOxPap1Vd1TBEo1k85jZepMvaXHoK\\nJUwQT7p1F1D0weVKJ1BjwQgmADZWfUKdwRyS8zFPbUGeptlA2XlxyVMasGzCCMi4\\n6jzJGC81AgMBAAECggEAXoaLnDn7Fbym0I7K6T+PKLtAqaykPpnAOAM/DjzijR/t\\nW12idZ3l8RXeX+VO9UlKE6pkuyVsf7P1aVIOL2ifpG1U/kLSJ65HyINnXEPImCXc\\nEvuVdx6I5dQde5ydg9o2TV/PR0756njyZpaW+9sEzhB0ZAgsYeai0oGsyiuebCkm\\nqlOnf5DO/kWlNvf8yZ7GMEa0WBYyan4O7YcVF13c7oM19XZfvw+lliU/geOwVNW5\\nEfSn91UWIEMB60Q5XKHg11LAvbq8mvcHD+6ujeoPMfoZJrHZj5ucBP5auyRNFCUM\\nWE2IILLpgdhDfE5I323xHIyMblMSc1OOkZzjhuNYRQKBgQDuEa/jMqEDu7ZpDo/g\\nf+M4Qmmyh1WIjnORwqbf8INi5oN1NoIv6tcJ++COAWcBpyerW9aknLRMX9FXrNH5\\nAPyRvHQt2IpRCqjdcEr2b3VwZmcjRVbpsISwqE0RBvXSXOnvbDzZ53bC70anL5OY\\n7UYwOotbQXpcEGC57wy8G+VVlwKBgQDe63bcubV1W2+WPbdtzb7tzIS5PPz19U5i\\n5PjVQ4E34FH0ZBnk2v1fjtVxR72mrzCg2xz72rWgdsHJ/1QZAfw+4troJV9LI9SG\\nYRMeh86NSfNObdkY+LmCSH4eiFe83kFLUUzhnYE6DU/17i6T4V+ofawToasu3wag\\nf7LzT2BzEwKBgQDlVD5lktDOQtWtj+yC607bVAZzhrCbUfX8FFEh6ZL3A2zgzXhN\\nZmBtaqfew3URf47UICy894MrCyYi2gSOZCfoz2vu+egLt0QBw/lCOQ4dD1gM/u+B\\nP5wifI14eIb2dLCZBV/83F5n24zo4gjBSNfS/6Jcbs/KvbAfjCptTkX10wKBgDxb\\nwy5WtlRVcqxaf50ilWzr8I/7fH7YceYDG4EbKxTHD0m+BOjbhrlmAlMO2sIUM3WK\\nfpmPCZiuLyCTmuC+kd8xK5ap79h3libgh/2/ReUpvdBhm+PQDOLC4CtCPYdtIn7T\\nP57jN8dRLXJokIIIBw+nH32dS62AQ9oXWYvZ1UKzAoGBAOWOSphZMnPlLeLN54/4\\nwKPI+D6G1JhzqQrUf8Z99J7m3r3ya+0ug5gRGQCoSRfqz9o87+fLCdSdc38L+j4T\\nBnuwIcY6n4LF+3yAPIF1rnrIBFRqzPta7epYPXHtUTvWOkEkKzNmsFVCZKF7nQjS\\ns/ucyyfUssPsTznYW3gXf3To\\n-----END PRIVATE KEY-----\\n',\n\t\t\t\tclient_email: 'lyxa-core@for-poc-325210.iam.gserviceaccount.com',\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic async getKey(key: string): Promise<string | undefined> {\n\t\tconst environmentTransformedKey = this._configurationService.options.environment + '_' + key;\n\n\t\tconsole.log('Attempting to fetch the following secret key: ' + environmentTransformedKey);\n\n\t\ttry {\n\t\t\tconst data = await this._redisManager.getCachedObjectByGroup<string>(\n\t\t\t\tthis._configurationService.options.environment + '_KEYS',\n\t\t\t\tkey\n\t\t\t);\n\n\t\t\tif (data != undefined) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tconst [accessResponse] = await this._client.accessSecretVersion({\n\t\t\t\tname: 'projects/899369746265/secrets/' + environmentTransformedKey + '/versions/latest',\n\t\t\t});\n\n\t\t\tconst val = accessResponse.payload!.data!.toString();\n\n\t\t\tawait this.setKey(key, val);\n\n\t\t\treturn val;\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\t}\n\n\tpublic async setKey(key: string, value: string): Promise<string> {\n\t\tawait this._redisManager.setCachedObjectByGroup<string>(\n\t\t\tthis._configurationService.options.environment + '_KEYS',\n\t\t\tkey,\n\t\t\tvalue\n\t\t);\n\t\treturn value;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"/","sources":["libraries/trpc/context.ts"],"names":[],"mappings":";;;AAmBO,MAAM,iBAAiB,GAAG,KAAK,EACrC,IAA8B,EAC0B,EAAE;IAC1D,OAAO;QACN,GAAG,IAAI;QACP,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,KAAK;KACnB,CAAC;AACH,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B","sourcesContent":["import { CreateHTTPContextOptions } from '@trpc/server/dist/adapters/standalone';\r\nimport { AuthEntityType } from '../auth';\r\nimport jwt from 'jsonwebtoken';\r\nimport { TokenType } from '../auth';\r\n\r\nexport interface EntityContext extends jwt.JwtPayload {\r\n\tid: string;\r\n\ttype: AuthEntityType;\r\n\tparameters: Record<string, unknown>;\r\n}\r\n\r\nexport interface LyxaContextParams {\r\n\tentity?: EntityContext;\r\n\trequestId?: string;\r\n\ttokenType?: TokenType;\r\n\tusedRefreshToken?: boolean;\r\n\ttokenRenewed?: boolean;\r\n}\r\n\r\nexport const createLyxaContext = async (\r\n\topts: CreateHTTPContextOptions\r\n): Promise<CreateHTTPContextOptions & LyxaContextParams> => {\r\n\treturn {\r\n\t\t...opts,\r\n\t\tentity: undefined,\r\n\t\trequestId: undefined,\r\n\t\ttokenType: undefined,\r\n\t\tusedRefreshToken: false,\r\n\t\ttokenRenewed: false,\r\n\t};\r\n};\r\n\r\nexport type LyxaContext = Awaited<ReturnType<typeof createLyxaContext>>;\r\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"/","sources":["libraries/trpc/context.ts"],"names":[],"mappings":";;;AAmBO,MAAM,iBAAiB,GAAG,KAAK,EACrC,IAA8B,EAC0B,EAAE;IAC1D,OAAO;QACN,GAAG,IAAI;QACP,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,KAAK;KACnB,CAAC;AACH,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B","sourcesContent":["import { CreateHTTPContextOptions } from '@trpc/server/dist/adapters/standalone';\nimport { AuthEntityType } from '../auth';\nimport jwt from 'jsonwebtoken';\nimport { TokenType } from '../auth';\n\nexport interface EntityContext extends jwt.JwtPayload {\n\tid: string;\n\ttype: AuthEntityType;\n\tparameters: Record<string, unknown>;\n}\n\nexport interface LyxaContextParams {\n\tentity?: EntityContext;\n\trequestId?: string;\n\ttokenType?: TokenType;\n\tusedRefreshToken?: boolean;\n\ttokenRenewed?: boolean;\n}\n\nexport const createLyxaContext = async (\n\topts: CreateHTTPContextOptions\n): Promise<CreateHTTPContextOptions & LyxaContextParams> => {\n\treturn {\n\t\t...opts,\n\t\tentity: undefined,\n\t\trequestId: undefined,\n\t\ttokenType: undefined,\n\t\tusedRefreshToken: false,\n\t\ttokenRenewed: false,\n\t};\n};\n\nexport type LyxaContext = Awaited<ReturnType<typeof createLyxaContext>>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/trpc/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,6BAA+B;AAGlB,QAAA,CAAC,GAAG,iBAAQ,CAAC,OAAO,EAAe,CAAC,MAAM,CAAC;IACvD,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9B,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,YAAY,cAAQ,EAAE,CAAC;YACrE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAE5D,OAAO;YACN,GAAG,KAAK;YACR,OAAO,EACN,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO;gBACnD,CAAC,CAAC,KAAK,CAAC,OAAO;YACjB,IAAI,EAAE;gBACL,GAAG,KAAK,CAAC,IAAI;gBAEb,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,SAAS;aACf;YAED,KAAK,EAAE,SAAS;SAChB,CAAC;IACH,CAAC;CACD,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,SAAC,CAAC,SAAS,CAAC;AAC9B,QAAA,gBAAgB,GAAG,SAAC,CAAC,MAAM,CAAC;AAC5B,QAAA,mBAAmB,GAAG,SAAC,CAAC,mBAAmB,CAAC","sourcesContent":["import { initTRPC } from '@trpc/server';\r\nimport { ZodError } from 'zod';\r\nimport { LyxaContext } from './context';\r\n\r\nexport const t = initTRPC.context<LyxaContext>().create({\r\n\terrorFormatter({ shape, error }) {\r\n\t\tlet zodErrors = null;\r\n\r\n\t\tif (error.code === 'BAD_REQUEST' && error.cause instanceof ZodError) {\r\n\t\t\tconst flattened = error.cause.flatten();\r\n\t\t\tzodErrors = flattened.fieldErrors;\r\n\t\t}\r\n\r\n\t\tconsole.log('Error:', error, shape, 'error log', zodErrors);\r\n\r\n\t\treturn {\r\n\t\t\t...shape,\r\n\t\t\tmessage:\r\n\t\t\t\tzodErrors && typeof zodErrors === 'object'\r\n\t\t\t\t\t? Object.values(zodErrors)[0]?.[0] || shape.message\r\n\t\t\t\t\t: shape.message,\r\n\t\t\tdata: {\r\n\t\t\t\t...shape.data,\r\n\r\n\t\t\t\tstack: undefined,\r\n\t\t\t\tpath: undefined,\r\n\t\t\t},\r\n\t\t\t// Prevent stack trace from being returned in the response\r\n\t\t\tstack: undefined,\r\n\t\t};\r\n\t},\r\n});\r\n\r\nexport const publicProcedure = t.procedure;\r\nexport const createTRPCRouter = t.router;\r\nexport const createCallerFactory = t.createCallerFactory;\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/trpc/index.ts"],"names":[],"mappings":";;;AAAA,yCAAwC;AACxC,6BAA+B;AAGlB,QAAA,CAAC,GAAG,iBAAQ,CAAC,OAAO,EAAe,CAAC,MAAM,CAAC;IACvD,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;QAC9B,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,KAAK,YAAY,cAAQ,EAAE,CAAC;YACrE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACxC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAE5D,OAAO;YACN,GAAG,KAAK;YACR,OAAO,EACN,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;gBACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO;gBACnD,CAAC,CAAC,KAAK,CAAC,OAAO;YACjB,IAAI,EAAE;gBACL,GAAG,KAAK,CAAC,IAAI;gBAEb,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,SAAS;aACf;YAED,KAAK,EAAE,SAAS;SAChB,CAAC;IACH,CAAC;CACD,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,SAAC,CAAC,SAAS,CAAC;AAC9B,QAAA,gBAAgB,GAAG,SAAC,CAAC,MAAM,CAAC;AAC5B,QAAA,mBAAmB,GAAG,SAAC,CAAC,mBAAmB,CAAC","sourcesContent":["import { initTRPC } from '@trpc/server';\nimport { ZodError } from 'zod';\nimport { LyxaContext } from './context';\n\nexport const t = initTRPC.context<LyxaContext>().create({\n\terrorFormatter({ shape, error }) {\n\t\tlet zodErrors = null;\n\n\t\tif (error.code === 'BAD_REQUEST' && error.cause instanceof ZodError) {\n\t\t\tconst flattened = error.cause.flatten();\n\t\t\tzodErrors = flattened.fieldErrors;\n\t\t}\n\n\t\tconsole.log('Error:', error, shape, 'error log', zodErrors);\n\n\t\treturn {\n\t\t\t...shape,\n\t\t\tmessage:\n\t\t\t\tzodErrors && typeof zodErrors === 'object'\n\t\t\t\t\t? Object.values(zodErrors)[0]?.[0] || shape.message\n\t\t\t\t\t: shape.message,\n\t\t\tdata: {\n\t\t\t\t...shape.data,\n\n\t\t\t\tstack: undefined,\n\t\t\t\tpath: undefined,\n\t\t\t},\n\t\t\t// Prevent stack trace from being returned in the response\n\t\t\tstack: undefined,\n\t\t};\n\t},\n});\n\nexport const publicProcedure = t.procedure;\nexport const createTRPCRouter = t.router;\nexport const createCallerFactory = t.createCallerFactory;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import { TRPCError } from '@trpc/server';\r\nimport { publicProcedure } from '../index';\r\nimport {\r\n\tAuthEntityType,\r\n\tverifyAccessToken,\r\n\tvalidateRefreshToken,\r\n\tsignAccessToken,\r\n\tTokenType,\r\n\trefreshTokens,\r\n\thandleTokenRenewal,\r\n} from '../../auth';\r\n\r\ninterface AuthOptions {\r\n\tentityTypes: AuthEntityType[];\r\n\tallowRefreshToken?: boolean;\r\n\tautoRefresh?: boolean;\r\n}\r\n\r\n/**\r\n * A factory that creates an authenticated procedure, optionally allowing\r\n * refresh tokens and auto-refreshing expired access tokens.\r\n */\r\nexport function createAuthenticatedProcedure(options: AuthOptions) {\r\n\tconst { entityTypes, allowRefreshToken = true, autoRefresh = true } = options;\r\n\r\n\treturn publicProcedure.use(async ({ ctx, next }) => {\r\n\t\tconst authHeader = ctx.req.headers['authorization'];\r\n\t\tconst refreshTokenHeader = ctx.req.headers['x-refresh-token'];\r\n\r\n\t\tif (!authHeader) {\r\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'No authorization header' });\r\n\t\t}\r\n\r\n\t\tconst accessToken = authHeader.replace(/^Bearer\\s+/, '');\r\n\t\tlet refreshToken = '';\r\n\r\n\t\tif (refreshTokenHeader) {\r\n\t\t\trefreshToken =\r\n\t\t\t\ttypeof refreshTokenHeader === 'string'\r\n\t\t\t\t\t? refreshTokenHeader.replace(/^Bearer\\s+/, '')\r\n\t\t\t\t\t: refreshTokenHeader[0].replace(/^Bearer\\s+/, '');\r\n\t\t}\r\n\r\n\t\tif (!accessToken) {\r\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'Missing access token' });\r\n\t\t}\r\n\r\n\t\tlet entity = await verifyAccessToken(entityTypes, accessToken);\r\n\r\n\t\tif (entity) {\r\n\t\t\tctx.entity = entity;\r\n\t\t\tctx.tokenType = TokenType.ACCESS;\r\n\t\t\tctx.usedRefreshToken = false;\r\n\t\t\tctx.tokenRenewed = false;\r\n\t\t\treturn next({ ctx });\r\n\t\t}\r\n\r\n\t\tif (!allowRefreshToken || !refreshToken) {\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'UNAUTHORIZED',\r\n\t\t\t\tmessage: 'Invalid access token',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst renewalResult = await handleTokenRenewal(refreshToken);\r\n\r\n\t\tif (!renewalResult.success) {\r\n\t\t\tconst errorMessage =\r\n\t\t\t\trenewalResult.tokenStatus === 'revoked' ? 'Refresh token has been revoked' : 'Invalid refresh token';\r\n\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'UNAUTHORIZED',\r\n\t\t\t\tmessage: errorMessage,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (!entityTypes.includes(renewalResult.entity!.type)) {\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'UNAUTHORIZED',\r\n\t\t\t\tmessage: 'Unauthorized entity type',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tctx.entity = renewalResult.entity;\r\n\t\tctx.tokenType = TokenType.REFRESH;\r\n\t\tctx.usedRefreshToken = true;\r\n\r\n\t\tctx.tokenRenewed = renewalResult.tokenStatus === 'expired';\r\n\r\n\t\tif (autoRefresh && renewalResult.newTokens) {\r\n\t\t\tif (renewalResult.newTokens.accessToken) {\r\n\t\t\t\tctx.res.setHeader('X-New-Access-Token', renewalResult.newTokens.accessToken);\r\n\t\t\t}\r\n\r\n\t\t\tif (renewalResult.newTokens.refreshToken) {\r\n\t\t\t\tctx.res.setHeader('X-New-Refresh-Token', renewalResult.newTokens.refreshToken);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn next({ ctx });\r\n\t});\r\n}\r\n"]}
1
+ {"version":3,"file":"auth.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/auth.ts"],"names":[],"mappings":"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","sourcesContent":["import { TRPCError } from '@trpc/server';\nimport { publicProcedure } from '../index';\nimport {\n\tAuthEntityType,\n\tverifyAccessToken,\n\tvalidateRefreshToken,\n\tsignAccessToken,\n\tTokenType,\n\trefreshTokens,\n\thandleTokenRenewal,\n} from '../../auth';\n\ninterface AuthOptions {\n\tentityTypes: AuthEntityType[];\n\tallowRefreshToken?: boolean;\n\tautoRefresh?: boolean;\n}\n\n/**\n * A factory that creates an authenticated procedure, optionally allowing\n * refresh tokens and auto-refreshing expired access tokens.\n */\nexport function createAuthenticatedProcedure(options: AuthOptions) {\n\tconst { entityTypes, allowRefreshToken = true, autoRefresh = true } = options;\n\n\treturn publicProcedure.use(async ({ ctx, next }) => {\n\t\tconst authHeader = ctx.req.headers['authorization'];\n\t\tconst refreshTokenHeader = ctx.req.headers['x-refresh-token'];\n\n\t\tif (!authHeader) {\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'No authorization header' });\n\t\t}\n\n\t\tconst accessToken = authHeader.replace(/^Bearer\\s+/, '');\n\t\tlet refreshToken = '';\n\n\t\tif (refreshTokenHeader) {\n\t\t\trefreshToken =\n\t\t\t\ttypeof refreshTokenHeader === 'string'\n\t\t\t\t\t? refreshTokenHeader.replace(/^Bearer\\s+/, '')\n\t\t\t\t\t: refreshTokenHeader[0].replace(/^Bearer\\s+/, '');\n\t\t}\n\n\t\tif (!accessToken) {\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'Missing access token' });\n\t\t}\n\n\t\tlet entity = await verifyAccessToken(entityTypes, accessToken);\n\n\t\tif (entity) {\n\t\t\tctx.entity = entity;\n\t\t\tctx.tokenType = TokenType.ACCESS;\n\t\t\tctx.usedRefreshToken = false;\n\t\t\tctx.tokenRenewed = false;\n\t\t\treturn next({ ctx });\n\t\t}\n\n\t\tif (!allowRefreshToken || !refreshToken) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'UNAUTHORIZED',\n\t\t\t\tmessage: 'Invalid access token',\n\t\t\t});\n\t\t}\n\n\t\tconst renewalResult = await handleTokenRenewal(refreshToken);\n\n\t\tif (!renewalResult.success) {\n\t\t\tconst errorMessage =\n\t\t\t\trenewalResult.tokenStatus === 'revoked' ? 'Refresh token has been revoked' : 'Invalid refresh token';\n\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'UNAUTHORIZED',\n\t\t\t\tmessage: errorMessage,\n\t\t\t});\n\t\t}\n\n\t\tif (!entityTypes.includes(renewalResult.entity!.type)) {\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'UNAUTHORIZED',\n\t\t\t\tmessage: 'Unauthorized entity type',\n\t\t\t});\n\t\t}\n\n\t\tctx.entity = renewalResult.entity;\n\t\tctx.tokenType = TokenType.REFRESH;\n\t\tctx.usedRefreshToken = true;\n\n\t\tctx.tokenRenewed = renewalResult.tokenStatus === 'expired';\n\n\t\tif (autoRefresh && renewalResult.newTokens) {\n\t\t\tif (renewalResult.newTokens.accessToken) {\n\t\t\t\tctx.res.setHeader('X-New-Access-Token', renewalResult.newTokens.accessToken);\n\t\t\t}\n\n\t\t\tif (renewalResult.newTokens.refreshToken) {\n\t\t\t\tctx.res.setHeader('X-New-Refresh-Token', renewalResult.newTokens.refreshToken);\n\t\t\t}\n\t\t}\n\n\t\treturn next({ ctx });\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"cors.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/cors.ts"],"names":[],"mappings":";;AAqBA,wCA6DC;AA7DD,SAAgB,cAAc,CAAC,UAAuB,EAAE;IAEvD,MAAM,MAAM,GAA0B;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC;QAClD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;QACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,KAAK;QACrD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;QAClH,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;KAC3H,CAAC;IAGF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACjG,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACzB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IAGzB,OAAO,CAAC,GAAoB,EAAE,GAAmB,EAAE,IAAgB,EAAE,EAAE;QACtE,IAAI,CAAC;YAEJ,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAG5D,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC;gBAC7D,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;gBAEpE,IAAI,oBAAoB,EAAE,CAAC;oBAC1B,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,oBAAoB,CAAC,CAAC;gBACtE,CAAC;gBAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACxB,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;gBAC3D,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnB,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnE,CAAC;YACF,CAAC;YAGD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACR,CAAC;YAGD,IAAI,EAAE,CAAC;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEhB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAE/C,IAAI,EAAE,CAAC;QACR,CAAC;IACF,CAAC,CAAC;AACH,CAAC","sourcesContent":["import type { IncomingMessage, ServerResponse } from 'http';\r\n\r\n/**\r\n * Interface for CORS middleware options\r\n */\r\ninterface CorsOptions {\r\n\torigin?: string | string[];\r\n\tmethods?: string[];\r\n\tallowedHeaders?: string[];\r\n\texposedHeaders?: string[];\r\n\tcredentials?: boolean;\r\n\tmaxAge?: number;\r\n\tpreflightContinue?: boolean;\r\n}\r\n\r\n/**\r\n * Creates a configurable CORS middleware for tRPC applications\r\n *\r\n * @param options Configuration options for CORS\r\n * @returns A middleware function for handling CORS\r\n */\r\nexport function corsMiddleware(options: CorsOptions = {}) {\r\n\t// Default configuration with sensible values\r\n\tconst config: Required<CorsOptions> = {\r\n\t\torigin: options.origin || '*',\r\n\t\tmethods: options.methods || ['GET, POST, OPTIONS'],\r\n\t\tcredentials: options.credentials || false,\r\n\t\tmaxAge: options.maxAge || 86400, // 24 hours\r\n\t\tpreflightContinue: options.preflightContinue || false,\r\n\t\tallowedHeaders: options.allowedHeaders || ['Content-Type', 'Authorization', 'X-Requested-With', 'x-refresh-token'],\r\n\t\texposedHeaders: options.exposedHeaders || ['Content-Range', 'X-Content-Range', 'X-New-Access-Token', 'X-New-Refresh-Token'],\r\n\t};\r\n\r\n\t// Convert arrays to comma-separated strings for header values\r\n\tconst methodsString = Array.isArray(config.methods) ? config.methods.join(', ') : config.methods;\r\n\tconst allowedHeadersString = Array.isArray(config.allowedHeaders)\r\n\t\t? config.allowedHeaders.join(', ')\r\n\t\t: config.allowedHeaders;\r\n\tconst exposedHeadersString = Array.isArray(config.exposedHeaders)\r\n\t\t? config.exposedHeaders.join(', ')\r\n\t\t: config.exposedHeaders;\r\n\r\n\t// Return the middleware function\r\n\treturn (req: IncomingMessage, res: ServerResponse, next: () => void) => {\r\n\t\ttry {\r\n\t\t\t// Always set the CORS headers\r\n\t\t\tres.setHeader('Access-Control-Allow-Origin', config.origin);\r\n\r\n\t\t\t// Only set other headers if origin is not blocking the request\r\n\t\t\tif (config.origin !== 'none') {\r\n\t\t\t\tres.setHeader('Access-Control-Allow-Methods', methodsString);\r\n\t\t\t\tres.setHeader('Access-Control-Allow-Headers', allowedHeadersString);\r\n\r\n\t\t\t\tif (exposedHeadersString) {\r\n\t\t\t\t\tres.setHeader('Access-Control-Expose-Headers', exposedHeadersString);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (config.credentials) {\r\n\t\t\t\t\tres.setHeader('Access-Control-Allow-Credentials', 'true');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (config.maxAge) {\r\n\t\t\t\t\tres.setHeader('Access-Control-Max-Age', config.maxAge.toString());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Handle OPTIONS preflight requests\r\n\t\t\tif (req.method === 'OPTIONS') {\r\n\t\t\t\tres.writeHead(204); // 204 No Content is more appropriate for preflight\r\n\t\t\t\tres.end();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Move to the next middleware\r\n\t\t\tnext();\r\n\t\t} catch (error) {\r\n\t\t\t// Handle any errors that might occur\r\n\t\t\tconsole.error('CORS middleware error:', error);\r\n\t\t\t// Call next without the error as it expects no arguments\r\n\t\t\tnext();\r\n\t\t}\r\n\t};\r\n}\r\n"]}
1
+ {"version":3,"file":"cors.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/cors.ts"],"names":[],"mappings":";;AAqBA,wCA6DC;AA7DD,SAAgB,cAAc,CAAC,UAAuB,EAAE;IAEvD,MAAM,MAAM,GAA0B;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,GAAG;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC;QAClD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;QACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,KAAK;QACrD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;QAClH,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;KAC3H,CAAC;IAGF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACjG,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IACzB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IAGzB,OAAO,CAAC,GAAoB,EAAE,GAAmB,EAAE,IAAgB,EAAE,EAAE;QACtE,IAAI,CAAC;YAEJ,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAG5D,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,aAAa,CAAC,CAAC;gBAC7D,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;gBAEpE,IAAI,oBAAoB,EAAE,CAAC;oBAC1B,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,oBAAoB,CAAC,CAAC;gBACtE,CAAC;gBAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACxB,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;gBAC3D,CAAC;gBAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnB,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnE,CAAC;YACF,CAAC;YAGD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACR,CAAC;YAGD,IAAI,EAAE,CAAC;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEhB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAE/C,IAAI,EAAE,CAAC;QACR,CAAC;IACF,CAAC,CAAC;AACH,CAAC","sourcesContent":["import type { IncomingMessage, ServerResponse } from 'http';\n\n/**\n * Interface for CORS middleware options\n */\ninterface CorsOptions {\n\torigin?: string | string[];\n\tmethods?: string[];\n\tallowedHeaders?: string[];\n\texposedHeaders?: string[];\n\tcredentials?: boolean;\n\tmaxAge?: number;\n\tpreflightContinue?: boolean;\n}\n\n/**\n * Creates a configurable CORS middleware for tRPC applications\n *\n * @param options Configuration options for CORS\n * @returns A middleware function for handling CORS\n */\nexport function corsMiddleware(options: CorsOptions = {}) {\n\t// Default configuration with sensible values\n\tconst config: Required<CorsOptions> = {\n\t\torigin: options.origin || '*',\n\t\tmethods: options.methods || ['GET, POST, OPTIONS'],\n\t\tcredentials: options.credentials || false,\n\t\tmaxAge: options.maxAge || 86400, // 24 hours\n\t\tpreflightContinue: options.preflightContinue || false,\n\t\tallowedHeaders: options.allowedHeaders || ['Content-Type', 'Authorization', 'X-Requested-With', 'x-refresh-token'],\n\t\texposedHeaders: options.exposedHeaders || ['Content-Range', 'X-Content-Range', 'X-New-Access-Token', 'X-New-Refresh-Token'],\n\t};\n\n\t// Convert arrays to comma-separated strings for header values\n\tconst methodsString = Array.isArray(config.methods) ? config.methods.join(', ') : config.methods;\n\tconst allowedHeadersString = Array.isArray(config.allowedHeaders)\n\t\t? config.allowedHeaders.join(', ')\n\t\t: config.allowedHeaders;\n\tconst exposedHeadersString = Array.isArray(config.exposedHeaders)\n\t\t? config.exposedHeaders.join(', ')\n\t\t: config.exposedHeaders;\n\n\t// Return the middleware function\n\treturn (req: IncomingMessage, res: ServerResponse, next: () => void) => {\n\t\ttry {\n\t\t\t// Always set the CORS headers\n\t\t\tres.setHeader('Access-Control-Allow-Origin', config.origin);\n\n\t\t\t// Only set other headers if origin is not blocking the request\n\t\t\tif (config.origin !== 'none') {\n\t\t\t\tres.setHeader('Access-Control-Allow-Methods', methodsString);\n\t\t\t\tres.setHeader('Access-Control-Allow-Headers', allowedHeadersString);\n\n\t\t\t\tif (exposedHeadersString) {\n\t\t\t\t\tres.setHeader('Access-Control-Expose-Headers', exposedHeadersString);\n\t\t\t\t}\n\n\t\t\t\tif (config.credentials) {\n\t\t\t\t\tres.setHeader('Access-Control-Allow-Credentials', 'true');\n\t\t\t\t}\n\n\t\t\t\tif (config.maxAge) {\n\t\t\t\t\tres.setHeader('Access-Control-Max-Age', config.maxAge.toString());\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Handle OPTIONS preflight requests\n\t\t\tif (req.method === 'OPTIONS') {\n\t\t\t\tres.writeHead(204); // 204 No Content is more appropriate for preflight\n\t\t\t\tres.end();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Move to the next middleware\n\t\t\tnext();\n\t\t} catch (error) {\n\t\t\t// Handle any errors that might occur\n\t\t\tconsole.error('CORS middleware error:', error);\n\t\t\t// Call next without the error as it expects no arguments\n\t\t\tnext();\n\t\t}\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"phone-verified.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/phone-verified.ts"],"names":[],"mappings":";;AAaA,oEAkBC;AA/BD,yCAAyC;AACzC,iCAAsD;AAEtD,+CAA+C;AAU/C,SAAgB,4BAA4B,CAAC,OAA6B;IACzE,OAAO,IAAA,mCAA4B,EAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;QACxE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,kBAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe;YACxB,MAAM,IAAI,kBAAS,CAAC;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,yDAAyD;aAClE,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { TRPCError } from '@trpc/server';\r\nimport { createAuthenticatedProcedure } from './auth'; // Adjust import path!\r\nimport { AuthEntityType } from '../../auth';\r\nimport { UserModel } from '../../mongo/models';\r\n\r\ninterface PhoneVerifiedOptions {\r\n\tentityTypes: AuthEntityType[];\r\n}\r\n\r\n/**\r\n * A factory that creates a procedure requiring a verified phone number,\r\n * ensuring the user is authenticated and their phone is verified.\r\n */\r\nexport function createPhoneVerifiedProcedure(options: PhoneVerifiedOptions) {\r\n\treturn createAuthenticatedProcedure(options).use(async ({ ctx, next }) => {\r\n\t\tif (!ctx.entity) {\r\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'User not authenticated' });\r\n\t\t}\r\n\r\n\t\tconst user = await UserModel.findOne({ _id: ctx.entity.id });\r\n\t\tif (!user) {\r\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'User not found' });\r\n\t\t}\r\n\t\tif (!user.isPhoneVerified)\r\n\t\t\tthrow new TRPCError({\r\n\t\t\t\tcode: 'FORBIDDEN',\r\n\t\t\t\tmessage: 'Please verify your phone number to access this resource',\r\n\t\t\t});\r\n\r\n\t\treturn next({ ctx });\r\n\t});\r\n}\r\n"]}
1
+ {"version":3,"file":"phone-verified.js","sourceRoot":"/","sources":["libraries/trpc/middlewares/phone-verified.ts"],"names":[],"mappings":";;AAaA,oEAkBC;AA/BD,yCAAyC;AACzC,iCAAsD;AAEtD,+CAA+C;AAU/C,SAAgB,4BAA4B,CAAC,OAA6B;IACzE,OAAO,IAAA,mCAA4B,EAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;QACxE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,kBAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,kBAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,eAAe;YACxB,MAAM,IAAI,kBAAS,CAAC;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,yDAAyD;aAClE,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { TRPCError } from '@trpc/server';\nimport { createAuthenticatedProcedure } from './auth'; // Adjust import path!\nimport { AuthEntityType } from '../../auth';\nimport { UserModel } from '../../mongo/models';\n\ninterface PhoneVerifiedOptions {\n\tentityTypes: AuthEntityType[];\n}\n\n/**\n * A factory that creates a procedure requiring a verified phone number,\n * ensuring the user is authenticated and their phone is verified.\n */\nexport function createPhoneVerifiedProcedure(options: PhoneVerifiedOptions) {\n\treturn createAuthenticatedProcedure(options).use(async ({ ctx, next }) => {\n\t\tif (!ctx.entity) {\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'User not authenticated' });\n\t\t}\n\n\t\tconst user = await UserModel.findOne({ _id: ctx.entity.id });\n\t\tif (!user) {\n\t\t\tthrow new TRPCError({ code: 'UNAUTHORIZED', message: 'User not found' });\n\t\t}\n\t\tif (!user.isPhoneVerified)\n\t\t\tthrow new TRPCError({\n\t\t\t\tcode: 'FORBIDDEN',\n\t\t\t\tmessage: 'Please verify your phone number to access this resource',\n\t\t\t});\n\n\t\treturn next({ ctx });\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/twilio/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAiC;AACjC,mCAAgC;AAGzB,IAAM,aAAa,GAAnB,MAAM,aAAa;IACjB,OAAO,CAAS;IAExB;QACC,IAAI,CAAC,OAAO,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC1F,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,GAAW;QACzD,IAAI,CAAC;YACJ,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACzC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,EAAE,EAAE,YAAY,QAAQ,EAAE;gBAC1B,mBAAmB,EAAE,oCAAoC;gBACzD,UAAU,EAAE,oCAAoC;gBAChD,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;oBAChC,GAAG,EAAE,GAAG;iBACR,CAAC;aACF,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEhB,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;CACD,CAAA;AAvBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,gBAAO,GAAE;;GACG,aAAa,CAuBzB","sourcesContent":["import { MessageInstance } from 'twilio/lib/rest/api/v2010/account/message';\r\nimport { Service } from 'typedi';\r\nimport { Twilio } from 'twilio';\r\n\r\n@Service()\r\nexport class TwilioService {\r\n\tprivate _client: Twilio;\r\n\r\n\tconstructor() {\r\n\t\tthis._client = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);\r\n\t}\r\n\r\n\tpublic async sendWhatsappOTP(toNumber: number, otp: string): Promise<MessageInstance | null> {\r\n\t\ttry {\r\n\t\t\treturn await this._client.messages.create({\r\n\t\t\t\tfrom: process.env.TWILIO_FROM_NUMBER,\r\n\t\t\t\tto: `whatsapp:${toNumber}`,\r\n\t\t\t\tmessagingServiceSid: 'MG7388a0916945dcd333451f22f9f723f7',\r\n\t\t\t\tcontentSid: 'HXbd364741884cfdbbfd7dd38ce7f6b5d3',\r\n\t\t\t\tcontentVariables: JSON.stringify({\r\n\t\t\t\t\t'1': otp,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\t//todo log error in logger\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/twilio/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAiC;AACjC,mCAAgC;AAGzB,IAAM,aAAa,GAAnB,MAAM,aAAa;IACjB,OAAO,CAAS;IAExB;QACC,IAAI,CAAC,OAAO,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC1F,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,GAAW;QACzD,IAAI,CAAC;YACJ,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACzC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBACpC,EAAE,EAAE,YAAY,QAAQ,EAAE;gBAC1B,mBAAmB,EAAE,oCAAoC;gBACzD,UAAU,EAAE,oCAAoC;gBAChD,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC;oBAChC,GAAG,EAAE,GAAG;iBACR,CAAC;aACF,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEhB,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;CACD,CAAA;AAvBY,sCAAa;wBAAb,aAAa;IADzB,IAAA,gBAAO,GAAE;;GACG,aAAa,CAuBzB","sourcesContent":["import { MessageInstance } from 'twilio/lib/rest/api/v2010/account/message';\nimport { Service } from 'typedi';\nimport { Twilio } from 'twilio';\n\n@Service()\nexport class TwilioService {\n\tprivate _client: Twilio;\n\n\tconstructor() {\n\t\tthis._client = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);\n\t}\n\n\tpublic async sendWhatsappOTP(toNumber: number, otp: string): Promise<MessageInstance | null> {\n\t\ttry {\n\t\t\treturn await this._client.messages.create({\n\t\t\t\tfrom: process.env.TWILIO_FROM_NUMBER,\n\t\t\t\tto: `whatsapp:${toNumber}`,\n\t\t\t\tmessagingServiceSid: 'MG7388a0916945dcd333451f22f9f723f7',\n\t\t\t\tcontentSid: 'HXbd364741884cfdbbfd7dd38ce7f6b5d3',\n\t\t\t\tcontentVariables: JSON.stringify({\n\t\t\t\t\t'1': otp,\n\t\t\t\t}),\n\t\t\t});\n\t\t} catch (error) {\n\t\t\t//todo log error in logger\n\t\t\treturn null;\n\t\t}\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/upload/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,kDAA0B;AAC1B,oDAA4B;AAC5B,gDAAwB;AACxB,uCAA2C;AAC3C,4DAA8B;AAE9B,SAAS,QAAQ,CAAC,KAAa;IAC9B,OAAO,KAAK;SACV,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,MAAa,aAAa;IACjB,MAAM,CAAC;IACE,WAAW,CAAC;IAE7B,YAAY,UAAmB;QAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,UAAU,GAAG,aAAa,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAA,oBAAY,GAAE,CAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxF,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,IAAA,oBAAY,GAAE,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACrF,CAAC;IAKO,gBAAgB,CAAC,gBAAwB,EAAE,SAAkB;QACpE,MAAM,cAAc,GAAG,cAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;QACzD,MAAM,YAAY,GAAG,SAAS,IAAI,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,IAAA,gBAAM,GAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC5F,OAAO,QAAQ,GAAG,YAAY,CAAC;IAChC,CAAC;IAMD,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,gBAAwB;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,IAAI,cAA2B,CAAC;QAChC,IAAI,WAAmB,CAAC;QACxB,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAC1B,cAAc,GAAG,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,WAAW,GAAG,WAAW,CAAC;QAC3B,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAClC,cAAc,GAAG,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACrD,WAAW,GAAG,YAAY,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,cAAc,GAAG,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YACrD,WAAW,GAAG,YAAY,CAAC;QAC5B,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACzC,SAAS,EAAE,KAAK;gBAChB,WAAW;aACX,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAClC,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,SAAS,GAAG,kCAAkC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACpF,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IASD,KAAK,CAAC,cAAc,CACnB,MAAc,EACd,gBAAwB,EACxB,WAAqB;QAKrB,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,SAAS,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,IAAA,gBAAM,GAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAEjD,MAAM,YAAY,GAAG,GAAG,QAAQ,CAAC,cAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAEnH,MAAM,gBAAgB,GAAG,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAEnF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhG,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;YAClC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YACnF,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAA2B,CAAC;YACnF,MAAM,aAAa,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC;iBACvC,MAAM,CAAC;gBACP,GAAG,aAAa;gBAChB,kBAAkB,EAAE,IAAI;aACxB,CAAC;iBACD,QAAQ,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;iBACpC,QAAQ,EAAE,CAAC;YACb,MAAM,eAAe,GAAG,GAAG,YAAY,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;YACpE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;YACxF,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QACxC,CAAC,CAAC,CACF,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IACxC,CAAC;IAKO,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,QAAgB,EAAE,WAAmB;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACvB,SAAS,EAAE,KAAK;YAChB,WAAW;SACX,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,kCAAkC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,EAAE,IAAI,CAAC,IAAK;YAChB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAU;SAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC;IAEM,sBAAsB,CAAC,GAAW;QACxC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAW;QAC9B,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAKO,KAAK,CAAC,WAAW,CACxB,MAAc,EACd,QAAgB,EAChB,WAAmB;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAEtC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACzC,SAAS,EAAE,KAAK;gBAChB,WAAW;aACX,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAClC,IAAI,CAAC;oBAEJ,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,SAAS,GAAG,kCAAkC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACpF,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;YACF,CAAC,CAAC,CAAC;YAGH,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,0BAA0B,CAC/B,MAAc,EACd,gBAAwB,EACxB,OAA+D;QAE/D,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC3B,IAAI,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAGvC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrD,KAAK,GAAG,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC;YACrC,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC;QACzC,CAAC;QAGD,MAAM,cAAc,GAAgB,IAAA,eAAK,EAAC,MAAM,CAAC;aAC/C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;aACxC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;gBACzC,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,YAAY;aACzB,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACrC,MAAM,CAAC,GAAG,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAClC,IAAI,CAAC;oBACJ,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;oBACxB,MAAM,SAAS,GAAG,kCAAkC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACpF,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,UAAU,CACf,MAAc,EACd,gBAAwB,EACxB,OAAwF;QAExF,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAG1D,MAAM,WAAW,GAAG,oBAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,0BAA0B,CAAC;QAGzE,IAAI,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC3E,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;CACD;AAnSD,sCAmSC","sourcesContent":["import axios from 'axios';\r\nimport sharp from 'sharp';\r\nimport moment from 'moment';\r\nimport path from 'path';\r\nimport { getLibraries } from '../../index';\r\nimport mime from 'mime-types';\r\n\r\nfunction makeSlug(input: string): string {\r\n\treturn input\r\n\t\t.toLowerCase()\r\n\t\t.replace(/[^a-z0-9]+/g, '-')\r\n\t\t.replace(/(^-|-$)/g, '');\r\n}\r\n\r\nexport class UploadService {\r\n\tprivate bucket;\r\n\tprivate readonly websiteName;\r\n\r\n\tconstructor(bucketName?: string) {\r\n\t\tif (!bucketName) {\r\n\t\t\tbucketName = 'lyxa-global';\r\n\t\t}\r\n\r\n\t\tthis.bucket = getLibraries().getFirebaseService().superApp.storage().bucket(bucketName);\r\n\t\tthis.websiteName = 'lyxa-' + getLibraries().getConfigurationService().options.tenet;\r\n\t}\r\n\r\n\t/**\r\n\t * Generates a unique filename using the original filename.\r\n\t */\r\n\tprivate generateFilename(originalFilename: string, extension?: string): string {\r\n\t\tconst nameWithoutExt = path.parse(originalFilename).name;\r\n\t\tconst newExtension = extension || path.extname(originalFilename);\r\n\t\tconst timestamp = moment().format('DDMMYYHmmss');\r\n\t\tconst randomId = Math.floor(Math.random() * 100);\r\n\t\tconst baseName = `${makeSlug(nameWithoutExt)}-${this.websiteName}-${timestamp}-${randomId}`;\r\n\t\treturn baseName + newExtension;\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads an image buffer after processing it with Sharp.\r\n\t * An optional destinationPath can be provided (e.g., 'images/product.jpg').\r\n\t */\r\n\tasync uploadImage(buffer: Buffer, originalFilename: string): Promise<{ filename: string; url: string }> {\r\n\t\tconst newFilename = this.generateFilename(originalFilename);\r\n\t\tconst extension = path.extname(newFilename).toLowerCase();\r\n\t\tlet processedImage: sharp.Sharp;\r\n\t\tlet contentType: string;\r\n\t\tif (extension === '.png') {\r\n\t\t\tprocessedImage = sharp(buffer).png({ quality: 80 });\r\n\t\t\tcontentType = 'image/png';\r\n\t\t} else if (extension === '.webp') {\r\n\t\t\tprocessedImage = sharp(buffer).webp({ quality: 80 });\r\n\t\t\tcontentType = 'image/webp';\r\n\t\t} else {\r\n\t\t\tprocessedImage = sharp(buffer).jpeg({ quality: 80 });\r\n\t\t\tcontentType = 'image/jpeg';\r\n\t\t}\r\n\r\n\t\tconst file = this.bucket.file(newFilename);\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tconst blobStream = file.createWriteStream({\r\n\t\t\t\tresumable: false,\r\n\t\t\t\tcontentType,\r\n\t\t\t});\r\n\r\n\t\t\tblobStream.on('error', (err: Error) => {\r\n\t\t\t\treject(err);\r\n\t\t\t});\r\n\r\n\t\t\tblobStream.on('finish', async () => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait file.makePublic();\r\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\r\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\treject(err);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tprocessedImage.pipe(blobStream);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Transcodes (resizes) an image buffer into multiple resolutions.\r\n\t * An optional destinationPrefix can be provided to force a specific path or filename base.\r\n\t *\r\n\t * For example, if destinationPrefix is 'images/product', then the original might be\r\n\t * uploaded as 'images/product.jpg' and the resized versions as 'images/product-480.jpg', etc.\r\n\t */\r\n\tasync transcodeImage(\r\n\t\tbuffer: Buffer,\r\n\t\toriginalFilename: string,\r\n\t\tresolutions: number[]\r\n\t): Promise<{\r\n\t\toriginalUrl: string;\r\n\t\tresizedResults: Array<{ resolution: number; url: string }>;\r\n\t}> {\r\n\t\tconst extension = path.extname(originalFilename);\r\n\t\tconst contentType = `image/${extension.replace('.', '') || 'jpeg'}`;\r\n\t\tconst timestamp = moment().format('DDMMYYHmmss');\r\n\t\tconst randomId = Math.floor(Math.random() * 100);\r\n\r\n\t\tconst baseFilename = `${makeSlug(path.parse(originalFilename).name)}-${this.websiteName}-${timestamp}-${randomId}`;\r\n\r\n\t\tconst originalFileName = `${baseFilename}${extension}`;\r\n\t\tconst originalUrl = await this.uploadBuffer(buffer, originalFileName, contentType);\r\n\r\n\t\tconst metadata = await sharp(buffer).metadata();\r\n\t\tconst isLandscape = metadata.width && metadata.height ? metadata.width > metadata.height : true;\r\n\r\n\t\tconst resizedResults = await Promise.all(\r\n\t\t\tresolutions.map(async resolution => {\r\n\t\t\t\tconst resizeOptions = isLandscape ? { width: resolution } : { height: resolution };\r\n\t\t\t\tconst formatKey = (extension.replace('.', '') || 'jpeg') as keyof sharp.FormatEnum;\r\n\t\t\t\tconst resizedBuffer = await sharp(buffer)\r\n\t\t\t\t\t.resize({\r\n\t\t\t\t\t\t...resizeOptions,\r\n\t\t\t\t\t\twithoutEnlargement: true,\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.toFormat(formatKey, { quality: 80 })\r\n\t\t\t\t\t.toBuffer();\r\n\t\t\t\tconst resizedFilename = `${baseFilename}-${resolution}${extension}`;\r\n\t\t\t\tconst resizedUrl = await this.uploadBuffer(resizedBuffer, resizedFilename, contentType);\r\n\t\t\t\treturn { resolution, url: resizedUrl };\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\treturn { originalUrl, resizedResults };\r\n\t}\r\n\r\n\t/**\r\n\t * Helper function to upload a buffer to a specified filename.\r\n\t */\r\n\tprivate async uploadBuffer(buffer: Buffer, filename: string, contentType: string): Promise<string> {\r\n\t\tconst file = this.bucket.file(filename);\r\n\t\tawait file.save(buffer, {\r\n\t\t\tresumable: false,\r\n\t\t\tcontentType,\r\n\t\t});\r\n\t\tawait file.makePublic();\r\n\t\treturn `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\r\n\t}\r\n\r\n\tasync getListFiles(): Promise<Array<{ name: string; url: string }>> {\r\n\t\tconst [files] = await this.bucket.getFiles();\r\n\t\treturn files.map(file => ({\r\n\t\t\tname: file.name!,\r\n\t\t\turl: file.metadata.mediaLink!,\r\n\t\t}));\r\n\t}\r\n\r\n\tasync downloadFile(filename: string): Promise<Buffer> {\r\n\t\tconst file = this.bucket.file(filename);\r\n\t\tconst [buffer] = await file.download();\r\n\t\treturn buffer;\r\n\t}\r\n\r\n\tasync deleteFile(filename: string): Promise<void> {\r\n\t\tconst file = this.bucket.file(filename);\r\n\t\tconst [exists] = await file.exists();\r\n\t\tif (!exists) {\r\n\t\t\tthrow new Error('File does not exist.');\r\n\t\t}\r\n\t\tawait file.delete();\r\n\t}\r\n\r\n\tpublic extractFilenameFromUrl(url: string): string {\r\n\t\ttry {\r\n\t\t\tconst urlObj = new URL(url);\r\n\t\t\tconst pathParts = urlObj.pathname.split('/');\r\n\t\t\treturn decodeURIComponent(pathParts[pathParts.length - 1]);\r\n\t\t} catch (err) {\r\n\t\t\tthrow new Error(`Invalid URL: ${url}`);\r\n\t\t}\r\n\t}\r\n\r\n\tasync deleteFileByUrl(url: string): Promise<void> {\r\n\t\tconst filename = this.extractFilenameFromUrl(url);\r\n\t\tconst file = this.bucket.file(filename);\r\n\t\tconst [exists] = await file.exists();\r\n\t\tif (!exists) {\r\n\t\t\tthrow new Error('File does not exist.');\r\n\t\t}\r\n\t\tawait file.delete();\r\n\t}\r\n\r\n\tasync downloadImage(url: string): Promise<Buffer> {\r\n\t\tconst response = await axios.get(url, { responseType: 'arraybuffer' });\r\n\t\treturn Buffer.from(response.data, 'binary');\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads a buffer to Google Cloud Storage and makes it public\r\n\t */\r\n\tprivate async uploadToGCS(\r\n\t\tbuffer: Buffer,\r\n\t\tfilename: string,\r\n\t\tcontentType: string\r\n\t): Promise<{ filename: string; url: string }> {\r\n\t\tconst file = this.bucket.file(filename);\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\t// Create a write stream to upload the file\r\n\t\t\tconst blobStream = file.createWriteStream({\r\n\t\t\t\tresumable: false,\r\n\t\t\t\tcontentType,\r\n\t\t\t});\r\n\r\n\t\t\tblobStream.on('error', reject);\r\n\r\n\t\t\tblobStream.on('finish', async () => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// Make the file publicly accessible\r\n\t\t\t\t\tawait file.makePublic();\r\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\r\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\treject(err);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Start uploading the buffer\r\n\t\t\tblobStream.end(buffer);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads and converts an image to WebP format, resizes if needed, and uploads to GCS\r\n\t */\r\n\tasync uploadProcessedImageToWebp(\r\n\t\tbuffer: Buffer,\r\n\t\toriginalFilename: string,\r\n\t\toptions?: { quality?: number; width?: number; height?: number }\r\n\t): Promise<{ filename: string; url: string }> {\r\n\t\tconst newFilename = this.generateFilename(originalFilename, '.webp');\r\n\r\n\t\tlet width = options?.width;\r\n\t\tlet height = options?.height;\r\n\t\tconst quality = options?.quality ?? 80;\r\n\r\n\t\t// Get original image dimensions if width or height is missing\r\n\t\tif (!width || !height) {\r\n\t\t\tconst imageMetadata = await sharp(buffer).metadata();\r\n\t\t\twidth = width || imageMetadata.width;\r\n\t\t\theight = height || imageMetadata.height;\r\n\t\t}\r\n\r\n\t\t// Convert to WebP and resize\r\n\t\tconst processedImage: sharp.Sharp = sharp(buffer)\r\n\t\t\t.resize(width, height, { fit: 'inside' })\r\n\t\t\t.webp({ quality });\r\n\r\n\t\tconst file = this.bucket.file(newFilename);\r\n\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tconst blobStream = file.createWriteStream({\r\n\t\t\t\tresumable: false,\r\n\t\t\t\tcontentType: 'image/webp',\r\n\t\t\t});\r\n\r\n\t\t\tblobStream.on('error', (err: Error) => {\r\n\t\t\t\treject(err);\r\n\t\t\t});\r\n\r\n\t\t\tblobStream.on('finish', async () => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait file.makePublic();\r\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\r\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\treject(err);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tprocessedImage.pipe(blobStream);\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Uploads any supported file type to GCS and returns its public URL\r\n\t */\r\n\tasync uploadFile(\r\n\t\tbuffer: Buffer,\r\n\t\toriginalFilename: string,\r\n\t\toptions?: { quality?: number; width?: number; height?: number; withExtension?: boolean }\r\n\t): Promise<{ filename: string; url: string }> {\r\n\t\tconst newFilename = this.generateFilename(originalFilename);\r\n\t\tconst extension = path.extname(newFilename).toLowerCase();\r\n\r\n\t\t// Guess the MIME type using the mime-types library\r\n\t\tconst contentType = mime.lookup(extension) || 'application/octet-stream';\r\n\r\n\t\t// Special image handling (compression)\r\n\t\tif (contentType.startsWith('image/')) {\r\n\t\t\tif (options?.withExtension) {\r\n\t\t\t\treturn this.uploadImage(buffer, originalFilename);\r\n\t\t\t} else {\r\n\t\t\t\treturn this.uploadProcessedImageToWebp(buffer, originalFilename, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.uploadToGCS(buffer, newFilename, contentType);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["libraries/upload/index.ts"],"names":[],"mappings":"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","sourcesContent":["import axios from 'axios';\nimport sharp from 'sharp';\nimport moment from 'moment';\nimport path from 'path';\nimport { getLibraries } from '../../index';\nimport mime from 'mime-types';\n\nfunction makeSlug(input: string): string {\n\treturn input\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, '-')\n\t\t.replace(/(^-|-$)/g, '');\n}\n\nexport class UploadService {\n\tprivate bucket;\n\tprivate readonly websiteName;\n\n\tconstructor(bucketName?: string) {\n\t\tif (!bucketName) {\n\t\t\tbucketName = 'lyxa-global';\n\t\t}\n\n\t\tthis.bucket = getLibraries().getFirebaseService().superApp.storage().bucket(bucketName);\n\t\tthis.websiteName = 'lyxa-' + getLibraries().getConfigurationService().options.tenet;\n\t}\n\n\t/**\n\t * Generates a unique filename using the original filename.\n\t */\n\tprivate generateFilename(originalFilename: string, extension?: string): string {\n\t\tconst nameWithoutExt = path.parse(originalFilename).name;\n\t\tconst newExtension = extension || path.extname(originalFilename);\n\t\tconst timestamp = moment().format('DDMMYYHmmss');\n\t\tconst randomId = Math.floor(Math.random() * 100);\n\t\tconst baseName = `${makeSlug(nameWithoutExt)}-${this.websiteName}-${timestamp}-${randomId}`;\n\t\treturn baseName + newExtension;\n\t}\n\n\t/**\n\t * Uploads an image buffer after processing it with Sharp.\n\t * An optional destinationPath can be provided (e.g., 'images/product.jpg').\n\t */\n\tasync uploadImage(buffer: Buffer, originalFilename: string): Promise<{ filename: string; url: string }> {\n\t\tconst newFilename = this.generateFilename(originalFilename);\n\t\tconst extension = path.extname(newFilename).toLowerCase();\n\t\tlet processedImage: sharp.Sharp;\n\t\tlet contentType: string;\n\t\tif (extension === '.png') {\n\t\t\tprocessedImage = sharp(buffer).png({ quality: 80 });\n\t\t\tcontentType = 'image/png';\n\t\t} else if (extension === '.webp') {\n\t\t\tprocessedImage = sharp(buffer).webp({ quality: 80 });\n\t\t\tcontentType = 'image/webp';\n\t\t} else {\n\t\t\tprocessedImage = sharp(buffer).jpeg({ quality: 80 });\n\t\t\tcontentType = 'image/jpeg';\n\t\t}\n\n\t\tconst file = this.bucket.file(newFilename);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\tresumable: false,\n\t\t\t\tcontentType,\n\t\t\t});\n\n\t\t\tblobStream.on('error', (err: Error) => {\n\t\t\t\treject(err);\n\t\t\t});\n\n\t\t\tblobStream.on('finish', async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t} catch (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tprocessedImage.pipe(blobStream);\n\t\t});\n\t}\n\n\t/**\n\t * Transcodes (resizes) an image buffer into multiple resolutions.\n\t * An optional destinationPrefix can be provided to force a specific path or filename base.\n\t *\n\t * For example, if destinationPrefix is 'images/product', then the original might be\n\t * uploaded as 'images/product.jpg' and the resized versions as 'images/product-480.jpg', etc.\n\t */\n\tasync transcodeImage(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\tresolutions: number[]\n\t): Promise<{\n\t\toriginalUrl: string;\n\t\tresizedResults: Array<{ resolution: number; url: string }>;\n\t}> {\n\t\tconst extension = path.extname(originalFilename);\n\t\tconst contentType = `image/${extension.replace('.', '') || 'jpeg'}`;\n\t\tconst timestamp = moment().format('DDMMYYHmmss');\n\t\tconst randomId = Math.floor(Math.random() * 100);\n\n\t\tconst baseFilename = `${makeSlug(path.parse(originalFilename).name)}-${this.websiteName}-${timestamp}-${randomId}`;\n\n\t\tconst originalFileName = `${baseFilename}${extension}`;\n\t\tconst originalUrl = await this.uploadBuffer(buffer, originalFileName, contentType);\n\n\t\tconst metadata = await sharp(buffer).metadata();\n\t\tconst isLandscape = metadata.width && metadata.height ? metadata.width > metadata.height : true;\n\n\t\tconst resizedResults = await Promise.all(\n\t\t\tresolutions.map(async resolution => {\n\t\t\t\tconst resizeOptions = isLandscape ? { width: resolution } : { height: resolution };\n\t\t\t\tconst formatKey = (extension.replace('.', '') || 'jpeg') as keyof sharp.FormatEnum;\n\t\t\t\tconst resizedBuffer = await sharp(buffer)\n\t\t\t\t\t.resize({\n\t\t\t\t\t\t...resizeOptions,\n\t\t\t\t\t\twithoutEnlargement: true,\n\t\t\t\t\t})\n\t\t\t\t\t.toFormat(formatKey, { quality: 80 })\n\t\t\t\t\t.toBuffer();\n\t\t\t\tconst resizedFilename = `${baseFilename}-${resolution}${extension}`;\n\t\t\t\tconst resizedUrl = await this.uploadBuffer(resizedBuffer, resizedFilename, contentType);\n\t\t\t\treturn { resolution, url: resizedUrl };\n\t\t\t})\n\t\t);\n\n\t\treturn { originalUrl, resizedResults };\n\t}\n\n\t/**\n\t * Helper function to upload a buffer to a specified filename.\n\t */\n\tprivate async uploadBuffer(buffer: Buffer, filename: string, contentType: string): Promise<string> {\n\t\tconst file = this.bucket.file(filename);\n\t\tawait file.save(buffer, {\n\t\t\tresumable: false,\n\t\t\tcontentType,\n\t\t});\n\t\tawait file.makePublic();\n\t\treturn `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t}\n\n\tasync getListFiles(): Promise<Array<{ name: string; url: string }>> {\n\t\tconst [files] = await this.bucket.getFiles();\n\t\treturn files.map(file => ({\n\t\t\tname: file.name!,\n\t\t\turl: file.metadata.mediaLink!,\n\t\t}));\n\t}\n\n\tasync downloadFile(filename: string): Promise<Buffer> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [buffer] = await file.download();\n\t\treturn buffer;\n\t}\n\n\tasync deleteFile(filename: string): Promise<void> {\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\t\tif (!exists) {\n\t\t\tthrow new Error('File does not exist.');\n\t\t}\n\t\tawait file.delete();\n\t}\n\n\tpublic extractFilenameFromUrl(url: string): string {\n\t\ttry {\n\t\t\tconst urlObj = new URL(url);\n\t\t\tconst pathParts = urlObj.pathname.split('/');\n\t\t\treturn decodeURIComponent(pathParts[pathParts.length - 1]);\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid URL: ${url}`);\n\t\t}\n\t}\n\n\tasync deleteFileByUrl(url: string): Promise<void> {\n\t\tconst filename = this.extractFilenameFromUrl(url);\n\t\tconst file = this.bucket.file(filename);\n\t\tconst [exists] = await file.exists();\n\t\tif (!exists) {\n\t\t\tthrow new Error('File does not exist.');\n\t\t}\n\t\tawait file.delete();\n\t}\n\n\tasync downloadImage(url: string): Promise<Buffer> {\n\t\tconst response = await axios.get(url, { responseType: 'arraybuffer' });\n\t\treturn Buffer.from(response.data, 'binary');\n\t}\n\n\t/**\n\t * Uploads a buffer to Google Cloud Storage and makes it public\n\t */\n\tprivate async uploadToGCS(\n\t\tbuffer: Buffer,\n\t\tfilename: string,\n\t\tcontentType: string\n\t): Promise<{ filename: string; url: string }> {\n\t\tconst file = this.bucket.file(filename);\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Create a write stream to upload the file\n\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\tresumable: false,\n\t\t\t\tcontentType,\n\t\t\t});\n\n\t\t\tblobStream.on('error', reject);\n\n\t\t\tblobStream.on('finish', async () => {\n\t\t\t\ttry {\n\t\t\t\t\t// Make the file publicly accessible\n\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t} catch (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Start uploading the buffer\n\t\t\tblobStream.end(buffer);\n\t\t});\n\t}\n\n\t/**\n\t * Uploads and converts an image to WebP format, resizes if needed, and uploads to GCS\n\t */\n\tasync uploadProcessedImageToWebp(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\toptions?: { quality?: number; width?: number; height?: number }\n\t): Promise<{ filename: string; url: string }> {\n\t\tconst newFilename = this.generateFilename(originalFilename, '.webp');\n\n\t\tlet width = options?.width;\n\t\tlet height = options?.height;\n\t\tconst quality = options?.quality ?? 80;\n\n\t\t// Get original image dimensions if width or height is missing\n\t\tif (!width || !height) {\n\t\t\tconst imageMetadata = await sharp(buffer).metadata();\n\t\t\twidth = width || imageMetadata.width;\n\t\t\theight = height || imageMetadata.height;\n\t\t}\n\n\t\t// Convert to WebP and resize\n\t\tconst processedImage: sharp.Sharp = sharp(buffer)\n\t\t\t.resize(width, height, { fit: 'inside' })\n\t\t\t.webp({ quality });\n\n\t\tconst file = this.bucket.file(newFilename);\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst blobStream = file.createWriteStream({\n\t\t\t\tresumable: false,\n\t\t\t\tcontentType: 'image/webp',\n\t\t\t});\n\n\t\t\tblobStream.on('error', (err: Error) => {\n\t\t\t\treject(err);\n\t\t\t});\n\n\t\t\tblobStream.on('finish', async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait file.makePublic();\n\t\t\t\t\tconst publicUrl = `https://storage.googleapis.com/${this.bucket.name}/${file.name}`;\n\t\t\t\t\tresolve({ filename: file.name, url: publicUrl });\n\t\t\t\t} catch (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tprocessedImage.pipe(blobStream);\n\t\t});\n\t}\n\n\t/**\n\t * Uploads any supported file type to GCS and returns its public URL\n\t */\n\tasync uploadFile(\n\t\tbuffer: Buffer,\n\t\toriginalFilename: string,\n\t\toptions?: { quality?: number; width?: number; height?: number; withExtension?: boolean }\n\t): Promise<{ filename: string; url: string }> {\n\t\tconst newFilename = this.generateFilename(originalFilename);\n\t\tconst extension = path.extname(newFilename).toLowerCase();\n\n\t\t// Guess the MIME type using the mime-types library\n\t\tconst contentType = mime.lookup(extension) || 'application/octet-stream';\n\n\t\t// Special image handling (compression)\n\t\tif (contentType.startsWith('image/')) {\n\t\t\tif (options?.withExtension) {\n\t\t\t\treturn this.uploadImage(buffer, originalFilename);\n\t\t\t} else {\n\t\t\t\treturn this.uploadProcessedImageToWebp(buffer, originalFilename, options);\n\t\t\t}\n\t\t}\n\n\t\treturn this.uploadToGCS(buffer, newFilename, contentType);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"password.js","sourceRoot":"/","sources":["utilities/common/password.ts"],"names":[],"mappings":";;;;;AAGA,oCAGC;AAED,wCAQC;AAhBD,yCAAyC;AACzC,wDAA8B;AAEvB,KAAK,UAAU,YAAY,CAAC,QAAgB;IAClD,MAAM,IAAI,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,kBAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,aAAqB,EAAE,cAAsB;IACjF,MAAM,eAAe,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC5E,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAS,CAAC;YACnB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,8BAA8B;SACvC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC","sourcesContent":["import { TRPCError } from '@trpc/server';\r\nimport bcrypt from 'bcryptjs';\r\n\r\nexport async function hashPassword(password: string): Promise<string> {\r\n\tconst salt = await bcrypt.genSalt(10);\r\n\treturn bcrypt.hash(password, salt);\r\n}\r\n\r\nexport async function verifyPassword(inputPassword: string, hashedPassword: string) {\r\n\tconst isPasswordValid = await bcrypt.compare(inputPassword, hashedPassword);\r\n\tif (!isPasswordValid) {\r\n\t\tthrow new TRPCError({\r\n\t\t\tcode: 'UNAUTHORIZED',\r\n\t\t\tmessage: 'Incorrect email or password.',\r\n\t\t});\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"password.js","sourceRoot":"/","sources":["utilities/common/password.ts"],"names":[],"mappings":";;;;;AAGA,oCAGC;AAED,wCAQC;AAhBD,yCAAyC;AACzC,wDAA8B;AAEvB,KAAK,UAAU,YAAY,CAAC,QAAgB;IAClD,MAAM,IAAI,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,kBAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,aAAqB,EAAE,cAAsB;IACjF,MAAM,eAAe,GAAG,MAAM,kBAAM,CAAC,OAAO,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAC5E,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAS,CAAC;YACnB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,8BAA8B;SACvC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC","sourcesContent":["import { TRPCError } from '@trpc/server';\nimport bcrypt from 'bcryptjs';\n\nexport async function hashPassword(password: string): Promise<string> {\n\tconst salt = await bcrypt.genSalt(10);\n\treturn bcrypt.hash(password, salt);\n}\n\nexport async function verifyPassword(inputPassword: string, hashedPassword: string) {\n\tconst isPasswordValid = await bcrypt.compare(inputPassword, hashedPassword);\n\tif (!isPasswordValid) {\n\t\tthrow new TRPCError({\n\t\t\tcode: 'UNAUTHORIZED',\n\t\t\tmessage: 'Incorrect email or password.',\n\t\t});\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"week.js","sourceRoot":"/","sources":["utilities/common/week.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACzF,CAAC","sourcesContent":["export const daysOfWeek = Array.from({ length: 7 }, (_, i) =>\r\n new Intl.DateTimeFormat('en-US', { weekday: 'long' }).format(new Date(1970, 0, 4 + i))\r\n);"]}
1
+ {"version":3,"file":"week.js","sourceRoot":"/","sources":["utilities/common/week.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CACzF,CAAC","sourcesContent":["export const daysOfWeek = Array.from({ length: 7 }, (_, i) =>\n new Intl.DateTimeFormat('en-US', { weekday: 'long' }).format(new Date(1970, 0, 4 + i))\n);"]}
@@ -35,7 +35,7 @@ export declare enum ValueType {
35
35
  }
36
36
  export declare enum PaymentMethod {
37
37
  CASH = "cash",
38
- CARD = "card"
38
+ ONLINE = "online"
39
39
  }
40
40
  export declare enum PaymentStatus {
41
41
  PAID = "paid",
@@ -278,6 +278,7 @@ export declare enum PaymentPreference {
278
278
  PAY_FOR_THEMSELVES = "pay_for_themselves"
279
279
  }
280
280
  export declare enum CardType {
281
+ STRIPE = "stripe",
281
282
  AREEBA = "areeba"
282
283
  }
283
284
  export declare enum CardUserType {
@@ -369,3 +370,13 @@ export declare enum WorkingHourSettingsType {
369
370
  export declare enum MediaType {
370
371
  IMAGE = "image"
371
372
  }
373
+ export declare enum SettlementType {
374
+ ADD_CREDIT = "add_credit",
375
+ REMOVE_CREDIT = "remove_credit",
376
+ EXPIRED_LOYALTY_POINTS = "expired_loyalty_points",
377
+ RIDER_SETTLE_CASH = "rider_settle_cash",
378
+ SETTLE_VAT = "settle_vat",
379
+ SETTLE_FEATURED_AMOUNT = "settle_featured_amount",
380
+ SETTLE_SUBSCRIPTION_AMOUNT = "settle_subscription_amount",
381
+ SETTLE_PAYOUT = "settle_payout"
382
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreatedBy = exports.LiveStatus = exports.AreebaCardStatus = exports.CardUserType = exports.CardType = exports.PaymentPreference = exports.CartStatus = exports.AdminRole = exports.MarketingStatus = exports.MarketingType = exports.FavouriteType = exports.CouponExpirationReason = exports.CouponType = exports.BobType = exports.BobModel = exports.BobSettlementStatus = exports.BobSettlementType = exports.BobAccountType = exports.ZoneStatus = exports.FaqAccountType = exports.CounterType = exports.BannerUserType = exports.BannerLinkType = exports.BannerClickType = exports.ShopRole = exports.ShopOnlineStatus = exports.ChargeType = exports.ClickType = exports.NotificationAccountType = exports.DishCategory = exports.ProductDietaryType = exports.AttributeItemSelectionType = exports.PriceOption = exports.ProductType = exports.CoreAuthIdentityType = exports.SectionType = exports.UpdatedField = exports.GeoLocationType = exports.RatingAccountType = exports.SubscriptionStatus = exports.SubscriptionPackage = exports.PaidCurrency = exports.PaymentStatus = exports.PaymentMethod = exports.ValueType = exports.HolidayWorkStatus = exports.WorkStatus = exports.WeekDay = exports.ItemType = exports.Status = void 0;
4
- exports.MediaType = exports.WorkingHourSettingsType = exports.ZoneGeometryType = exports.RiderAssignmentStatus = exports.CourierServiceType = exports.OrderCancelBy = exports.DeliveryStatus = exports.CourierOrderStatus = exports.RegularOrderStatus = exports.OrderType = exports.Language = exports.RiderBagSize = exports.RiderType = exports.ShiftType = void 0;
4
+ exports.SettlementType = exports.MediaType = exports.WorkingHourSettingsType = exports.ZoneGeometryType = exports.RiderAssignmentStatus = exports.CourierServiceType = exports.OrderCancelBy = exports.DeliveryStatus = exports.CourierOrderStatus = exports.RegularOrderStatus = exports.OrderType = exports.Language = exports.RiderBagSize = exports.RiderType = exports.ShiftType = void 0;
5
5
  var Status;
6
6
  (function (Status) {
7
7
  Status["ACTIVE"] = "active";
@@ -46,7 +46,7 @@ var ValueType;
46
46
  var PaymentMethod;
47
47
  (function (PaymentMethod) {
48
48
  PaymentMethod["CASH"] = "cash";
49
- PaymentMethod["CARD"] = "card";
49
+ PaymentMethod["ONLINE"] = "online";
50
50
  })(PaymentMethod || (exports.PaymentMethod = PaymentMethod = {}));
51
51
  var PaymentStatus;
52
52
  (function (PaymentStatus) {
@@ -328,6 +328,7 @@ var PaymentPreference;
328
328
  })(PaymentPreference || (exports.PaymentPreference = PaymentPreference = {}));
329
329
  var CardType;
330
330
  (function (CardType) {
331
+ CardType["STRIPE"] = "stripe";
331
332
  CardType["AREEBA"] = "areeba";
332
333
  })(CardType || (exports.CardType = CardType = {}));
333
334
  var CardUserType;
@@ -437,4 +438,15 @@ var MediaType;
437
438
  (function (MediaType) {
438
439
  MediaType["IMAGE"] = "image";
439
440
  })(MediaType || (exports.MediaType = MediaType = {}));
441
+ var SettlementType;
442
+ (function (SettlementType) {
443
+ SettlementType["ADD_CREDIT"] = "add_credit";
444
+ SettlementType["REMOVE_CREDIT"] = "remove_credit";
445
+ SettlementType["EXPIRED_LOYALTY_POINTS"] = "expired_loyalty_points";
446
+ SettlementType["RIDER_SETTLE_CASH"] = "rider_settle_cash";
447
+ SettlementType["SETTLE_VAT"] = "settle_vat";
448
+ SettlementType["SETTLE_FEATURED_AMOUNT"] = "settle_featured_amount";
449
+ SettlementType["SETTLE_SUBSCRIPTION_AMOUNT"] = "settle_subscription_amount";
450
+ SettlementType["SETTLE_PAYOUT"] = "settle_payout";
451
+ })(SettlementType || (exports.SettlementType = SettlementType = {}));
440
452
  //# sourceMappingURL=enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"/","sources":["utilities/enum.ts"],"names":[],"mappings":"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","sourcesContent":["export enum Status {\r\n\tACTIVE = 'active',\r\n\tINACTIVE = 'inactive',\r\n}\r\n\r\nexport enum ItemType {\r\n\tFOOD = 'food',\r\n\tGROCERY = 'grocery',\r\n\tPHARMACY = 'pharmacy',\r\n\tCOFFEE = 'coffee',\r\n\tFLOWER = 'flower',\r\n\tPET = 'pet',\r\n\tHEALTHY_CORNER = 'healthy_corner',\r\n}\r\n\r\nexport enum WeekDay {\r\n\tSunday = 0,\r\n\tMonday = 1,\r\n\tTuesday = 2,\r\n\tWednesday = 3,\r\n\tThursday = 4,\r\n\tFriday = 5,\r\n\tSaturday = 6,\r\n}\r\n\r\nexport enum WorkStatus {\r\n\tOPEN = 'open',\r\n\tCLOSED = 'closed',\r\n\tFULL_DAY = 'full_day',\r\n}\r\n\r\nexport enum HolidayWorkStatus {\r\n\tCLOSED = WorkStatus.CLOSED,\r\n\tFULL_DAY = WorkStatus.FULL_DAY,\r\n}\r\n\r\nexport enum ValueType {\r\n\tPERCENTAGE = 'percentage',\r\n\tFIXED = 'fixed',\r\n}\r\n\r\nexport enum PaymentMethod {\r\n\tCASH = 'cash',\r\n\tCARD = 'card',\r\n}\r\n\r\nexport enum PaymentStatus {\r\n\tPAID = 'paid',\r\n\tPENDING = 'pending',\r\n\tFAILED = 'failed',\r\n\tREFUNDED = 'refunded',\r\n\tPARTIALLY_REFUNDED = 'partially_refunded',\r\n}\r\n\r\nexport enum PaidCurrency {\r\n\tBASE = 'base',\r\n\tSECONDARY = 'secondary',\r\n\tMIXED = 'mixed',\r\n}\r\n\r\nexport enum SubscriptionPackage {\r\n\tMONTHLY = 'monthly',\r\n\tYEARLY = 'yearly',\r\n}\r\n\r\nexport enum SubscriptionStatus {\r\n\tONGOING = 'ongoing',\r\n\tEXPIRED = 'expired',\r\n}\r\n\r\nexport enum RatingAccountType {\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n}\r\n\r\nexport enum GeoLocationType {\r\n\tPOINT = 'Point',\r\n}\r\n\r\nexport enum UpdatedField {\r\n\tMAX_TOTAL_EST_ITEMS_PRICE = 'max_total_est_items_price',\r\n\tMAX_DISTANCE = 'max_distance',\r\n\tDAILY_WORKING_HOURS = 'daily_working_hours',\r\n\tBOB_CASH_SETTLEMENT_LIMIT = 'bob_cash_settlement_limit',\r\n\tTIPS = 'tips',\r\n\tEQUIPMENTS = 'equipments',\r\n\tMONTHLY_SHOP_TARGET = 'monthly_shop_target',\r\n\tMONTHLY_REWARD_PRIZE = 'monthly_reward_prize',\r\n\tBASE_CURRENCY = 'base_currency',\r\n\tSECONDARY_CURRENCY = 'secondary_currency',\r\n\tIS_DUAL_CURRENCY_ENABLED = 'is_dual_currency_enabled',\r\n\tEXCHANGE_RATE = 'exchange_rate',\r\n\tISSUANCE_DAY = 'issuance_day',\r\n\tOVER_DUE_PERIODS = 'over_due_periods',\r\n\tPAY_LIMIT_FOR_USER = 'pay_limit_for_user',\r\n\tVAT_PERCENTAGE = 'vat_percentage',\r\n\tRIDER_SEARCH_RANGES = 'rider_search_ranges',\r\n\tNEAR_BY_SHOP_DISTANCE = 'near_by_shop_distance',\r\n\tNEAR_BY_SHOP_DISTANCE_IN_HOME_SCREEN = 'near_by_shop_distance_in_home_screen',\r\n\tUNITS = 'units',\r\n\tCURRENCY_SETTING = 'currency_setting',\r\n\tPAYMENT_METHODS = 'payment_methods',\r\n\tIS_GROUND_ORDER_ENABLED = 'is_ground_order_enabled',\r\n\tCUSTOMER_SUPPORT_PHONE_NUMBER = 'customer_support_phone_number',\r\n}\r\n\r\nexport enum SectionType {\r\n\tSTORE_PUNCHES = 'store_punches',\r\n\tNEARBY_RESTAURANT = 'nearby_restaurant',\r\n\tNEARBY_GROCERY = 'nearby_grocery',\r\n\tNEARBY_PHARMACY = 'nearby_pharmacy',\r\n\tDISCOUNT = 'discount',\r\n\tFREE_DELIVERY = 'free_delivery',\r\n\tCRAZY_OFFER_SHOPS = 'crazy_offer_shops',\r\n\tORDER_AGAIN = 'order_again',\r\n\tFEATURED = 'featured',\r\n\tLOVE = 'love',\r\n\tAUTHENTIC_BEIRUT = 'authentic_beirut',\r\n\tNEAR_ME = 'near_me',\r\n}\r\n\r\nexport enum CoreAuthIdentityType {\r\n\tEMAIL = 'email',\r\n\tPHONE = 'phone',\r\n\tGOOGLE = 'google',\r\n\tAPPLE = 'apple',\r\n}\r\n\r\nexport enum ProductType {\r\n\tMEAT = 'meat',\r\n\tCHICKEN = 'chicken',\r\n\tFISH = 'fish',\r\n\tVEGETARIAN = 'vegetarian',\r\n\tOTHER = 'other',\r\n}\r\n\r\nexport enum PriceOption {\r\n\tSINGLE_PRICE = 'single_price',\r\n\tPRICE_PER_UNIT = 'price_per_unit',\r\n\tPRICE_PER_PORTION = 'price_per_portion',\r\n}\r\n\r\nexport enum AttributeItemSelectionType {\r\n\tSINGLE = 'single',\r\n\tMULTIPLE = 'multiple',\r\n}\r\n\r\nexport enum ProductDietaryType {\r\n\tGLUTEN_FREE = 'gluten_free',\r\n\tLOW_CAL = 'low_cal',\r\n\tVEGETARIAN = 'vegetarian',\r\n\tVEGAN = 'vegan',\r\n\tKETO = 'keto',\r\n\tLACTOSE_FREE = 'lactose_free',\r\n\tHIGH_PROTEIN = 'high_protein',\r\n}\r\n\r\nexport enum DishCategory {\r\n\tBREAKFAST = 'breakfast',\r\n\tLUNCH = 'lunch',\r\n\tDINNER = 'dinner',\r\n\tSNACKS = 'snacks',\r\n}\r\n\r\nexport enum NotificationAccountType {\r\n\tUSER = 'user',\r\n\tPARENT = 'parent',\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n\tADMIN = 'admin',\r\n\tCUSTOMER_SERVICE = 'customer_service',\r\n}\r\n\r\nexport enum ClickType {\r\n\tCLICKABLE_URL = 'clickable_url',\r\n\tCLICKABLE_ORDER = 'clickable_order',\r\n\tCLICKABLE_SHOP = 'clickable_shop',\r\n\tCLICKABLE_PRODUCT = 'clickable_product',\r\n\tCLICKABLE_LIST_CONTAINER = 'clickable_list_container',\r\n\tCLICKABLE_PAYOUT = 'clickable_payout',\r\n\tCLICKABLE_BOB_FINANCE = 'clickable_bob_finance',\r\n\tCLICKABLE_REQUEST_AREA = 'clickable_request_area',\r\n}\r\n\r\nexport enum ChargeType {\r\n\tCUSTOM = 'custom',\r\n}\r\n\r\nexport enum ShopOnlineStatus {\r\n\tONLINE = 'online',\r\n\tOFFLINE = 'offline',\r\n\tBUSY = 'busy',\r\n}\r\n\r\nexport enum ShopRole {\r\n\tPARENT = 'parent',\r\n\tPARENT_MANAGER = 'parent_manager',\r\n\tPARENT_ORDER_MANAGER = 'parent_order_manager',\r\n\tSHOP = 'shop',\r\n\tSHOP_MANAGER = 'shop_manager',\r\n\tSHOP_ORDER_MANAGER = 'shop_order_manager',\r\n}\r\n\r\nexport enum BannerClickType {\r\n\tLINK = 'link',\r\n\tSHOP = 'shop',\r\n\tPRODUCT = 'product',\r\n\tLIST_CONTAINER = 'list_container',\r\n\tPLUS = 'plus',\r\n}\r\n\r\nexport enum BannerLinkType {\r\n\tURL = 'url',\r\n\tAPP_ROUTE = 'app-route',\r\n}\r\n\r\nexport enum BannerUserType {\r\n\tALL = 'all',\r\n\tPLUS = 'plus',\r\n\tNORMAL = 'normal',\r\n}\r\n\r\nexport enum CounterType {\r\n\tORDER = 'order',\r\n\tCRM_NUMBER = 'crm_number',\r\n\tshop = 'shop',\r\n}\r\n\r\nexport enum FaqAccountType {\r\n\tUSER = 'user',\r\n\tSHOP = 'shop',\r\n\tRIDER = 'rider',\r\n}\r\n\r\nexport enum ZoneStatus {\r\n\tACTIVE = 'active',\r\n\tINACTIVE = 'inactive',\r\n\tBUSY = 'busy',\r\n}\r\n\r\nexport enum BobAccountType {\r\n\tRIDER = 'rider',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum BobSettlementType {\r\n\tSETTLE_CASH = 'settle_cash',\r\n\tSETTLE_PAYOUT = 'settle_Payout',\r\n}\r\n\r\nexport enum BobSettlementStatus {\r\n\tNOT_PAID = 'not_paid',\r\n\tPAID = 'paid',\r\n\tREVOKED = 'revoked',\r\n}\r\n\r\nexport enum BobModel {\r\n\tC2B = 'C2B',\r\n\tB2C = 'B2C',\r\n}\r\n\r\nexport enum BobType {\r\n\tINWARD = 'inward',\r\n\tOUTWARD = 'outward',\r\n}\r\n\r\nexport enum CouponType {\r\n\tGLOBAL = 'global',\r\n\tINDIVIDUAL_STORE = 'individual_store',\r\n\tINDIVIDUAL_USER = 'individual_user',\r\n\tCUSTOM_COUPON = 'custom_coupon',\r\n\tREFERRAL_CODE = 'referral_code',\r\n\tREFERRAL_REWARD = 'referral_reward',\r\n}\r\n\r\nexport enum CouponExpirationReason {\r\n\tDURATION = 'duration',\r\n\tSPEND_LIMIT = 'spendLimit',\r\n\tTOTAL_ORDER_LIMIT = 'totalOrderLimit',\r\n}\r\n\r\nexport enum FavouriteType {\r\n\tPRODUCT = 'product',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum MarketingType {\r\n\tDISCOUNT = 'discount',\r\n\tBUY1GET1 = 'buy1get1',\r\n\tFREE_DELIVERY = 'free_delivery',\r\n\tFEATURED = 'featured',\r\n\tLOYALTY_POINT = 'loyalty_point',\r\n\tPUNCH_MARKETING = 'punch_marketing',\r\n}\r\n\r\nexport enum MarketingStatus {\r\n\tACTIVE = 'active',\r\n\tPAUSED = 'paused',\r\n\tEXPIRED = 'expired',\r\n\tDELETED = 'deleted',\r\n}\r\n\r\nexport enum AdminRole {\r\n\tSUPER_ADMIN = 'super_admin',\r\n\tGENERAL_MANAGER = 'general_manager',\r\n\tORDER_MANAGEMENT_MANAGER = 'order_management_lead',\r\n\tORDER_MANAGEMENT_AGENT = 'order_management_agent',\r\n\tACCOUNT_MANAGER = 'account_manager',\r\n\tBUSINESS_DEVELOPMENT_EXECUTIVE = 'business_development_executive',\r\n\tACCOUNTING = 'accounting',\r\n\tMARKETING_MANAGER = 'marketing_manager',\r\n}\r\n\r\nexport enum CartStatus {\r\n\tACTIVE = 'active',\r\n\tLOCKED = 'locked',\r\n\tSUBMITTED = 'submitted',\r\n}\r\n\r\nexport enum PaymentPreference {\r\n\tPAY_FOR_EVERYONE = 'pay_for_everyone',\r\n\tPAY_FOR_THEMSELVES = 'pay_for_themselves',\r\n}\r\n\r\nexport enum CardType {\r\n\tAREEBA = 'areeba',\r\n}\r\n\r\nexport enum CardUserType {\r\n\tPARENT = 'parent',\r\n\tADMIN = 'admin',\r\n\tUSER = 'user',\r\n}\r\n\r\nexport enum AreebaCardStatus {\r\n\tPENDING = 'pending',\r\n\tACTIVE = 'active',\r\n}\r\n\r\nexport enum LiveStatus {\r\n\tONLINE = 'online',\r\n\tOFFLINE = 'offline',\r\n}\r\n\r\nexport enum CreatedBy {\r\n\tADMIN = 'admin',\r\n\tRIDER = 'rider',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum ShiftType {\r\n\tDAY = 'day',\r\n\tNIGHT = 'night',\r\n}\r\n\r\nexport enum RiderType {\r\n\tSHOP_RIDER = 'shop_rider',\r\n\tLYXA_RIDER = 'lyxa_rider',\r\n}\r\n\r\nexport enum RiderBagSize {\r\n\tREGULAR = 'regular',\r\n\tLARGE = 'large',\r\n}\r\n\r\nexport enum Language {\r\n\tEN = 'en',\r\n\tAR = 'ar',\r\n}\r\n\r\nexport enum OrderType {\r\n\tREGULAR = 'regular',\r\n\tCOURIER = 'courier',\r\n}\r\n\r\nexport enum RegularOrderStatus {\r\n\tSCHEDULED = 'schedule',\r\n\tPLACED = 'placed',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tPREPARING = 'preparing',\r\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum CourierOrderStatus {\r\n\tSCHEDULED = 'schedule',\r\n\tPLACED = 'placed',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum DeliveryStatus {\r\n\tPENDING = 'pending',\r\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\r\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\r\n\tON_THE_WAY = 'on_the_way',\r\n\tDELIVERED = 'delivered',\r\n\tCANCELLED = 'cancelled',\r\n}\r\n\r\nexport enum OrderCancelBy {\r\n\tUSER = 'user',\r\n\tADMIN = 'admin',\r\n\tSHOP = 'shop',\r\n}\r\n\r\nexport enum CourierServiceType {\r\n\tDELIVERY_ONLY = 'delivery_only',\r\n\tPURCHASE_AND_DELIVER = 'purchase_and_deliver',\r\n}\r\n\r\nexport enum RiderAssignmentStatus {\r\n\tREQUESTED = 'requested',\r\n\tASSIGNED = 'assigned',\r\n\tREJECTED = 'rejected',\r\n\tCANCELED = 'canceled',\r\n}\r\n\r\nexport enum ZoneGeometryType {\r\n\tPOLYGON = 'Polygon',\r\n}\r\n\r\nexport enum WorkingHourSettingsType {\r\n\tGLOBAL = 'Global',\r\n\tSHOP = 'Shop',\r\n}\r\n\r\nexport enum MediaType {\r\n\tIMAGE = 'image',\r\n}\r\n"]}
1
+ {"version":3,"file":"enum.js","sourceRoot":"/","sources":["utilities/enum.ts"],"names":[],"mappings":";;;;AAAA,IAAY,MAGX;AAHD,WAAY,MAAM;IACjB,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;AACtB,CAAC,EAHW,MAAM,sBAAN,MAAM,QAGjB;AAED,IAAY,QAQX;AARD,WAAY,QAAQ;IACnB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,6CAAiC,CAAA;AAClC,CAAC,EARW,QAAQ,wBAAR,QAAQ,QAQnB;AAED,IAAY,OAQX;AARD,WAAY,OAAO;IAClB,yCAAU,CAAA;IACV,yCAAU,CAAA;IACV,2CAAW,CAAA;IACX,+CAAa,CAAA;IACb,6CAAY,CAAA;IACZ,yCAAU,CAAA;IACV,6CAAY,CAAA;AACb,CAAC,EARW,OAAO,uBAAP,OAAO,QAQlB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;AACtB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC5B,sCAA0B,CAAA;IAC1B,0CAA8B,CAAA;AAC/B,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,sCAAyB,CAAA;IACzB,4BAAe,CAAA;AAChB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACxB,8BAAa,CAAA;IACb,kCAAiB,CAAA;AAClB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,aAMX;AAND,WAAY,aAAa;IACxB,8BAAa,CAAA;IACb,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,0DAAyC,CAAA;AAC1C,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,6BAAa,CAAA;IACb,uCAAuB,CAAA;IACvB,+BAAe,CAAA;AAChB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC9B,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;AAClB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC7B,yCAAmB,CAAA;IACnB,yCAAmB,CAAA;AACpB,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC5B,kCAAa,CAAA;IACb,oCAAe,CAAA;AAChB,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,eAEX;AAFD,WAAY,eAAe;IAC1B,kCAAe,CAAA;AAChB,CAAC,EAFW,eAAe,+BAAf,eAAe,QAE1B;AAED,IAAY,YAyBX;AAzBD,WAAY,YAAY;IACvB,uEAAuD,CAAA;IACvD,6CAA6B,CAAA;IAC7B,2DAA2C,CAAA;IAC3C,uEAAuD,CAAA;IACvD,6BAAa,CAAA;IACb,yCAAyB,CAAA;IACzB,2DAA2C,CAAA;IAC3C,6DAA6C,CAAA;IAC7C,+CAA+B,CAAA;IAC/B,yDAAyC,CAAA;IACzC,qEAAqD,CAAA;IACrD,+CAA+B,CAAA;IAC/B,6CAA6B,CAAA;IAC7B,qDAAqC,CAAA;IACrC,yDAAyC,CAAA;IACzC,iDAAiC,CAAA;IACjC,2DAA2C,CAAA;IAC3C,+DAA+C,CAAA;IAC/C,6FAA6E,CAAA;IAC7E,+BAAe,CAAA;IACf,qDAAqC,CAAA;IACrC,mDAAmC,CAAA;IACnC,mEAAmD,CAAA;IACnD,+EAA+D,CAAA;AAChE,CAAC,EAzBW,YAAY,4BAAZ,YAAY,QAyBvB;AAED,IAAY,WAaX;AAbD,WAAY,WAAW;IACtB,8CAA+B,CAAA;IAC/B,sDAAuC,CAAA;IACvC,gDAAiC,CAAA;IACjC,kDAAmC,CAAA;IACnC,oCAAqB,CAAA;IACrB,8CAA+B,CAAA;IAC/B,sDAAuC,CAAA;IACvC,0CAA2B,CAAA;IAC3B,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,oDAAqC,CAAA;IACrC,kCAAmB,CAAA;AACpB,CAAC,EAbW,WAAW,2BAAX,WAAW,QAatB;AAED,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC/B,uCAAe,CAAA;IACf,uCAAe,CAAA;IACf,yCAAiB,CAAA;IACjB,uCAAe,CAAA;AAChB,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACtB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,wCAAyB,CAAA;IACzB,8BAAe,CAAA;AAChB,CAAC,EANW,WAAW,2BAAX,WAAW,QAMtB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACtB,4CAA6B,CAAA;IAC7B,gDAAiC,CAAA;IACjC,sDAAuC,CAAA;AACxC,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IACrC,+CAAiB,CAAA;IACjB,mDAAqB,CAAA;AACtB,CAAC,EAHW,0BAA0B,0CAA1B,0BAA0B,QAGrC;AAED,IAAY,kBAQX;AARD,WAAY,kBAAkB;IAC7B,iDAA2B,CAAA;IAC3B,yCAAmB,CAAA;IACnB,+CAAyB,CAAA;IACzB,qCAAe,CAAA;IACf,mCAAa,CAAA;IACb,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;AAC9B,CAAC,EARW,kBAAkB,kCAAlB,kBAAkB,QAQ7B;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACvB,uCAAuB,CAAA;IACvB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;AAClB,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,IAAY,uBAOX;AAPD,WAAY,uBAAuB;IAClC,wCAAa,CAAA;IACb,4CAAiB,CAAA;IACjB,wCAAa,CAAA;IACb,0CAAe,CAAA;IACf,0CAAe,CAAA;IACf,gEAAqC,CAAA;AACtC,CAAC,EAPW,uBAAuB,uCAAvB,uBAAuB,QAOlC;AAED,IAAY,SASX;AATD,WAAY,SAAS;IACpB,4CAA+B,CAAA;IAC/B,gDAAmC,CAAA;IACnC,8CAAiC,CAAA;IACjC,oDAAuC,CAAA;IACvC,kEAAqD,CAAA;IACrD,kDAAqC,CAAA;IACrC,4DAA+C,CAAA;IAC/C,8DAAiD,CAAA;AAClD,CAAC,EATW,SAAS,yBAAT,SAAS,QASpB;AAED,IAAY,UAEX;AAFD,WAAY,UAAU;IACrB,+BAAiB,CAAA;AAClB,CAAC,EAFW,UAAU,0BAAV,UAAU,QAErB;AAED,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC3B,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,iCAAa,CAAA;AACd,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B;AAED,IAAY,QAOX;AAPD,WAAY,QAAQ;IACnB,6BAAiB,CAAA;IACjB,6CAAiC,CAAA;IACjC,yDAA6C,CAAA;IAC7C,yBAAa,CAAA;IACb,yCAA6B,CAAA;IAC7B,qDAAyC,CAAA;AAC1C,CAAC,EAPW,QAAQ,wBAAR,QAAQ,QAOnB;AAED,IAAY,eAMX;AAND,WAAY,eAAe;IAC1B,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,sCAAmB,CAAA;IACnB,oDAAiC,CAAA;IACjC,gCAAa,CAAA;AACd,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACzB,6BAAW,CAAA;IACX,yCAAuB,CAAA;AACxB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACzB,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,mCAAiB,CAAA;AAClB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACtB,8BAAe,CAAA;IACf,wCAAyB,CAAA;IACzB,4BAAa,CAAA;AACd,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACzB,+BAAa,CAAA;IACb,+BAAa,CAAA;IACb,iCAAe,CAAA;AAChB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,+BAAiB,CAAA;IACjB,mCAAqB,CAAA;IACrB,2BAAa,CAAA;AACd,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACzB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACd,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC5B,gDAA2B,CAAA;IAC3B,oDAA+B,CAAA;AAChC,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC9B,4CAAqB,CAAA;IACrB,oCAAa,CAAA;IACb,0CAAmB,CAAA;AACpB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,uBAAW,CAAA;IACX,uBAAW,CAAA;AACZ,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,OAGX;AAHD,WAAY,OAAO;IAClB,4BAAiB,CAAA;IACjB,8BAAmB,CAAA;AACpB,CAAC,EAHW,OAAO,uBAAP,OAAO,QAGlB;AAED,IAAY,UAOX;AAPD,WAAY,UAAU;IACrB,+BAAiB,CAAA;IACjB,mDAAqC,CAAA;IACrC,iDAAmC,CAAA;IACnC,6CAA+B,CAAA;IAC/B,6CAA+B,CAAA;IAC/B,iDAAmC,CAAA;AACpC,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB;AAED,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IACjC,+CAAqB,CAAA;IACrB,oDAA0B,CAAA;IAC1B,+DAAqC,CAAA;AACtC,CAAC,EAJW,sBAAsB,sCAAtB,sBAAsB,QAIjC;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACxB,oCAAmB,CAAA;IACnB,8BAAa,CAAA;AACd,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAED,IAAY,aAOX;AAPD,WAAY,aAAa;IACxB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,gDAA+B,CAAA;IAC/B,sCAAqB,CAAA;IACrB,gDAA+B,CAAA;IAC/B,oDAAmC,CAAA;AACpC,CAAC,EAPW,aAAa,6BAAb,aAAa,QAOxB;AAED,IAAY,eAKX;AALD,WAAY,eAAe;IAC1B,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,sCAAmB,CAAA;AACpB,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B;AAED,IAAY,SASX;AATD,WAAY,SAAS;IACpB,wCAA2B,CAAA;IAC3B,gDAAmC,CAAA;IACnC,+DAAkD,CAAA;IAClD,8DAAiD,CAAA;IACjD,gDAAmC,CAAA;IACnC,8EAAiE,CAAA;IACjE,sCAAyB,CAAA;IACzB,oDAAuC,CAAA;AACxC,CAAC,EATW,SAAS,yBAAT,SAAS,QASpB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IACrB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;AACxB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC5B,0DAAqC,CAAA;IACrC,8DAAyC,CAAA;AAC1C,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;AAClB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,6BAAa,CAAA;AACd,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAED,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC3B,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;AAClB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED,IAAY,UAGX;AAHD,WAAY,UAAU;IACrB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;AACpB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB;AAED,IAAY,SAIX;AAJD,WAAY,SAAS;IACpB,4BAAe,CAAA;IACf,4BAAe,CAAA;IACf,0BAAa,CAAA;AACd,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,wBAAW,CAAA;IACX,4BAAe,CAAA;AAChB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,sCAAyB,CAAA;IACzB,sCAAyB,CAAA;AAC1B,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACvB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;AAChB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IACnB,qBAAS,CAAA;IACT,qBAAS,CAAA;AACV,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACpB,gCAAmB,CAAA;IACnB,gCAAmB,CAAA;AACpB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAED,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC7B,4CAAsB,CAAA;IACtB,uCAAiB,CAAA;IACjB,6DAAuC,CAAA;IACvC,6CAAuB,CAAA;IACvB,0DAAoC,CAAA;IACpC,+CAAyB,CAAA;IACzB,6CAAuB,CAAA;IACvB,6CAAuB,CAAA;AACxB,CAAC,EATW,kBAAkB,kCAAlB,kBAAkB,QAS7B;AAED,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC7B,4CAAsB,CAAA;IACtB,uCAAiB,CAAA;IACjB,6DAAuC,CAAA;IACvC,+CAAyB,CAAA;IACzB,6CAAuB,CAAA;IACvB,6CAAuB,CAAA;AACxB,CAAC,EAPW,kBAAkB,kCAAlB,kBAAkB,QAO7B;AAED,IAAY,cAOX;AAPD,WAAY,cAAc;IACzB,qCAAmB,CAAA;IACnB,yDAAuC,CAAA;IACvC,sDAAoC,CAAA;IACpC,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;AACxB,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACxB,8BAAa,CAAA;IACb,gCAAe,CAAA;IACf,8BAAa,CAAA;AACd,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC7B,qDAA+B,CAAA;IAC/B,mEAA6C,CAAA;AAC9C,CAAC,EAHW,kBAAkB,kCAAlB,kBAAkB,QAG7B;AAED,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAChC,gDAAuB,CAAA;IACvB,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;IACrB,8CAAqB,CAAA;AACtB,CAAC,EALW,qBAAqB,qCAArB,qBAAqB,QAKhC;AAED,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC3B,uCAAmB,CAAA;AACpB,CAAC,EAFW,gBAAgB,gCAAhB,gBAAgB,QAE3B;AAED,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IAClC,4CAAiB,CAAA;IACjB,wCAAa,CAAA;AACd,CAAC,EAHW,uBAAuB,uCAAvB,uBAAuB,QAGlC;AAED,IAAY,SAEX;AAFD,WAAY,SAAS;IACpB,4BAAe,CAAA;AAChB,CAAC,EAFW,SAAS,yBAAT,SAAS,QAEpB;AAED,IAAY,cASX;AATD,WAAY,cAAc;IACzB,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,mEAAiD,CAAA;IACjD,yDAAuC,CAAA;IACvC,2CAAyB,CAAA;IACzB,mEAAiD,CAAA;IACjD,2EAAyD,CAAA;IACzD,iDAA+B,CAAA;AAChC,CAAC,EATW,cAAc,8BAAd,cAAc,QASzB","sourcesContent":["export enum Status {\n\tACTIVE = 'active',\n\tINACTIVE = 'inactive',\n}\n\nexport enum ItemType {\n\tFOOD = 'food',\n\tGROCERY = 'grocery',\n\tPHARMACY = 'pharmacy',\n\tCOFFEE = 'coffee',\n\tFLOWER = 'flower',\n\tPET = 'pet',\n\tHEALTHY_CORNER = 'healthy_corner',\n}\n\nexport enum WeekDay {\n\tSunday = 0,\n\tMonday = 1,\n\tTuesday = 2,\n\tWednesday = 3,\n\tThursday = 4,\n\tFriday = 5,\n\tSaturday = 6,\n}\n\nexport enum WorkStatus {\n\tOPEN = 'open',\n\tCLOSED = 'closed',\n\tFULL_DAY = 'full_day',\n}\n\nexport enum HolidayWorkStatus {\n\tCLOSED = WorkStatus.CLOSED,\n\tFULL_DAY = WorkStatus.FULL_DAY,\n}\n\nexport enum ValueType {\n\tPERCENTAGE = 'percentage',\n\tFIXED = 'fixed',\n}\n\nexport enum PaymentMethod {\n\tCASH = 'cash',\n\tONLINE = 'online',\n}\n\nexport enum PaymentStatus {\n\tPAID = 'paid',\n\tPENDING = 'pending',\n\tFAILED = 'failed',\n\tREFUNDED = 'refunded',\n\tPARTIALLY_REFUNDED = 'partially_refunded',\n}\n\nexport enum PaidCurrency {\n\tBASE = 'base',\n\tSECONDARY = 'secondary',\n\tMIXED = 'mixed',\n}\n\nexport enum SubscriptionPackage {\n\tMONTHLY = 'monthly',\n\tYEARLY = 'yearly',\n}\n\nexport enum SubscriptionStatus {\n\tONGOING = 'ongoing',\n\tEXPIRED = 'expired',\n}\n\nexport enum RatingAccountType {\n\tSHOP = 'shop',\n\tRIDER = 'rider',\n}\n\nexport enum GeoLocationType {\n\tPOINT = 'Point',\n}\n\nexport enum UpdatedField {\n\tMAX_TOTAL_EST_ITEMS_PRICE = 'max_total_est_items_price',\n\tMAX_DISTANCE = 'max_distance',\n\tDAILY_WORKING_HOURS = 'daily_working_hours',\n\tBOB_CASH_SETTLEMENT_LIMIT = 'bob_cash_settlement_limit',\n\tTIPS = 'tips',\n\tEQUIPMENTS = 'equipments',\n\tMONTHLY_SHOP_TARGET = 'monthly_shop_target',\n\tMONTHLY_REWARD_PRIZE = 'monthly_reward_prize',\n\tBASE_CURRENCY = 'base_currency',\n\tSECONDARY_CURRENCY = 'secondary_currency',\n\tIS_DUAL_CURRENCY_ENABLED = 'is_dual_currency_enabled',\n\tEXCHANGE_RATE = 'exchange_rate',\n\tISSUANCE_DAY = 'issuance_day',\n\tOVER_DUE_PERIODS = 'over_due_periods',\n\tPAY_LIMIT_FOR_USER = 'pay_limit_for_user',\n\tVAT_PERCENTAGE = 'vat_percentage',\n\tRIDER_SEARCH_RANGES = 'rider_search_ranges',\n\tNEAR_BY_SHOP_DISTANCE = 'near_by_shop_distance',\n\tNEAR_BY_SHOP_DISTANCE_IN_HOME_SCREEN = 'near_by_shop_distance_in_home_screen',\n\tUNITS = 'units',\n\tCURRENCY_SETTING = 'currency_setting',\n\tPAYMENT_METHODS = 'payment_methods',\n\tIS_GROUND_ORDER_ENABLED = 'is_ground_order_enabled',\n\tCUSTOMER_SUPPORT_PHONE_NUMBER = 'customer_support_phone_number',\n}\n\nexport enum SectionType {\n\tSTORE_PUNCHES = 'store_punches',\n\tNEARBY_RESTAURANT = 'nearby_restaurant',\n\tNEARBY_GROCERY = 'nearby_grocery',\n\tNEARBY_PHARMACY = 'nearby_pharmacy',\n\tDISCOUNT = 'discount',\n\tFREE_DELIVERY = 'free_delivery',\n\tCRAZY_OFFER_SHOPS = 'crazy_offer_shops',\n\tORDER_AGAIN = 'order_again',\n\tFEATURED = 'featured',\n\tLOVE = 'love',\n\tAUTHENTIC_BEIRUT = 'authentic_beirut',\n\tNEAR_ME = 'near_me',\n}\n\nexport enum CoreAuthIdentityType {\n\tEMAIL = 'email',\n\tPHONE = 'phone',\n\tGOOGLE = 'google',\n\tAPPLE = 'apple',\n}\n\nexport enum ProductType {\n\tMEAT = 'meat',\n\tCHICKEN = 'chicken',\n\tFISH = 'fish',\n\tVEGETARIAN = 'vegetarian',\n\tOTHER = 'other',\n}\n\nexport enum PriceOption {\n\tSINGLE_PRICE = 'single_price',\n\tPRICE_PER_UNIT = 'price_per_unit',\n\tPRICE_PER_PORTION = 'price_per_portion',\n}\n\nexport enum AttributeItemSelectionType {\n\tSINGLE = 'single',\n\tMULTIPLE = 'multiple',\n}\n\nexport enum ProductDietaryType {\n\tGLUTEN_FREE = 'gluten_free',\n\tLOW_CAL = 'low_cal',\n\tVEGETARIAN = 'vegetarian',\n\tVEGAN = 'vegan',\n\tKETO = 'keto',\n\tLACTOSE_FREE = 'lactose_free',\n\tHIGH_PROTEIN = 'high_protein',\n}\n\nexport enum DishCategory {\n\tBREAKFAST = 'breakfast',\n\tLUNCH = 'lunch',\n\tDINNER = 'dinner',\n\tSNACKS = 'snacks',\n}\n\nexport enum NotificationAccountType {\n\tUSER = 'user',\n\tPARENT = 'parent',\n\tSHOP = 'shop',\n\tRIDER = 'rider',\n\tADMIN = 'admin',\n\tCUSTOMER_SERVICE = 'customer_service',\n}\n\nexport enum ClickType {\n\tCLICKABLE_URL = 'clickable_url',\n\tCLICKABLE_ORDER = 'clickable_order',\n\tCLICKABLE_SHOP = 'clickable_shop',\n\tCLICKABLE_PRODUCT = 'clickable_product',\n\tCLICKABLE_LIST_CONTAINER = 'clickable_list_container',\n\tCLICKABLE_PAYOUT = 'clickable_payout',\n\tCLICKABLE_BOB_FINANCE = 'clickable_bob_finance',\n\tCLICKABLE_REQUEST_AREA = 'clickable_request_area',\n}\n\nexport enum ChargeType {\n\tCUSTOM = 'custom',\n}\n\nexport enum ShopOnlineStatus {\n\tONLINE = 'online',\n\tOFFLINE = 'offline',\n\tBUSY = 'busy',\n}\n\nexport enum ShopRole {\n\tPARENT = 'parent',\n\tPARENT_MANAGER = 'parent_manager',\n\tPARENT_ORDER_MANAGER = 'parent_order_manager',\n\tSHOP = 'shop',\n\tSHOP_MANAGER = 'shop_manager',\n\tSHOP_ORDER_MANAGER = 'shop_order_manager',\n}\n\nexport enum BannerClickType {\n\tLINK = 'link',\n\tSHOP = 'shop',\n\tPRODUCT = 'product',\n\tLIST_CONTAINER = 'list_container',\n\tPLUS = 'plus',\n}\n\nexport enum BannerLinkType {\n\tURL = 'url',\n\tAPP_ROUTE = 'app-route',\n}\n\nexport enum BannerUserType {\n\tALL = 'all',\n\tPLUS = 'plus',\n\tNORMAL = 'normal',\n}\n\nexport enum CounterType {\n\tORDER = 'order',\n\tCRM_NUMBER = 'crm_number',\n\tshop = 'shop',\n}\n\nexport enum FaqAccountType {\n\tUSER = 'user',\n\tSHOP = 'shop',\n\tRIDER = 'rider',\n}\n\nexport enum ZoneStatus {\n\tACTIVE = 'active',\n\tINACTIVE = 'inactive',\n\tBUSY = 'busy',\n}\n\nexport enum BobAccountType {\n\tRIDER = 'rider',\n\tSHOP = 'shop',\n}\n\nexport enum BobSettlementType {\n\tSETTLE_CASH = 'settle_cash',\n\tSETTLE_PAYOUT = 'settle_Payout',\n}\n\nexport enum BobSettlementStatus {\n\tNOT_PAID = 'not_paid',\n\tPAID = 'paid',\n\tREVOKED = 'revoked',\n}\n\nexport enum BobModel {\n\tC2B = 'C2B',\n\tB2C = 'B2C',\n}\n\nexport enum BobType {\n\tINWARD = 'inward',\n\tOUTWARD = 'outward',\n}\n\nexport enum CouponType {\n\tGLOBAL = 'global',\n\tINDIVIDUAL_STORE = 'individual_store',\n\tINDIVIDUAL_USER = 'individual_user',\n\tCUSTOM_COUPON = 'custom_coupon',\n\tREFERRAL_CODE = 'referral_code',\n\tREFERRAL_REWARD = 'referral_reward',\n}\n\nexport enum CouponExpirationReason {\n\tDURATION = 'duration',\n\tSPEND_LIMIT = 'spendLimit',\n\tTOTAL_ORDER_LIMIT = 'totalOrderLimit',\n}\n\nexport enum FavouriteType {\n\tPRODUCT = 'product',\n\tSHOP = 'shop',\n}\n\nexport enum MarketingType {\n\tDISCOUNT = 'discount',\n\tBUY1GET1 = 'buy1get1',\n\tFREE_DELIVERY = 'free_delivery',\n\tFEATURED = 'featured',\n\tLOYALTY_POINT = 'loyalty_point',\n\tPUNCH_MARKETING = 'punch_marketing',\n}\n\nexport enum MarketingStatus {\n\tACTIVE = 'active',\n\tPAUSED = 'paused',\n\tEXPIRED = 'expired',\n\tDELETED = 'deleted',\n}\n\nexport enum AdminRole {\n\tSUPER_ADMIN = 'super_admin',\n\tGENERAL_MANAGER = 'general_manager',\n\tORDER_MANAGEMENT_MANAGER = 'order_management_lead',\n\tORDER_MANAGEMENT_AGENT = 'order_management_agent',\n\tACCOUNT_MANAGER = 'account_manager',\n\tBUSINESS_DEVELOPMENT_EXECUTIVE = 'business_development_executive',\n\tACCOUNTING = 'accounting',\n\tMARKETING_MANAGER = 'marketing_manager',\n}\n\nexport enum CartStatus {\n\tACTIVE = 'active',\n\tLOCKED = 'locked',\n\tSUBMITTED = 'submitted',\n}\n\nexport enum PaymentPreference {\n\tPAY_FOR_EVERYONE = 'pay_for_everyone',\n\tPAY_FOR_THEMSELVES = 'pay_for_themselves',\n}\n\nexport enum CardType {\n\tSTRIPE = 'stripe',\n\tAREEBA = 'areeba',\n}\n\nexport enum CardUserType {\n\tPARENT = 'parent',\n\tADMIN = 'admin',\n\tUSER = 'user',\n}\n\nexport enum AreebaCardStatus {\n\tPENDING = 'pending',\n\tACTIVE = 'active',\n}\n\nexport enum LiveStatus {\n\tONLINE = 'online',\n\tOFFLINE = 'offline',\n}\n\nexport enum CreatedBy {\n\tADMIN = 'admin',\n\tRIDER = 'rider',\n\tSHOP = 'shop',\n}\n\nexport enum ShiftType {\n\tDAY = 'day',\n\tNIGHT = 'night',\n}\n\nexport enum RiderType {\n\tSHOP_RIDER = 'shop_rider',\n\tLYXA_RIDER = 'lyxa_rider',\n}\n\nexport enum RiderBagSize {\n\tREGULAR = 'regular',\n\tLARGE = 'large',\n}\n\nexport enum Language {\n\tEN = 'en',\n\tAR = 'ar',\n}\n\nexport enum OrderType {\n\tREGULAR = 'regular',\n\tCOURIER = 'courier',\n}\n\nexport enum RegularOrderStatus {\n\tSCHEDULED = 'schedule',\n\tPLACED = 'placed',\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\n\tPREPARING = 'preparing',\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\n\tON_THE_WAY = 'on_the_way',\n\tDELIVERED = 'delivered',\n\tCANCELLED = 'cancelled',\n}\n\nexport enum CourierOrderStatus {\n\tSCHEDULED = 'schedule',\n\tPLACED = 'placed',\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\n\tON_THE_WAY = 'on_the_way',\n\tDELIVERED = 'delivered',\n\tCANCELLED = 'cancelled',\n}\n\nexport enum DeliveryStatus {\n\tPENDING = 'pending',\n\tACCEPTED_BY_RIDER = 'accepted_by_rider',\n\tREADY_FOR_PICKUP = 'ready_to_pickup',\n\tON_THE_WAY = 'on_the_way',\n\tDELIVERED = 'delivered',\n\tCANCELLED = 'cancelled',\n}\n\nexport enum OrderCancelBy {\n\tUSER = 'user',\n\tADMIN = 'admin',\n\tSHOP = 'shop',\n}\n\nexport enum CourierServiceType {\n\tDELIVERY_ONLY = 'delivery_only',\n\tPURCHASE_AND_DELIVER = 'purchase_and_deliver',\n}\n\nexport enum RiderAssignmentStatus {\n\tREQUESTED = 'requested',\n\tASSIGNED = 'assigned',\n\tREJECTED = 'rejected',\n\tCANCELED = 'canceled',\n}\n\nexport enum ZoneGeometryType {\n\tPOLYGON = 'Polygon',\n}\n\nexport enum WorkingHourSettingsType {\n\tGLOBAL = 'Global',\n\tSHOP = 'Shop',\n}\n\nexport enum MediaType {\n\tIMAGE = 'image',\n}\n\nexport enum SettlementType {\n\tADD_CREDIT = 'add_credit',\n\tREMOVE_CREDIT = 'remove_credit',\n\tEXPIRED_LOYALTY_POINTS = 'expired_loyalty_points',\n\tRIDER_SETTLE_CASH = 'rider_settle_cash',\n\tSETTLE_VAT = 'settle_vat',\n\tSETTLE_FEATURED_AMOUNT = 'settle_featured_amount',\n\tSETTLE_SUBSCRIPTION_AMOUNT = 'settle_subscription_amount',\n\tSETTLE_PAYOUT = 'settle_payout',\n}\n"]}