@solidxai/core 0.1.12-beta.0 → 0.1.12-beta.10

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 (208) hide show
  1. package/dist/commands/seed.command.d.ts.map +1 -1
  2. package/dist/commands/seed.command.js +10 -2
  3. package/dist/commands/seed.command.js.map +1 -1
  4. package/dist/constants/error-messages.d.ts +1 -0
  5. package/dist/constants/error-messages.d.ts.map +1 -1
  6. package/dist/constants/error-messages.js +1 -0
  7. package/dist/constants/error-messages.js.map +1 -1
  8. package/dist/constants/media-file-types.d.ts +5 -0
  9. package/dist/constants/media-file-types.d.ts.map +1 -0
  10. package/dist/constants/media-file-types.js +27 -0
  11. package/dist/constants/media-file-types.js.map +1 -0
  12. package/dist/controllers/media.controller.d.ts +14 -11
  13. package/dist/controllers/media.controller.d.ts.map +1 -1
  14. package/dist/controllers/media.controller.js +72 -33
  15. package/dist/controllers/media.controller.js.map +1 -1
  16. package/dist/dtos/create-chatter-message.dto.d.ts +1 -0
  17. package/dist/dtos/create-chatter-message.dto.d.ts.map +1 -1
  18. package/dist/dtos/create-chatter-message.dto.js +7 -1
  19. package/dist/dtos/create-chatter-message.dto.js.map +1 -1
  20. package/dist/dtos/create-media.dto.d.ts +1 -0
  21. package/dist/dtos/create-media.dto.d.ts.map +1 -1
  22. package/dist/dtos/create-media.dto.js +7 -1
  23. package/dist/dtos/create-media.dto.js.map +1 -1
  24. package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
  25. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  26. package/dist/dtos/create-role-metadata.dto.js +3 -1
  27. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  28. package/dist/dtos/post-chatter-message.dto.d.ts +1 -0
  29. package/dist/dtos/post-chatter-message.dto.d.ts.map +1 -1
  30. package/dist/dtos/post-chatter-message.dto.js +6 -1
  31. package/dist/dtos/post-chatter-message.dto.js.map +1 -1
  32. package/dist/dtos/update-chatter-message.dto.d.ts +1 -0
  33. package/dist/dtos/update-chatter-message.dto.d.ts.map +1 -1
  34. package/dist/dtos/update-chatter-message.dto.js +8 -1
  35. package/dist/dtos/update-chatter-message.dto.js.map +1 -1
  36. package/dist/dtos/update-chatter-note-message.dto.d.ts +1 -0
  37. package/dist/dtos/update-chatter-note-message.dto.d.ts.map +1 -1
  38. package/dist/dtos/update-chatter-note-message.dto.js +7 -1
  39. package/dist/dtos/update-chatter-note-message.dto.js.map +1 -1
  40. package/dist/dtos/update-media.dto.d.ts +1 -0
  41. package/dist/dtos/update-media.dto.d.ts.map +1 -1
  42. package/dist/dtos/update-media.dto.js +7 -1
  43. package/dist/dtos/update-media.dto.js.map +1 -1
  44. package/dist/entities/chatter-message.entity.d.ts +1 -0
  45. package/dist/entities/chatter-message.entity.d.ts.map +1 -1
  46. package/dist/entities/chatter-message.entity.js +5 -1
  47. package/dist/entities/chatter-message.entity.js.map +1 -1
  48. package/dist/entities/media.entity.js.map +1 -1
  49. package/dist/enums/auth-type.enum.d.ts +2 -1
  50. package/dist/enums/auth-type.enum.d.ts.map +1 -1
  51. package/dist/enums/auth-type.enum.js +1 -0
  52. package/dist/enums/auth-type.enum.js.map +1 -1
  53. package/dist/guards/authentication.guard.d.ts +3 -1
  54. package/dist/guards/authentication.guard.d.ts.map +1 -1
  55. package/dist/guards/authentication.guard.js +5 -1
  56. package/dist/guards/authentication.guard.js.map +1 -1
  57. package/dist/guards/media-signed-url.guard.d.ts +9 -0
  58. package/dist/guards/media-signed-url.guard.d.ts.map +1 -0
  59. package/dist/guards/media-signed-url.guard.js +49 -0
  60. package/dist/guards/media-signed-url.guard.js.map +1 -0
  61. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
  62. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +10 -13
  63. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
  64. package/dist/helpers/solid-core-error-codes-provider.service.d.ts.map +1 -1
  65. package/dist/helpers/solid-core-error-codes-provider.service.js +9 -0
  66. package/dist/helpers/solid-core-error-codes-provider.service.js.map +1 -1
  67. package/dist/interfaces/chatter-mention-notification.interface.d.ts +27 -0
  68. package/dist/interfaces/chatter-mention-notification.interface.d.ts.map +1 -0
  69. package/dist/interfaces/chatter-mention-notification.interface.js +3 -0
  70. package/dist/interfaces/chatter-mention-notification.interface.js.map +1 -0
  71. package/dist/interfaces.d.ts +19 -1
  72. package/dist/interfaces.d.ts.map +1 -1
  73. package/dist/interfaces.js +2 -0
  74. package/dist/interfaces.js.map +1 -1
  75. package/dist/jobs/chatter-mention-notification-email-queue-handler.service.d.ts +17 -0
  76. package/dist/jobs/chatter-mention-notification-email-queue-handler.service.d.ts.map +1 -0
  77. package/dist/jobs/chatter-mention-notification-email-queue-handler.service.js +106 -0
  78. package/dist/jobs/chatter-mention-notification-email-queue-handler.service.js.map +1 -0
  79. package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.d.ts +12 -0
  80. package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.d.ts.map +1 -0
  81. package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.js +39 -0
  82. package/dist/jobs/database/chatter-mention-notification-email-publisher-database.service.js.map +1 -0
  83. package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.d.ts +8 -0
  84. package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.d.ts.map +1 -0
  85. package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.js +10 -0
  86. package/dist/jobs/database/chatter-mention-notification-email-queue-options-database.js.map +1 -0
  87. package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.d.ts +20 -0
  88. package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.d.ts.map +1 -0
  89. package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.js +48 -0
  90. package/dist/jobs/database/chatter-mention-notification-email-subscriber-database.service.js.map +1 -0
  91. package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.d.ts +12 -0
  92. package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.d.ts.map +1 -0
  93. package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.js +39 -0
  94. package/dist/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.js.map +1 -0
  95. package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.d.ts +8 -0
  96. package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.d.ts.map +1 -0
  97. package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.js +10 -0
  98. package/dist/jobs/rabbitmq/chatter-mention-notification-email-queue-options.js.map +1 -0
  99. package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.d.ts +18 -0
  100. package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.d.ts.map +1 -0
  101. package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.js +45 -0
  102. package/dist/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.js.map +1 -0
  103. package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.d.ts +12 -0
  104. package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.d.ts.map +1 -0
  105. package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.js +39 -0
  106. package/dist/jobs/redis/chatter-mention-notification-email-publisher-redis.service.js.map +1 -0
  107. package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.d.ts +8 -0
  108. package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.d.ts.map +1 -0
  109. package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.js +10 -0
  110. package/dist/jobs/redis/chatter-mention-notification-email-queue-options-redis.js.map +1 -0
  111. package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.d.ts +18 -0
  112. package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.d.ts.map +1 -0
  113. package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.js +45 -0
  114. package/dist/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.js.map +1 -0
  115. package/dist/repository/media.repository.d.ts.map +1 -1
  116. package/dist/repository/media.repository.js.map +1 -1
  117. package/dist/seeders/module-metadata-seeder.service.d.ts +7 -1
  118. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  119. package/dist/seeders/module-metadata-seeder.service.js +87 -3
  120. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  121. package/dist/seeders/permission-metadata-seeder.service.d.ts +1 -0
  122. package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
  123. package/dist/seeders/permission-metadata-seeder.service.js +6 -1
  124. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  125. package/dist/seeders/seed-data/solid-core-metadata.json +95 -13
  126. package/dist/services/authentication.service.d.ts +2 -2
  127. package/dist/services/authentication.service.d.ts.map +1 -1
  128. package/dist/services/authentication.service.js +52 -43
  129. package/dist/services/authentication.service.js.map +1 -1
  130. package/dist/services/chatter-message.service.d.ts +7 -1
  131. package/dist/services/chatter-message.service.d.ts.map +1 -1
  132. package/dist/services/chatter-message.service.js +85 -4
  133. package/dist/services/chatter-message.service.js.map +1 -1
  134. package/dist/services/media-download-url.service.d.ts +22 -0
  135. package/dist/services/media-download-url.service.d.ts.map +1 -0
  136. package/dist/services/media-download-url.service.js +70 -0
  137. package/dist/services/media-download-url.service.js.map +1 -0
  138. package/dist/services/media-storage.utils.d.ts +24 -0
  139. package/dist/services/media-storage.utils.d.ts.map +1 -0
  140. package/dist/services/media-storage.utils.js +73 -0
  141. package/dist/services/media-storage.utils.js.map +1 -0
  142. package/dist/services/media.service.d.ts +20 -4
  143. package/dist/services/media.service.d.ts.map +1 -1
  144. package/dist/services/media.service.js +155 -55
  145. package/dist/services/media.service.js.map +1 -1
  146. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +4 -4
  147. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  148. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +34 -63
  149. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  150. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +5 -5
  151. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  152. package/dist/services/mediaStorageProviders/file-storage-provider.js +34 -38
  153. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  154. package/dist/services/role-metadata.service.d.ts +1 -0
  155. package/dist/services/role-metadata.service.d.ts.map +1 -1
  156. package/dist/services/role-metadata.service.js +8 -5
  157. package/dist/services/role-metadata.service.js.map +1 -1
  158. package/dist/solid-core.module.d.ts.map +1 -1
  159. package/dist/solid-core.module.js +25 -1
  160. package/dist/solid-core.module.js.map +1 -1
  161. package/dist/subscribers/audit.subscriber.js +1 -1
  162. package/dist/subscribers/audit.subscriber.js.map +1 -1
  163. package/package.json +1 -1
  164. package/src/commands/seed.command.ts +12 -3
  165. package/src/constants/error-messages.ts +1 -0
  166. package/src/constants/media-file-types.ts +44 -0
  167. package/src/controllers/media.controller.ts +44 -24
  168. package/src/dtos/create-chatter-message.dto.ts +5 -0
  169. package/src/dtos/create-media.dto.ts +8 -3
  170. package/src/dtos/create-role-metadata.dto.ts +2 -0
  171. package/src/dtos/post-chatter-message.dto.ts +4 -0
  172. package/src/dtos/update-chatter-message.dto.ts +6 -0
  173. package/src/dtos/update-chatter-note-message.dto.ts +5 -0
  174. package/src/dtos/update-media.dto.ts +8 -3
  175. package/src/entities/chatter-message.entity.ts +3 -0
  176. package/src/entities/media.entity.ts +1 -1
  177. package/src/enums/auth-type.enum.ts +1 -0
  178. package/src/guards/authentication.guard.ts +3 -0
  179. package/src/guards/media-signed-url.guard.ts +41 -0
  180. package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +12 -24
  181. package/src/helpers/solid-core-error-codes-provider.service.ts +9 -0
  182. package/src/interfaces/chatter-mention-notification.interface.ts +29 -0
  183. package/src/interfaces.ts +20 -0
  184. package/src/jobs/chatter-mention-notification-email-queue-handler.service.ts +114 -0
  185. package/src/jobs/database/chatter-mention-notification-email-publisher-database.service.ts +23 -0
  186. package/src/jobs/database/chatter-mention-notification-email-queue-options-database.ts +9 -0
  187. package/src/jobs/database/chatter-mention-notification-email-subscriber-database.service.ts +32 -0
  188. package/src/jobs/rabbitmq/chatter-mention-notification-email-publisher.service.ts +23 -0
  189. package/src/jobs/rabbitmq/chatter-mention-notification-email-queue-options.ts +9 -0
  190. package/src/jobs/rabbitmq/chatter-mention-notification-email-subscriber.service.ts +30 -0
  191. package/src/jobs/redis/chatter-mention-notification-email-publisher-redis.service.ts +23 -0
  192. package/src/jobs/redis/chatter-mention-notification-email-queue-options-redis.ts +9 -0
  193. package/src/jobs/redis/chatter-mention-notification-email-subscriber-redis.service.ts +30 -0
  194. package/src/repository/media.repository.ts +1 -0
  195. package/src/seeders/module-metadata-seeder.service.ts +109 -3
  196. package/src/seeders/permission-metadata-seeder.service.ts +6 -1
  197. package/src/seeders/seed-data/email-templates/chatter-mention-notification.handlebars.html +200 -0
  198. package/src/seeders/seed-data/solid-core-metadata.json +95 -13
  199. package/src/services/authentication.service.ts +66 -55
  200. package/src/services/chatter-message.service.ts +97 -2
  201. package/src/services/media-download-url.service.ts +74 -0
  202. package/src/services/media-storage.utils.ts +70 -0
  203. package/src/services/media.service.ts +187 -59
  204. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +49 -76
  205. package/src/services/mediaStorageProviders/file-storage-provider.ts +41 -48
  206. package/src/services/role-metadata.service.ts +17 -5
  207. package/src/solid-core.module.ts +35 -2
  208. package/src/subscribers/audit.subscriber.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"create-media.dto.js","sourceRoot":"","sources":["../../src/dtos/create-media.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAwC;AACxC,qDAAmE;AACnE,MAAa,cAAc;;;;CAuD1B;AAvDD,wCAuDC;AAnDD;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;wDACW;AAKzB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe;AAK7B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;sEACyB;AAKvC;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2EAC8B;AAK5C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { IsInt } from 'class-validator';\nimport { IsNotEmpty, IsString, IsOptional } from 'class-validator';\nexport class CreateMediaDto {\n@IsNotEmpty()\n@IsInt()\n@ApiProperty()\nentityId: number;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nrelativeUri: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfileSize: number;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nmimeType: string;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\noriginalFileName: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmodelMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmodelMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmediaStorageProviderMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmediaStorageProviderMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfieldMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nfieldMetadataUserKey: string;\n}"]}
1
+ {"version":3,"file":"create-media.dto.js","sourceRoot":"","sources":["../../src/dtos/create-media.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAAmD;AACnD,qDAAmE;AACnE,MAAa,cAAc;;;;CA4D1B;AA5DD,wCA4DC;AAxDD;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;IACX,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gDACpB;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;wDACW;AAKzB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe;AAK7B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;sEACyB;AAKvC;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2EAC8B;AAK5C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsInt } from 'class-validator';\nimport { IsNotEmpty, IsString, IsOptional } from 'class-validator';\nexport class CreateMediaDto {\n@IsNotEmpty()\n@IsInt()\n@ApiProperty()\nentityId: number;\n\n@IsOptional()\n@IsBoolean()\n@ApiPropertyOptional({ default: true })\nisPublic?: boolean;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nrelativeUri: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfileSize: number;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nmimeType: string;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\noriginalFileName: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmodelMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmodelMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmediaStorageProviderMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmediaStorageProviderMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfieldMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nfieldMetadataUserKey: string;\n}\n"]}
@@ -3,6 +3,8 @@ import { UpdateUserDto } from '../dtos/update-user.dto';
3
3
  import { UpdateMenuItemMetadataDto } from '../dtos/update-menu-item-metadata.dto';
4
4
  export declare const ADMIN_ROLE_NAME = "Admin";
5
5
  export declare const INTERNAL_ROLE_NAME = "Internal User";
6
+ export declare const ALLOWED_TO_IMPORT_ROLE_NAME = "Allowed To Import";
7
+ export declare const ALLOWED_TO_EXPORT_ROLE_NAME = "Allowed To Export";
6
8
  export declare const PUBLIC_ROLE_NAME = "Public";
7
9
  export declare class CreateRoleMetadataDto {
8
10
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"create-role-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,qBAAa,qBAAqB;IAI9B,IAAI,EAAE,MAAM,CAAC;IAOb,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAK3C,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,kBAAkB,EAAE,MAAM,CAAC;IAO3B,KAAK,EAAE,aAAa,EAAE,CAAC;IAKvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAKnB,YAAY,EAAE,MAAM,CAAC;IAOrB,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAKvC,YAAY,EAAE,MAAM,EAAE,CAAC;IAKvB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,QAAQ,EAAE,MAAM,CAAC;IAKjB,aAAa,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"create-role-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,qBAAa,qBAAqB;IAI9B,IAAI,EAAE,MAAM,CAAC;IAOb,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAK3C,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,kBAAkB,EAAE,MAAM,CAAC;IAO3B,KAAK,EAAE,aAAa,EAAE,CAAC;IAKvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAKnB,YAAY,EAAE,MAAM,CAAC;IAOrB,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAKvC,YAAY,EAAE,MAAM,EAAE,CAAC;IAKvB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,QAAQ,EAAE,MAAM,CAAC;IAKjB,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CreateRoleMetadataDto = exports.PUBLIC_ROLE_NAME = exports.INTERNAL_ROLE_NAME = exports.ADMIN_ROLE_NAME = void 0;
12
+ exports.CreateRoleMetadataDto = exports.PUBLIC_ROLE_NAME = exports.ALLOWED_TO_EXPORT_ROLE_NAME = exports.ALLOWED_TO_IMPORT_ROLE_NAME = exports.INTERNAL_ROLE_NAME = exports.ADMIN_ROLE_NAME = void 0;
13
13
  const openapi = require("@nestjs/swagger");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const class_validator_2 = require("class-validator");
@@ -20,6 +20,8 @@ const update_menu_item_metadata_dto_1 = require("./update-menu-item-metadata.dto
20
20
  const swagger_1 = require("@nestjs/swagger");
21
21
  exports.ADMIN_ROLE_NAME = 'Admin';
22
22
  exports.INTERNAL_ROLE_NAME = 'Internal User';
23
+ exports.ALLOWED_TO_IMPORT_ROLE_NAME = 'Allowed To Import';
24
+ exports.ALLOWED_TO_EXPORT_ROLE_NAME = 'Allowed To Export';
23
25
  exports.PUBLIC_ROLE_NAME = 'Public';
24
26
  class CreateRoleMetadataDto {
25
27
  static _OPENAPI_METADATA_FACTORY() {
@@ -1 +1 @@
1
- {"version":3,"file":"create-role-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAyF;AACzF,yDAAyC;AACzC,qFAAsF;AACtF,uDAAyD;AACzD,mFAAmF;AACnF,6CAA8C;AAEjC,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AACrC,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,MAAa,qBAAqB;;;;CAkEjC;AAlED,sDAkEC;AA9DG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACD;AAOb;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4DAA2B,CAAC;;0DACG;AAK3C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;6DACW;AAKzB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;iEACa;AAO3B;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAAa,CAAC;;oDACH;AAKvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;uDACK;AAKnB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2DACO;AAOrB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yDAAyB,CAAC;;wDACC;AAKvC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;2DACS;AAKvB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;+DACW;AAKzB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACG;AAKjB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACQ","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional, IsInt } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';\nimport { UpdateUserDto } from 'src/dtos/update-user.dto';\nimport { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport const ADMIN_ROLE_NAME = 'Admin';\nexport const INTERNAL_ROLE_NAME = 'Internal User';\nexport const PUBLIC_ROLE_NAME = 'Public';\n\nexport class CreateRoleMetadataDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n name: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdatePermissionMetadataDto)\n permissions: UpdatePermissionMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n permissionsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n permissionsCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateUserDto)\n users: UpdateUserDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n usersIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n usersCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateMenuItemMetadataDto)\n menuItems: UpdateMenuItemMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n menuItemsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n menuItemsCommand: string;\n\n @IsOptional()\n @IsInt()\n @ApiProperty()\n moduleId: number;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n moduleUserKey: string;\n}\n"]}
1
+ {"version":3,"file":"create-role-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAyF;AACzF,yDAAyC;AACzC,qFAAsF;AACtF,uDAAyD;AACzD,mFAAmF;AACnF,6CAA8C;AAEjC,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AACrC,QAAA,2BAA2B,GAAG,mBAAmB,CAAC;AAClD,QAAA,2BAA2B,GAAG,mBAAmB,CAAC;AAClD,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,MAAa,qBAAqB;;;;CAkEjC;AAlED,sDAkEC;AA9DG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACD;AAOb;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4DAA2B,CAAC;;0DACG;AAK3C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;6DACW;AAKzB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;iEACa;AAO3B;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAAa,CAAC;;oDACH;AAKvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;uDACK;AAKnB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2DACO;AAOrB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yDAAyB,CAAC;;wDACC;AAKvC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;2DACS;AAKvB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;+DACW;AAKzB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACG;AAKjB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACQ","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional, IsInt } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';\nimport { UpdateUserDto } from 'src/dtos/update-user.dto';\nimport { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport const ADMIN_ROLE_NAME = 'Admin';\nexport const INTERNAL_ROLE_NAME = 'Internal User';\nexport const ALLOWED_TO_IMPORT_ROLE_NAME = 'Allowed To Import';\nexport const ALLOWED_TO_EXPORT_ROLE_NAME = 'Allowed To Export';\nexport const PUBLIC_ROLE_NAME = 'Public';\n\nexport class CreateRoleMetadataDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n name: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdatePermissionMetadataDto)\n permissions: UpdatePermissionMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n permissionsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n permissionsCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateUserDto)\n users: UpdateUserDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n usersIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n usersCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateMenuItemMetadataDto)\n menuItems: UpdateMenuItemMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n menuItemsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n menuItemsCommand: string;\n\n @IsOptional()\n @IsInt()\n @ApiProperty()\n moduleId: number;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n moduleUserKey: string;\n}\n"]}
@@ -2,6 +2,7 @@ export declare class PostChatterMessageDto {
2
2
  coModelEntityId: number;
3
3
  coModelName: string;
4
4
  messageBody: string;
5
+ messageBodyMentions?: string;
5
6
  messageSubType?: string;
6
7
  modelUserKey?: string;
7
8
  status?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"post-chatter-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/post-chatter-message.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,qBAAqB;IAG9B,eAAe,EAAE,MAAM,CAAC;IAIxB,WAAW,EAAE,MAAM,CAAC;IAIpB,WAAW,EAAE,MAAM,CAAC;IAIpB,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"post-chatter-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/post-chatter-message.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,qBAAqB;IAG9B,eAAe,EAAE,MAAM,CAAC;IAIxB,WAAW,EAAE,MAAM,CAAC;IAIpB,WAAW,EAAE,MAAM,CAAC;IAIpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAI7B,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAItB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -14,7 +14,7 @@ const openapi = require("@nestjs/swagger");
14
14
  const class_validator_1 = require("class-validator");
15
15
  class PostChatterMessageDto {
16
16
  static _OPENAPI_METADATA_FACTORY() {
17
- return { coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, messageSubType: { required: false, type: () => String }, modelUserKey: { required: false, type: () => String }, status: { required: false, type: () => String } };
17
+ return { coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, messageBodyMentions: { required: false, type: () => String }, messageSubType: { required: false, type: () => String }, modelUserKey: { required: false, type: () => String }, status: { required: false, type: () => String } };
18
18
  }
19
19
  }
20
20
  exports.PostChatterMessageDto = PostChatterMessageDto;
@@ -33,6 +33,11 @@ __decorate([
33
33
  (0, class_validator_1.IsNotEmpty)(),
34
34
  __metadata("design:type", String)
35
35
  ], PostChatterMessageDto.prototype, "messageBody", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsString)(),
38
+ (0, class_validator_1.IsOptional)(),
39
+ __metadata("design:type", String)
40
+ ], PostChatterMessageDto.prototype, "messageBodyMentions", void 0);
36
41
  __decorate([
37
42
  (0, class_validator_1.IsString)(),
38
43
  (0, class_validator_1.IsOptional)(),
@@ -1 +1 @@
1
- {"version":3,"file":"post-chatter-message.dto.js","sourceRoot":"","sources":["../../src/dtos/post-chatter-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA6E;AAE7E,MAAa,qBAAqB;;;;CAwBjC;AAxBD,sDAwBC;AArBG;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8DACW;AAIxB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACO;AAIpB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACO;AAIpB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6DACW;AAIxB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2DACS;AAItB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACG","sourcesContent":["import { IsNotEmpty, IsNumber, IsString, IsOptional } from 'class-validator';\n\nexport class PostChatterMessageDto {\n @IsNumber()\n @IsNotEmpty()\n coModelEntityId: number;\n\n @IsString()\n @IsNotEmpty()\n coModelName: string;\n\n @IsString()\n @IsNotEmpty()\n messageBody: string;\n\n @IsString()\n @IsOptional()\n messageSubType?: string;\n\n @IsString()\n @IsOptional()\n modelUserKey?: string;\n\n @IsString()\n @IsOptional()\n status?: string;\n}"]}
1
+ {"version":3,"file":"post-chatter-message.dto.js","sourceRoot":"","sources":["../../src/dtos/post-chatter-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA6E;AAE7E,MAAa,qBAAqB;;;;CA4BjC;AA5BD,sDA4BC;AAzBG;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8DACW;AAIxB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACO;AAIpB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACO;AAIpB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kEACgB;AAI7B;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6DACW;AAIxB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2DACS;AAItB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACG","sourcesContent":["import { IsNotEmpty, IsNumber, IsString, IsOptional } from 'class-validator';\n\nexport class PostChatterMessageDto {\n @IsNumber()\n @IsNotEmpty()\n coModelEntityId: number;\n\n @IsString()\n @IsNotEmpty()\n coModelName: string;\n\n @IsString()\n @IsNotEmpty()\n messageBody: string;\n\n @IsString()\n @IsOptional()\n messageBodyMentions?: string;\n\n @IsString()\n @IsOptional()\n messageSubType?: string;\n\n @IsString()\n @IsOptional()\n modelUserKey?: string;\n\n @IsString()\n @IsOptional()\n status?: string;\n}"]}
@@ -3,6 +3,7 @@ export declare class UpdateChatterMessageDto {
3
3
  messageType: string;
4
4
  messageSubType: string;
5
5
  messageBody: string;
6
+ messageBodyMentions: string;
6
7
  coModelEntityId: number;
7
8
  coModelName: string;
8
9
  userId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"update-chatter-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-chatter-message.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,uBAAuB;IAGhC,EAAE,EAAE,MAAM,CAAC;IAMX,WAAW,EAAE,MAAM,CAAC;IAMpB,cAAc,EAAE,MAAM,CAAC;IAMvB,WAAW,EAAE,MAAM,CAAC;IAMpB,eAAe,EAAE,MAAM,CAAC;IAMxB,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;IAKf,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"update-chatter-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-chatter-message.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,uBAAuB;IAGhC,EAAE,EAAE,MAAM,CAAC;IAMX,WAAW,EAAE,MAAM,CAAC;IAMpB,cAAc,EAAE,MAAM,CAAC;IAMvB,WAAW,EAAE,MAAM,CAAC;IAMpB,mBAAmB,EAAE,MAAM,CAAC;IAM5B,eAAe,EAAE,MAAM,CAAC;IAMxB,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;IAKf,WAAW,EAAE,MAAM,CAAC;IAKpB,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -15,7 +15,7 @@ const class_validator_1 = require("class-validator");
15
15
  const swagger_1 = require("@nestjs/swagger");
16
16
  class UpdateChatterMessageDto {
17
17
  static _OPENAPI_METADATA_FACTORY() {
18
- return { id: { required: true, type: () => Number }, messageType: { required: true, type: () => String }, messageSubType: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, userId: { required: true, type: () => Number }, userUserKey: { required: true, type: () => String }, status: { required: true, type: () => String } };
18
+ return { id: { required: true, type: () => Number }, messageType: { required: true, type: () => String }, messageSubType: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, messageBodyMentions: { required: true, type: () => String }, coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, userId: { required: true, type: () => Number }, userUserKey: { required: true, type: () => String }, status: { required: true, type: () => String } };
19
19
  }
20
20
  }
21
21
  exports.UpdateChatterMessageDto = UpdateChatterMessageDto;
@@ -45,6 +45,13 @@ __decorate([
45
45
  (0, swagger_1.ApiProperty)(),
46
46
  __metadata("design:type", String)
47
47
  ], UpdateChatterMessageDto.prototype, "messageBody", void 0);
48
+ __decorate([
49
+ (0, class_validator_1.IsNotEmpty)(),
50
+ (0, class_validator_1.IsOptional)(),
51
+ (0, class_validator_1.IsString)(),
52
+ (0, swagger_1.ApiProperty)(),
53
+ __metadata("design:type", String)
54
+ ], UpdateChatterMessageDto.prototype, "messageBodyMentions", void 0);
48
55
  __decorate([
49
56
  (0, class_validator_1.IsNotEmpty)(),
50
57
  (0, class_validator_1.IsOptional)(),
@@ -1 +1 @@
1
- {"version":3,"file":"update-chatter-message.dto.js","sourceRoot":"","sources":["../../src/dtos/update-chatter-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA0E;AAC1E,6CAA8C;AAE9C,MAAa,uBAAuB;;;;CAiDnC;AAjDD,0DAiDC;AA9CG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;mDACG;AAMX;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAMpB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;+DACS;AAMvB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAMpB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gEACU;AAMxB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACC;AAKf;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;uDACC","sourcesContent":["import { IsInt, IsOptional, IsString, IsNotEmpty } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UpdateChatterMessageDto {\n @IsOptional()\n @IsInt()\n id: number;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageType: string;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageSubType: string;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageBody: string;\n\n @IsNotEmpty()\n @IsOptional()\n @IsInt()\n @ApiProperty()\n coModelEntityId: number;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n coModelName: string;\n\n @IsOptional()\n @IsInt()\n @ApiProperty()\n userId: number;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n userUserKey: string;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n status: string;\n}"]}
1
+ {"version":3,"file":"update-chatter-message.dto.js","sourceRoot":"","sources":["../../src/dtos/update-chatter-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA0E;AAC1E,6CAA8C;AAE9C,MAAa,uBAAuB;;;;CAuDnC;AAvDD,0DAuDC;AApDG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;mDACG;AAMX;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAMpB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;+DACS;AAMvB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAMpB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;oEACc;AAM5B;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gEACU;AAMxB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACC;AAKf;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;uDACC","sourcesContent":["import { IsInt, IsOptional, IsString, IsNotEmpty } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class UpdateChatterMessageDto {\n @IsOptional()\n @IsInt()\n id: number;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageType: string;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageSubType: string;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageBody: string;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n messageBodyMentions: string;\n\n @IsNotEmpty()\n @IsOptional()\n @IsInt()\n @ApiProperty()\n coModelEntityId: number;\n\n @IsNotEmpty()\n @IsOptional()\n @IsString()\n @ApiProperty()\n coModelName: string;\n\n @IsOptional()\n @IsInt()\n @ApiProperty()\n userId: number;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n userUserKey: string;\n\n @IsOptional()\n @IsString()\n @ApiProperty()\n status: string;\n}"]}
@@ -1,5 +1,6 @@
1
1
  export declare class UpdateChatterNoteMessageDto {
2
2
  messageBody: string;
3
+ messageBodyMentions?: string;
3
4
  removeAttachmentIds?: string;
4
5
  }
5
6
  //# sourceMappingURL=update-chatter-note-message.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-chatter-note-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-chatter-note-message.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,2BAA2B;IAIpC,WAAW,EAAE,MAAM,CAAC;IAKpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC"}
1
+ {"version":3,"file":"update-chatter-note-message.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-chatter-note-message.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,2BAA2B;IAIpC,WAAW,EAAE,MAAM,CAAC;IAKpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAK7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC"}
@@ -15,7 +15,7 @@ const swagger_1 = require("@nestjs/swagger");
15
15
  const class_validator_1 = require("class-validator");
16
16
  class UpdateChatterNoteMessageDto {
17
17
  static _OPENAPI_METADATA_FACTORY() {
18
- return { messageBody: { required: true, type: () => String }, removeAttachmentIds: { required: false, type: () => String } };
18
+ return { messageBody: { required: true, type: () => String }, messageBodyMentions: { required: false, type: () => String }, removeAttachmentIds: { required: false, type: () => String } };
19
19
  }
20
20
  }
21
21
  exports.UpdateChatterNoteMessageDto = UpdateChatterNoteMessageDto;
@@ -25,6 +25,12 @@ __decorate([
25
25
  (0, swagger_1.ApiProperty)(),
26
26
  __metadata("design:type", String)
27
27
  ], UpdateChatterNoteMessageDto.prototype, "messageBody", void 0);
28
+ __decorate([
29
+ (0, class_validator_1.IsString)(),
30
+ (0, class_validator_1.IsOptional)(),
31
+ (0, swagger_1.ApiProperty)(),
32
+ __metadata("design:type", String)
33
+ ], UpdateChatterNoteMessageDto.prototype, "messageBodyMentions", void 0);
28
34
  __decorate([
29
35
  (0, class_validator_1.IsString)(),
30
36
  (0, class_validator_1.IsOptional)(),
@@ -1 +1 @@
1
- {"version":3,"file":"update-chatter-note-message.dto.js","sourceRoot":"","sources":["../../src/dtos/update-chatter-note-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAmE;AAEnE,MAAa,2BAA2B;;;;CAUvC;AAVD,kEAUC;AANG;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;gEACM;AAKpB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;;wEACxE","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { IsNotEmpty, IsOptional, IsString } from 'class-validator';\n\nexport class UpdateChatterNoteMessageDto {\n @IsString()\n @IsOptional()\n @ApiProperty()\n messageBody: string;\n\n @IsString()\n @IsOptional()\n @ApiProperty({ required: false, description: 'Comma-separated media IDs to remove from this note.' })\n removeAttachmentIds?: string;\n}\n"]}
1
+ {"version":3,"file":"update-chatter-note-message.dto.js","sourceRoot":"","sources":["../../src/dtos/update-chatter-note-message.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAmE;AAEnE,MAAa,2BAA2B;;;;CAevC;AAfD,kEAeC;AAXG;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;gEACM;AAKpB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;wEACe;AAK7B;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;;wEACxE","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { IsNotEmpty, IsOptional, IsString } from 'class-validator';\n\nexport class UpdateChatterNoteMessageDto {\n @IsString()\n @IsOptional()\n @ApiProperty()\n messageBody: string;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n messageBodyMentions?: string;\n\n @IsString()\n @IsOptional()\n @ApiProperty({ required: false, description: 'Comma-separated media IDs to remove from this note.' })\n removeAttachmentIds?: string;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  export declare class UpdateMediaDto {
2
2
  id: number;
3
3
  entityId: number;
4
+ isPublic?: boolean;
4
5
  relativeUri: string;
5
6
  fileSize: number;
6
7
  mimeType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"update-media.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-media.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;IAGvB,EAAE,EAAE,MAAM,CAAC;IAMf,QAAQ,EAAE,MAAM,CAAC;IAKjB,WAAW,EAAE,MAAM,CAAC;IAKpB,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAKjB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;IAK7B,8BAA8B,EAAE,MAAM,CAAC;IAKvC,mCAAmC,EAAE,MAAM,CAAC;IAK5C,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"update-media.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/update-media.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAc;IAGvB,EAAE,EAAE,MAAM,CAAC;IAMf,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,WAAW,EAAE,MAAM,CAAC;IAKpB,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAKjB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;IAK7B,8BAA8B,EAAE,MAAM,CAAC;IAKvC,mCAAmC,EAAE,MAAM,CAAC;IAK5C,eAAe,EAAE,MAAM,CAAC;IAKxB,oBAAoB,EAAE,MAAM,CAAC;CAC5B"}
@@ -15,7 +15,7 @@ const class_validator_1 = require("class-validator");
15
15
  const swagger_1 = require("@nestjs/swagger");
16
16
  class UpdateMediaDto {
17
17
  static _OPENAPI_METADATA_FACTORY() {
18
- return { id: { required: true, type: () => Number }, entityId: { required: true, type: () => Number }, relativeUri: { required: true, type: () => String }, fileSize: { required: true, type: () => Number }, mimeType: { required: true, type: () => String }, originalFileName: { required: true, type: () => String }, modelMetadataId: { required: true, type: () => Number }, modelMetadataUserKey: { required: true, type: () => String }, mediaStorageProviderMetadataId: { required: true, type: () => Number }, mediaStorageProviderMetadataUserKey: { required: true, type: () => String }, fieldMetadataId: { required: true, type: () => Number }, fieldMetadataUserKey: { required: true, type: () => String } };
18
+ return { id: { required: true, type: () => Number }, entityId: { required: true, type: () => Number }, isPublic: { required: false, type: () => Boolean }, relativeUri: { required: true, type: () => String }, fileSize: { required: true, type: () => Number }, mimeType: { required: true, type: () => String }, originalFileName: { required: true, type: () => String }, modelMetadataId: { required: true, type: () => Number }, modelMetadataUserKey: { required: true, type: () => String }, mediaStorageProviderMetadataId: { required: true, type: () => Number }, mediaStorageProviderMetadataUserKey: { required: true, type: () => String }, fieldMetadataId: { required: true, type: () => Number }, fieldMetadataUserKey: { required: true, type: () => String } };
19
19
  }
20
20
  }
21
21
  exports.UpdateMediaDto = UpdateMediaDto;
@@ -31,6 +31,12 @@ __decorate([
31
31
  (0, swagger_1.ApiProperty)(),
32
32
  __metadata("design:type", Number)
33
33
  ], UpdateMediaDto.prototype, "entityId", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsOptional)(),
36
+ (0, class_validator_1.IsBoolean)(),
37
+ (0, swagger_1.ApiPropertyOptional)({ default: true }),
38
+ __metadata("design:type", Boolean)
39
+ ], UpdateMediaDto.prototype, "isPublic", void 0);
34
40
  __decorate([
35
41
  (0, class_validator_1.IsOptional)(),
36
42
  (0, class_validator_1.IsString)(),
@@ -1 +1 @@
1
- {"version":3,"file":"update-media.dto.js","sourceRoot":"","sources":["../../src/dtos/update-media.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAAyE;AACzE,6CAA8C;AAC9C,MAAa,cAAc;;;;CA4D1B;AA5DD,wCA4DC;AAzDG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;0CACG;AAMf;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;wDACW;AAKzB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe;AAK7B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;sEACyB;AAKvC;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2EAC8B;AAK5C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe","sourcesContent":["import { IsInt,IsOptional, IsNotEmpty, IsString } from 'class-validator';\nimport { ApiProperty } from '@nestjs/swagger';\nexport class UpdateMediaDto {\n @IsOptional()\n @IsInt()\n id: number;\n\n@IsNotEmpty()\n@IsOptional()\n@IsInt()\n@ApiProperty()\nentityId: number;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nrelativeUri: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfileSize: number;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nmimeType: string;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\noriginalFileName: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmodelMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmodelMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmediaStorageProviderMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmediaStorageProviderMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfieldMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nfieldMetadataUserKey: string;\n}"]}
1
+ {"version":3,"file":"update-media.dto.js","sourceRoot":"","sources":["../../src/dtos/update-media.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAAoF;AACpF,6CAAmE;AACnE,MAAa,cAAc;;;;CAiE1B;AAjED,wCAiEC;AA9DG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;0CACG;AAMf;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;IACX,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gDACpB;AAKnB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACM;AAKpB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;gDACG;AAKjB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;wDACW;AAKzB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe;AAK7B;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;sEACyB;AAKvC;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2EAC8B;AAK5C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACU;AAKxB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACe","sourcesContent":["import { IsBoolean, IsInt,IsOptional, IsNotEmpty, IsString } from 'class-validator';\nimport { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nexport class UpdateMediaDto {\n @IsOptional()\n @IsInt()\n id: number;\n\n@IsNotEmpty()\n@IsOptional()\n@IsInt()\n@ApiProperty()\nentityId: number;\n\n@IsOptional()\n@IsBoolean()\n@ApiPropertyOptional({ default: true })\nisPublic?: boolean;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nrelativeUri: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfileSize: number;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\nmimeType: string;\n\n@IsOptional()\n@IsString()\n@ApiProperty()\noriginalFileName: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmodelMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmodelMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nmediaStorageProviderMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nmediaStorageProviderMetadataUserKey: string;\n\n@IsOptional()\n@IsInt()\n@ApiProperty()\nfieldMetadataId: number;\n\n@IsString()\n@IsOptional()\n@ApiProperty()\nfieldMetadataUserKey: string;\n}\n"]}
@@ -5,6 +5,7 @@ export declare class ChatterMessage extends CommonEntity {
5
5
  messageType: string;
6
6
  messageSubType: string;
7
7
  messageBody: string;
8
+ messageBodyMentions: string;
8
9
  coModelEntityId: number;
9
10
  coModelName: string;
10
11
  user: User;
@@ -1 +1 @@
1
- {"version":3,"file":"chatter-message.entity.d.ts","sourceRoot":"","sources":["../../src/entities/chatter-message.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,qBAEa,cAAe,SAAQ,YAAY;IAG5C,WAAW,EAAE,MAAM,CAAC;IAIpB,cAAc,EAAE,MAAM,CAAC;IAGvB,WAAW,EAAE,MAAM,CAAC;IAIpB,eAAe,EAAE,MAAM,CAAC;IAIxB,WAAW,EAAE,MAAM,CAAC;IAKpB,IAAI,EAAE,IAAI,CAAC;IAGX,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;IAI/C,gBAAgB,EAAE,MAAM,CAAC;IAGzB,YAAY,EAAE,MAAM,CAAC;IAGrB,MAAM,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"chatter-message.entity.d.ts","sourceRoot":"","sources":["../../src/entities/chatter-message.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,qBAEa,cAAe,SAAQ,YAAY;IAG5C,WAAW,EAAE,MAAM,CAAC;IAIpB,cAAc,EAAE,MAAM,CAAC;IAGvB,WAAW,EAAE,MAAM,CAAC;IAGpB,mBAAmB,EAAE,MAAM,CAAC;IAI5B,eAAe,EAAE,MAAM,CAAC;IAIxB,WAAW,EAAE,MAAM,CAAC;IAKpB,IAAI,EAAE,IAAI,CAAC;IAGX,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;IAI/C,gBAAgB,EAAE,MAAM,CAAC;IAGzB,YAAY,EAAE,MAAM,CAAC;IAGrB,MAAM,EAAE,MAAM,CAAC;CAClB"}
@@ -18,7 +18,7 @@ const chatter_message_details_entity_1 = require("./chatter-message-details.enti
18
18
  const typeorm_db_helper_1 = require("../helpers/typeorm-db-helper");
19
19
  let ChatterMessage = class ChatterMessage extends common_entity_1.CommonEntity {
20
20
  static _OPENAPI_METADATA_FACTORY() {
21
- return { messageType: { required: true, type: () => String }, messageSubType: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, user: { required: true, type: () => require("./user.entity").User }, chatterMessageDetails: { required: true, type: () => [require("./chatter-message-details.entity").ChatterMessageDetails] }, modelDisplayName: { required: true, type: () => String }, modelUserKey: { required: true, type: () => String }, status: { required: true, type: () => String } };
21
+ return { messageType: { required: true, type: () => String }, messageSubType: { required: true, type: () => String }, messageBody: { required: true, type: () => String }, messageBodyMentions: { required: true, type: () => String }, coModelEntityId: { required: true, type: () => Number }, coModelName: { required: true, type: () => String }, user: { required: true, type: () => require("./user.entity").User }, chatterMessageDetails: { required: true, type: () => [require("./chatter-message-details.entity").ChatterMessageDetails] }, modelDisplayName: { required: true, type: () => String }, modelUserKey: { required: true, type: () => String }, status: { required: true, type: () => String } };
22
22
  }
23
23
  };
24
24
  exports.ChatterMessage = ChatterMessage;
@@ -36,6 +36,10 @@ __decorate([
36
36
  (0, typeorm_1.Column)({ nullable: true, ...(0, typeorm_db_helper_1.getColumnType)('longText') }),
37
37
  __metadata("design:type", String)
38
38
  ], ChatterMessage.prototype, "messageBody", void 0);
39
+ __decorate([
40
+ (0, typeorm_1.Column)({ nullable: true, ...(0, typeorm_db_helper_1.getColumnType)('longText') }),
41
+ __metadata("design:type", String)
42
+ ], ChatterMessage.prototype, "messageBodyMentions", void 0);
39
43
  __decorate([
40
44
  (0, typeorm_1.Index)(),
41
45
  (0, typeorm_1.Column)({ type: "integer" }),
@@ -1 +1 @@
1
- {"version":3,"file":"chatter-message.entity.js","sourceRoot":"","sources":["../../src/entities/chatter-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAkF;AAClF,+CAA+C;AAC/C,qFAAyE;AACzE,oEAA8D;AAIvD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,4BAAY;;;;CAqC/C,CAAA;AArCY,wCAAc;AAGvB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;mDACR;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;sDACL;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAa,EAAC,UAAU,CAAC,EAAE,CAAC;;mDACrC;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;uDACJ;AAIxB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;mDACR;AAKpB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,IAAA,oBAAU,GAAE;8BACP,kBAAI;4CAAC;AAGX;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,sDAAqB,EAAE,CAAC,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;6DAC5E;AAI/C;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACF;AAGzB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACN;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;8CAChB;yBApCN,cAAc;IAF1B,IAAA,eAAK,EAAC,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACzC,IAAA,gBAAM,EAAC,oBAAoB,CAAC;GAChB,cAAc,CAqC1B","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, Column, Index, JoinColumn, ManyToOne, OneToMany } from 'typeorm';\nimport { User } from 'src/entities/user.entity'\nimport { ChatterMessageDetails } from './chatter-message-details.entity';\nimport { getColumnType } from 'src/helpers/typeorm-db-helper';\n\n@Index([\"coModelName\", \"coModelEntityId\"])\n@Entity(\"ss_chatter_message\")\nexport class ChatterMessage extends CommonEntity {\n @Index()\n @Column({ type: \"varchar\" })\n messageType: string; // audit | custom \n\n @Index()\n @Column({ type: \"varchar\" })\n messageSubType: string; // audit_update | audit_insert | audit_delete | custom | note | task\n\n @Column({ nullable: true, ...getColumnType('longText') })\n messageBody: string;\n\n @Index()\n @Column({ type: \"integer\" })\n coModelEntityId: number;\n\n @Index()\n @Column({ type: \"varchar\" })\n coModelName: string;\n\n @Index()\n @ManyToOne(() => User, { nullable: true })\n @JoinColumn()\n user: User;\n\n @OneToMany(() => ChatterMessageDetails, (chatterMessageDetails) => chatterMessageDetails.chatterMessage, { cascade: true })\n chatterMessageDetails: ChatterMessageDetails[];\n\n @Index()\n @Column({ nullable: true })\n modelDisplayName: string;\n\n @Column({ nullable: true })\n modelUserKey: string;\n\n @Column({ default: 'pending' })\n status: string; // pending | completed\n}\n"]}
1
+ {"version":3,"file":"chatter-message.entity.js","sourceRoot":"","sources":["../../src/entities/chatter-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAkF;AAClF,+CAA+C;AAC/C,qFAAyE;AACzE,oEAA8D;AAIvD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,4BAAY;;;;CAwC/C,CAAA;AAxCY,wCAAc;AAGvB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;mDACR;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;sDACL;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAa,EAAC,UAAU,CAAC,EAAE,CAAC;;mDACrC;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAa,EAAC,UAAU,CAAC,EAAE,CAAC;;2DAC7B;AAI5B;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;uDACJ;AAIxB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;mDACR;AAKpB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACzC,IAAA,oBAAU,GAAE;8BACP,kBAAI;4CAAC;AAGX;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,sDAAqB,EAAE,CAAC,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;6DAC5E;AAI/C;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACF;AAGzB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACN;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;;8CAChB;yBAvCN,cAAc;IAF1B,IAAA,eAAK,EAAC,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACzC,IAAA,gBAAM,EAAC,oBAAoB,CAAC;GAChB,cAAc,CAwC1B","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, Column, Index, JoinColumn, ManyToOne, OneToMany } from 'typeorm';\nimport { User } from 'src/entities/user.entity'\nimport { ChatterMessageDetails } from './chatter-message-details.entity';\nimport { getColumnType } from 'src/helpers/typeorm-db-helper';\n\n@Index([\"coModelName\", \"coModelEntityId\"])\n@Entity(\"ss_chatter_message\")\nexport class ChatterMessage extends CommonEntity {\n @Index()\n @Column({ type: \"varchar\" })\n messageType: string; // audit | custom \n\n @Index()\n @Column({ type: \"varchar\" })\n messageSubType: string; // audit_update | audit_insert | audit_delete | custom | note | task\n\n @Column({ nullable: true, ...getColumnType('longText') })\n messageBody: string;\n\n @Column({ nullable: true, ...getColumnType('longText') })\n messageBodyMentions: string;\n\n @Index()\n @Column({ type: \"integer\" })\n coModelEntityId: number;\n\n @Index()\n @Column({ type: \"varchar\" })\n coModelName: string;\n\n @Index()\n @ManyToOne(() => User, { nullable: true })\n @JoinColumn()\n user: User;\n\n @OneToMany(() => ChatterMessageDetails, (chatterMessageDetails) => chatterMessageDetails.chatterMessage, { cascade: true })\n chatterMessageDetails: ChatterMessageDetails[];\n\n @Index()\n @Column({ nullable: true })\n modelDisplayName: string;\n\n @Column({ nullable: true })\n modelUserKey: string;\n\n @Column({ default: 'pending' })\n status: string; // pending | completed\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"media.entity.js","sourceRoot":"","sources":["../../src/entities/media.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAuE;AACvE,mEAAmE;AACnE,qGAAmG;AACnG,mEAAkE;AAE3D,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,4BAAY;;;;CAgCtC,CAAA;AAhCY,sBAAK;AAGd;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;uCACX;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACxB;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACnB;AAKzB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;AAK7B;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qEAA4B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,IAAA,oBAAU,GAAE;8BACiB,qEAA4B;2DAAC;AAK3D;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;gBA/BpB,KAAK;IADjB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,KAAK,CAgCjB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, Column, Index, JoinColumn, ManyToOne } from 'typeorm';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { MediaStorageProviderMetadata } from 'src/entities/media-storage-provider-metadata.entity';\nimport { FieldMetadata } from 'src/entities/field-metadata.entity'\n@Entity(\"ss_media\")\nexport class Media extends CommonEntity {\n @Index()\n @Column({ type: \"integer\" })\n entityId: number;\n\n @Column({ type: \"varchar\", nullable: true })\n relativeUri: string;\n\n @Index()\n @Column({ type: \"integer\", nullable: true })\n fileSize: number;\n\n @Column({ type: \"varchar\", nullable: true })\n mimeType: string;\n\n @Column({ type: \"varchar\", nullable: true })\n originalFileName: string;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn()\n modelMetadata: ModelMetadata;\n\n @Index()\n @ManyToOne(() => MediaStorageProviderMetadata, { nullable: false })\n @JoinColumn()\n mediaStorageProviderMetadata: MediaStorageProviderMetadata;\n\n @Index()\n @ManyToOne(() => FieldMetadata, { nullable: false })\n @JoinColumn()\n fieldMetadata: FieldMetadata;\n}"]}
1
+ {"version":3,"file":"media.entity.js","sourceRoot":"","sources":["../../src/entities/media.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAuE;AACvE,mEAAmE;AACnE,qGAAmG;AACnG,mEAAkE;AAE3D,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQ,4BAAY;;;;CAgCtC,CAAA;AAhCY,sBAAK;AAGd;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;uCACX;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACxB;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC3B;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACnB;AAKzB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;AAK7B;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qEAA4B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClE,IAAA,oBAAU,GAAE;8BACiB,qEAA4B;2DAAC;AAK3D;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;4CAAC;gBA/BpB,KAAK;IADjB,IAAA,gBAAM,EAAC,UAAU,CAAC;GACN,KAAK,CAgCjB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, Column, Index, JoinColumn, ManyToOne } from 'typeorm';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { MediaStorageProviderMetadata } from 'src/entities/media-storage-provider-metadata.entity';\nimport { FieldMetadata } from 'src/entities/field-metadata.entity'\n@Entity(\"ss_media\")\nexport class Media extends CommonEntity {\n @Index()\n @Column({ type: \"integer\" })\n entityId: number;\n\n @Column({ type: \"varchar\", nullable: true })\n relativeUri: string;\n\n @Index()\n @Column({ type: \"integer\", nullable: true })\n fileSize: number;\n\n @Column({ type: \"varchar\", nullable: true })\n mimeType: string;\n\n @Column({ type: \"varchar\", nullable: true })\n originalFileName: string;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn()\n modelMetadata: ModelMetadata;\n\n @Index()\n @ManyToOne(() => MediaStorageProviderMetadata, { nullable: false })\n @JoinColumn()\n mediaStorageProviderMetadata: MediaStorageProviderMetadata;\n\n @Index()\n @ManyToOne(() => FieldMetadata, { nullable: false })\n @JoinColumn()\n fieldMetadata: FieldMetadata;\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  export declare enum AuthType {
2
2
  Bearer = 0,
3
3
  ApiKey = 1,
4
- None = 2
4
+ None = 2,
5
+ MediaSignedUrl = 3
5
6
  }
6
7
  //# sourceMappingURL=auth-type.enum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-type.enum.d.ts","sourceRoot":"","sources":["../../src/enums/auth-type.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAChB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,IAAI,IAAA;CACP"}
1
+ {"version":3,"file":"auth-type.enum.d.ts","sourceRoot":"","sources":["../../src/enums/auth-type.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAChB,MAAM,IAAA;IACN,MAAM,IAAA;IACN,IAAI,IAAA;IACJ,cAAc,IAAA;CACjB"}
@@ -6,5 +6,6 @@ var AuthType;
6
6
  AuthType[AuthType["Bearer"] = 0] = "Bearer";
7
7
  AuthType[AuthType["ApiKey"] = 1] = "ApiKey";
8
8
  AuthType[AuthType["None"] = 2] = "None";
9
+ AuthType[AuthType["MediaSignedUrl"] = 3] = "MediaSignedUrl";
9
10
  })(AuthType || (exports.AuthType = AuthType = {}));
10
11
  //# sourceMappingURL=auth-type.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-type.enum.js","sourceRoot":"","sources":["../../src/enums/auth-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,2CAAM,CAAA;IACN,2CAAM,CAAA;IACN,uCAAI,CAAA;AACR,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB","sourcesContent":["export enum AuthType {\n Bearer,\n ApiKey,\n None,\n}\n"]}
1
+ {"version":3,"file":"auth-type.enum.js","sourceRoot":"","sources":["../../src/enums/auth-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAKX;AALD,WAAY,QAAQ;IAChB,2CAAM,CAAA;IACN,2CAAM,CAAA;IACN,uCAAI,CAAA;IACJ,2DAAc,CAAA;AAClB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB","sourcesContent":["export enum AuthType {\n Bearer,\n ApiKey,\n None,\n MediaSignedUrl,\n}\n"]}
@@ -2,17 +2,19 @@ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
2
  import { Reflector } from '@nestjs/core';
3
3
  import { AccessTokenGuard } from './access-token.guard';
4
4
  import { ApiKeyGuard } from './api-key.guard';
5
+ import { MediaSignedUrlGuard } from './media-signed-url.guard';
5
6
  import { PermissionMetadataService } from '../services/permission-metadata.service';
6
7
  import { ClsService } from 'nestjs-cls';
7
8
  export declare class AuthenticationGuard implements CanActivate {
8
9
  private readonly reflector;
9
10
  private readonly accessTokenGuard;
10
11
  private readonly apiKeyGuard;
12
+ private readonly mediaSignedUrlGuard;
11
13
  private readonly permissionService;
12
14
  private readonly cls;
13
15
  private static readonly defaultAuthTypes;
14
16
  private readonly authTypeGuardMap;
15
- constructor(reflector: Reflector, accessTokenGuard: AccessTokenGuard, apiKeyGuard: ApiKeyGuard, permissionService: PermissionMetadataService, cls: ClsService);
17
+ constructor(reflector: Reflector, accessTokenGuard: AccessTokenGuard, apiKeyGuard: ApiKeyGuard, mediaSignedUrlGuard: MediaSignedUrlGuard, permissionService: PermissionMetadataService, cls: ClsService);
16
18
  private isGenericUnauthorizedError;
17
19
  canActivate(context: ExecutionContext): Promise<boolean>;
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.guard.d.ts","sourceRoot":"","sources":["../../src/guards/authentication.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,qBACa,mBAAoB,YAAW,WAAW;IAWnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAdtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IAC9E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAM7B;gBAGe,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,yBAAyB,EAC5C,GAAG,EAAE,UAAU;IAGlC,OAAO,CAAC,0BAA0B;IAgB5B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAsD/D"}
1
+ {"version":3,"file":"authentication.guard.d.ts","sourceRoot":"","sources":["../../src/guards/authentication.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,qBACa,mBAAoB,YAAW,WAAW;IAYnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAhBtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IAC9E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAO7B;gBAGe,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,WAAW,EACxB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,yBAAyB,EAC5C,GAAG,EAAE,UAAU;IAGlC,OAAO,CAAC,0BAA0B;IAgB5B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;CAsD/D"}
@@ -17,20 +17,23 @@ const auth_decorator_1 = require("../decorators/auth.decorator");
17
17
  const auth_type_enum_1 = require("../enums/auth-type.enum");
18
18
  const access_token_guard_1 = require("./access-token.guard");
19
19
  const api_key_guard_1 = require("./api-key.guard");
20
+ const media_signed_url_guard_1 = require("./media-signed-url.guard");
20
21
  const public_decorator_1 = require("../decorators/public.decorator");
21
22
  const permission_metadata_service_1 = require("../services/permission-metadata.service");
22
23
  const nestjs_cls_1 = require("nestjs-cls");
23
24
  let AuthenticationGuard = AuthenticationGuard_1 = class AuthenticationGuard {
24
- constructor(reflector, accessTokenGuard, apiKeyGuard, permissionService, cls) {
25
+ constructor(reflector, accessTokenGuard, apiKeyGuard, mediaSignedUrlGuard, permissionService, cls) {
25
26
  this.reflector = reflector;
26
27
  this.accessTokenGuard = accessTokenGuard;
27
28
  this.apiKeyGuard = apiKeyGuard;
29
+ this.mediaSignedUrlGuard = mediaSignedUrlGuard;
28
30
  this.permissionService = permissionService;
29
31
  this.cls = cls;
30
32
  this.authTypeGuardMap = {
31
33
  [auth_type_enum_1.AuthType.Bearer]: this.accessTokenGuard,
32
34
  [auth_type_enum_1.AuthType.ApiKey]: this.apiKeyGuard,
33
35
  [auth_type_enum_1.AuthType.None]: { canActivate: () => true },
36
+ [auth_type_enum_1.AuthType.MediaSignedUrl]: this.mediaSignedUrlGuard,
34
37
  };
35
38
  }
36
39
  isGenericUnauthorizedError(error) {
@@ -89,6 +92,7 @@ exports.AuthenticationGuard = AuthenticationGuard = AuthenticationGuard_1 = __de
89
92
  __metadata("design:paramtypes", [core_1.Reflector,
90
93
  access_token_guard_1.AccessTokenGuard,
91
94
  api_key_guard_1.ApiKeyGuard,
95
+ media_signed_url_guard_1.MediaSignedUrlGuard,
92
96
  permission_metadata_service_1.PermissionMetadataService,
93
97
  nestjs_cls_1.ClsService])
94
98
  ], AuthenticationGuard);
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.guard.js","sourceRoot":"","sources":["../../src/guards/authentication.guard.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CanActivate,\n ExecutionContext,\n Injectable,\n UnauthorizedException,\n} from '@nestjs/common';\nimport { Reflector } from '@nestjs/core';\nimport { AUTH_TYPE_KEY } from '../decorators/auth.decorator';\nimport { AuthType } from '../enums/auth-type.enum';\nimport { AccessTokenGuard } from './access-token.guard';\nimport { ApiKeyGuard } from './api-key.guard';\nimport { IS_PUBLIC_KEY } from '../decorators/public.decorator';\nimport { PermissionMetadataService } from '../services/permission-metadata.service';\nimport { ClsService } from 'nestjs-cls';\n\n@Injectable()\nexport class AuthenticationGuard implements CanActivate {\n private static readonly defaultAuthTypes = [AuthType.Bearer, AuthType.ApiKey];\n private readonly authTypeGuardMap: Record<\n AuthType,\n CanActivate | CanActivate[]> = {\n [AuthType.Bearer]: this.accessTokenGuard,\n [AuthType.ApiKey]: this.apiKeyGuard,\n [AuthType.None]: { canActivate: () => true },\n };\n\n constructor(\n private readonly reflector: Reflector,\n private readonly accessTokenGuard: AccessTokenGuard,\n private readonly apiKeyGuard: ApiKeyGuard,\n private readonly permissionService: PermissionMetadataService,\n private readonly cls: ClsService,\n ) { }\n\n private isGenericUnauthorizedError(error: unknown): boolean {\n if (!(error instanceof UnauthorizedException)) {\n return false;\n }\n\n const response = error.getResponse();\n const message =\n typeof response === 'string'\n ? response\n : Array.isArray((response as any)?.message)\n ? (response as any).message[0]\n : (response as any)?.message;\n\n return !message || message === 'Unauthorized';\n }\n\n async canActivate(context: ExecutionContext): Promise<boolean> {\n // If method marked as public, then we return with true, else go ahead and apply the access token guard. \n const contextLog = context.getHandler();\n const request = context.switchToHttp().getRequest();\n request['isListedInPublicRole'] = false;\n\n // Set IP and User-Agent into CLS context\n const rawIp = request.headers['x-forwarded-for'] || request.socket?.remoteAddress || request.ip;\n const ip = Array.isArray(rawIp) ? rawIp[0] :\n typeof rawIp === 'string' ? rawIp.split(',')[0].trim() : '';\n const userAgent = request.headers['user-agent'] || '';\n\n this.cls.set('ipAddress', ip);\n this.cls.set('userAgent', userAgent);\n\n const isPublic = this.reflector.get(IS_PUBLIC_KEY, context.getHandler());\n if (isPublic) {\n return true;\n }\n\n // TODO: Check if this permission viz. contextPermission is listed in the Public role.\n const contextPermission = `${context.getClass().name}.${context.getHandler().name}`;\n\n const permissionExistsInRole = await this.permissionService.permissionExistsInRole('Public', contextPermission)\n if (permissionExistsInRole.length > 0) {\n request['isListedInPublicRole'] = true;\n return true\n }\n\n const authTypes = this.reflector.getAllAndOverride<AuthType[]>(\n AUTH_TYPE_KEY,\n [context.getHandler(), context.getClass()],\n ) ?? AuthenticationGuard.defaultAuthTypes;\n const guards = authTypes.map((type) => this.authTypeGuardMap[type]).flat();\n let error = new UnauthorizedException();\n\n for (const instance of guards) {\n const canActivate = await Promise.resolve(\n instance.canActivate(context),\n ).catch((err) => {\n if (\n this.isGenericUnauthorizedError(error) ||\n !this.isGenericUnauthorizedError(err)\n ) {\n error = err;\n }\n });\n\n if (canActivate) {\n return true;\n }\n }\n throw error;\n }\n}\n"]}
1
+ {"version":3,"file":"authentication.guard.js","sourceRoot":"","sources":["../../src/guards/authentication.guard.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CanActivate,\n ExecutionContext,\n Injectable,\n UnauthorizedException,\n} from '@nestjs/common';\nimport { Reflector } from '@nestjs/core';\nimport { AUTH_TYPE_KEY } from '../decorators/auth.decorator';\nimport { AuthType } from '../enums/auth-type.enum';\nimport { AccessTokenGuard } from './access-token.guard';\nimport { ApiKeyGuard } from './api-key.guard';\nimport { MediaSignedUrlGuard } from './media-signed-url.guard';\nimport { IS_PUBLIC_KEY } from '../decorators/public.decorator';\nimport { PermissionMetadataService } from '../services/permission-metadata.service';\nimport { ClsService } from 'nestjs-cls';\n\n@Injectable()\nexport class AuthenticationGuard implements CanActivate {\n private static readonly defaultAuthTypes = [AuthType.Bearer, AuthType.ApiKey];\n private readonly authTypeGuardMap: Record<\n AuthType,\n CanActivate | CanActivate[]> = {\n [AuthType.Bearer]: this.accessTokenGuard,\n [AuthType.ApiKey]: this.apiKeyGuard,\n [AuthType.None]: { canActivate: () => true },\n [AuthType.MediaSignedUrl]: this.mediaSignedUrlGuard,\n };\n\n constructor(\n private readonly reflector: Reflector,\n private readonly accessTokenGuard: AccessTokenGuard,\n private readonly apiKeyGuard: ApiKeyGuard,\n private readonly mediaSignedUrlGuard: MediaSignedUrlGuard,\n private readonly permissionService: PermissionMetadataService,\n private readonly cls: ClsService,\n ) { }\n\n private isGenericUnauthorizedError(error: unknown): boolean {\n if (!(error instanceof UnauthorizedException)) {\n return false;\n }\n\n const response = error.getResponse();\n const message =\n typeof response === 'string'\n ? response\n : Array.isArray((response as any)?.message)\n ? (response as any).message[0]\n : (response as any)?.message;\n\n return !message || message === 'Unauthorized';\n }\n\n async canActivate(context: ExecutionContext): Promise<boolean> {\n // If method marked as public, then we return with true, else go ahead and apply the access token guard. \n const contextLog = context.getHandler();\n const request = context.switchToHttp().getRequest();\n request['isListedInPublicRole'] = false;\n\n // Set IP and User-Agent into CLS context\n const rawIp = request.headers['x-forwarded-for'] || request.socket?.remoteAddress || request.ip;\n const ip = Array.isArray(rawIp) ? rawIp[0] :\n typeof rawIp === 'string' ? rawIp.split(',')[0].trim() : '';\n const userAgent = request.headers['user-agent'] || '';\n\n this.cls.set('ipAddress', ip);\n this.cls.set('userAgent', userAgent);\n\n const isPublic = this.reflector.get(IS_PUBLIC_KEY, context.getHandler());\n if (isPublic) {\n return true;\n }\n\n // TODO: Check if this permission viz. contextPermission is listed in the Public role.\n const contextPermission = `${context.getClass().name}.${context.getHandler().name}`;\n\n const permissionExistsInRole = await this.permissionService.permissionExistsInRole('Public', contextPermission)\n if (permissionExistsInRole.length > 0) {\n request['isListedInPublicRole'] = true;\n return true\n }\n\n const authTypes = this.reflector.getAllAndOverride<AuthType[]>(\n AUTH_TYPE_KEY,\n [context.getHandler(), context.getClass()],\n ) ?? AuthenticationGuard.defaultAuthTypes;\n const guards = authTypes.map((type) => this.authTypeGuardMap[type]).flat();\n let error = new UnauthorizedException();\n\n for (const instance of guards) {\n const canActivate = await Promise.resolve(\n instance.canActivate(context),\n ).catch((err) => {\n if (\n this.isGenericUnauthorizedError(error) ||\n !this.isGenericUnauthorizedError(err)\n ) {\n error = err;\n }\n });\n\n if (canActivate) {\n return true;\n }\n }\n throw error;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { MediaDownloadUrlService } from '../services/media-download-url.service';
3
+ export declare class MediaSignedUrlGuard implements CanActivate {
4
+ private readonly mediaDownloadUrlService;
5
+ constructor(mediaDownloadUrlService: MediaDownloadUrlService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ private extractTokenFromQuery;
8
+ }
9
+ //# sourceMappingURL=media-signed-url.guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-signed-url.guard.d.ts","sourceRoot":"","sources":["../../src/guards/media-signed-url.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAqC,MAAM,gBAAgB,CAAC;AAElG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,qBACa,mBAAoB,YAAW,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAAvB,uBAAuB,EAAE,uBAAuB;IAEvE,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9D,OAAO,CAAC,qBAAqB;CAI9B"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MediaSignedUrlGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const media_download_url_service_1 = require("../services/media-download-url.service");
15
+ let MediaSignedUrlGuard = class MediaSignedUrlGuard {
16
+ constructor(mediaDownloadUrlService) {
17
+ this.mediaDownloadUrlService = mediaDownloadUrlService;
18
+ }
19
+ async canActivate(context) {
20
+ const request = context.switchToHttp().getRequest();
21
+ const token = this.extractTokenFromQuery(request);
22
+ if (!token) {
23
+ throw new common_1.UnauthorizedException();
24
+ }
25
+ let payload;
26
+ try {
27
+ payload = await this.mediaDownloadUrlService.verifyDownloadToken(token);
28
+ }
29
+ catch {
30
+ throw new common_1.UnauthorizedException();
31
+ }
32
+ const routeMediaId = Number(request.params?.id);
33
+ if (!Number.isFinite(routeMediaId) || payload.mediaId !== routeMediaId) {
34
+ throw new common_1.UnauthorizedException();
35
+ }
36
+ request['isListedInPublicRole'] = true;
37
+ return true;
38
+ }
39
+ extractTokenFromQuery(request) {
40
+ const token = request.query?.token;
41
+ return typeof token === 'string' ? token : undefined;
42
+ }
43
+ };
44
+ exports.MediaSignedUrlGuard = MediaSignedUrlGuard;
45
+ exports.MediaSignedUrlGuard = MediaSignedUrlGuard = __decorate([
46
+ (0, common_1.Injectable)(),
47
+ __metadata("design:paramtypes", [media_download_url_service_1.MediaDownloadUrlService])
48
+ ], MediaSignedUrlGuard);
49
+ //# sourceMappingURL=media-signed-url.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-signed-url.guard.js","sourceRoot":"","sources":["../../src/guards/media-signed-url.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAkG;AAElG,uFAAkF;AAG3E,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,uBAAgD;QAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;IAAI,CAAC;IAElF,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,OAA4B,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YACvE,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QAMD,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;QAEvC,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB,CAAC,OAAgB;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;CACF,CAAA;AAnCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAE2C,oDAAuB;GADlE,mBAAmB,CAmC/B","sourcesContent":["import { CanActivate, ExecutionContext, Injectable, UnauthorizedException } from '@nestjs/common';\nimport { Request } from 'express';\nimport { MediaDownloadUrlService } from 'src/services/media-download-url.service';\n\n@Injectable()\nexport class MediaSignedUrlGuard implements CanActivate {\n constructor(private readonly mediaDownloadUrlService: MediaDownloadUrlService) { }\n\n async canActivate(context: ExecutionContext): Promise<boolean> {\n const request = context.switchToHttp().getRequest<Request>();\n const token = this.extractTokenFromQuery(request);\n if (!token) {\n throw new UnauthorizedException();\n }\n\n let payload: { mediaId: number };\n try {\n payload = await this.mediaDownloadUrlService.verifyDownloadToken(token);\n } catch {\n throw new UnauthorizedException();\n }\n\n const routeMediaId = Number(request.params?.id);\n if (!Number.isFinite(routeMediaId) || payload.mediaId !== routeMediaId) {\n throw new UnauthorizedException();\n }\n\n // No REQUEST_USER_KEY is ever set for token auth (only Bearer/ApiKey guards set it), so\n // the sibling global APP_GUARD PermissionsGuard would otherwise reject this request for\n // lack of a per-user permission grant. Flag it the same way AuthenticationGuard flags\n // Public-role-exempt requests - token possession IS the full authorization decision here.\n request['isListedInPublicRole'] = true;\n\n return true;\n }\n\n private extractTokenFromQuery(request: Request): string | undefined {\n const token = request.query?.token;\n return typeof token === 'string' ? token : undefined;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEnE,oBAAY,cAAc;IACtB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CACxC;AAkFD,qBAAa,qBAAsB,YAAW,gBAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,iBAAiB;IAGvD,OAAO,CAAC,gBAAgB;IAoBxB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE;IAKxE,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,qBAAqB;IAW7B,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CAKpC"}
1
+ {"version":3,"file":"MediaFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/MediaFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGnE,oBAAY,cAAc;IACtB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CACxC;AA6DD,qBAAa,qBAAsB,YAAW,gBAAgB;IAE9C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,iBAAiB;IAGvD,OAAO,CAAC,gBAAgB;IA4BxB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE;IAKxE,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,qBAAqB;IAW7B,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CAKpC"}