@solidstarters/solid-core 1.2.161 → 1.2.165

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 (191) hide show
  1. package/dist/commands/ingest.command.d.ts +16 -0
  2. package/dist/commands/ingest.command.d.ts.map +1 -0
  3. package/dist/commands/ingest.command.js +50 -0
  4. package/dist/commands/ingest.command.js.map +1 -0
  5. package/dist/commands/refresh-module.command.d.ts.map +1 -1
  6. package/dist/commands/refresh-module.command.js.map +1 -1
  7. package/dist/controllers/service.controller.d.ts +16 -1
  8. package/dist/controllers/service.controller.d.ts.map +1 -1
  9. package/dist/controllers/service.controller.js +55 -2
  10. package/dist/controllers/service.controller.js.map +1 -1
  11. package/dist/controllers/test-queue.controller.d.ts +1 -1
  12. package/dist/controllers/test-queue.controller.d.ts.map +1 -1
  13. package/dist/controllers/test-queue.controller.js +6 -4
  14. package/dist/controllers/test-queue.controller.js.map +1 -1
  15. package/dist/controllers/test.controller.d.ts +6 -1
  16. package/dist/controllers/test.controller.d.ts.map +1 -1
  17. package/dist/controllers/test.controller.js +21 -3
  18. package/dist/controllers/test.controller.js.map +1 -1
  19. package/dist/entities/common.entity.d.ts.map +1 -1
  20. package/dist/entities/common.entity.js +14 -2
  21. package/dist/entities/common.entity.js.map +1 -1
  22. package/dist/entities/user.entity.d.ts.map +1 -1
  23. package/dist/entities/user.entity.js +11 -1
  24. package/dist/entities/user.entity.js.map +1 -1
  25. package/dist/helpers/error-mapper.service.d.ts +8 -0
  26. package/dist/helpers/error-mapper.service.d.ts.map +1 -0
  27. package/dist/helpers/error-mapper.service.js +108 -0
  28. package/dist/helpers/error-mapper.service.js.map +1 -0
  29. package/dist/jobs/chatter-queue-options.d.ts +8 -0
  30. package/dist/jobs/chatter-queue-options.d.ts.map +1 -0
  31. package/dist/jobs/chatter-queue-options.js +10 -0
  32. package/dist/jobs/chatter-queue-options.js.map +1 -0
  33. package/dist/jobs/chatter-queue-publisher.service.d.ts +22 -0
  34. package/dist/jobs/chatter-queue-publisher.service.d.ts.map +1 -0
  35. package/dist/jobs/chatter-queue-publisher.service.js +39 -0
  36. package/dist/jobs/chatter-queue-publisher.service.js.map +1 -0
  37. package/dist/jobs/chatter-queue-subscriber.service.d.ts +17 -0
  38. package/dist/jobs/chatter-queue-subscriber.service.d.ts.map +1 -0
  39. package/dist/jobs/chatter-queue-subscriber.service.js +59 -0
  40. package/dist/jobs/chatter-queue-subscriber.service.js.map +1 -0
  41. package/dist/jobs/{database/computed-field-evaluation-publisher.service.d.ts → computed-field-evaluation-publisher.service.d.ts} +2 -2
  42. package/dist/jobs/computed-field-evaluation-publisher.service.d.ts.map +1 -0
  43. package/dist/jobs/{database/computed-field-evaluation-publisher.service.js → computed-field-evaluation-publisher.service.js} +8 -8
  44. package/dist/jobs/computed-field-evaluation-publisher.service.js.map +1 -0
  45. package/dist/jobs/{database/computed-field-evaluation-queue-options.d.ts → computed-field-evaluation-queue-options.d.ts} +1 -1
  46. package/dist/jobs/computed-field-evaluation-queue-options.d.ts.map +1 -0
  47. package/dist/jobs/{database/computed-field-evaluation-queue-options.js → computed-field-evaluation-queue-options.js} +2 -2
  48. package/dist/jobs/computed-field-evaluation-queue-options.js.map +1 -0
  49. package/dist/jobs/{database/computed-field-evaluation-subscriber.service.d.ts → computed-field-evaluation-subscriber.service.d.ts} +3 -3
  50. package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts.map +1 -0
  51. package/dist/jobs/computed-field-evaluation-subscriber.service.js +51 -0
  52. package/dist/jobs/computed-field-evaluation-subscriber.service.js.map +1 -0
  53. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.d.ts +12 -0
  54. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.d.ts.map +1 -0
  55. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.js +39 -0
  56. package/dist/jobs/database/computed-field-evaluation-publisher-database.service.js.map +1 -0
  57. package/dist/jobs/database/computed-field-evaluation-queue-options-database.d.ts +8 -0
  58. package/dist/jobs/database/computed-field-evaluation-queue-options-database.d.ts.map +1 -0
  59. package/dist/jobs/database/computed-field-evaluation-queue-options-database.js +10 -0
  60. package/dist/jobs/database/computed-field-evaluation-queue-options-database.js.map +1 -0
  61. package/dist/jobs/database/computed-field-evaluation-subscriber-database.service.d.ts +18 -0
  62. package/dist/jobs/database/computed-field-evaluation-subscriber-database.service.d.ts.map +1 -0
  63. package/dist/jobs/database/{computed-field-evaluation-subscriber.service.js → computed-field-evaluation-subscriber-database.service.js} +8 -8
  64. package/dist/jobs/database/computed-field-evaluation-subscriber-database.service.js.map +1 -0
  65. package/dist/jobs/database/generate-code-queue-options-database.js +2 -2
  66. package/dist/jobs/database/generate-code-queue-options-database.js.map +1 -1
  67. package/dist/jobs/database/test-queue-subscriber-database.service.d.ts.map +1 -1
  68. package/dist/jobs/database/test-queue-subscriber-database.service.js +7 -1
  69. package/dist/jobs/database/test-queue-subscriber-database.service.js.map +1 -1
  70. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  71. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +4 -2
  72. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  73. package/dist/jobs/generate-code-publisher.service.d.ts +11 -0
  74. package/dist/jobs/generate-code-publisher.service.d.ts.map +1 -0
  75. package/dist/jobs/generate-code-publisher.service.js +39 -0
  76. package/dist/jobs/generate-code-publisher.service.js.map +1 -0
  77. package/dist/jobs/generate-code-queue-options.d.ts +8 -0
  78. package/dist/jobs/generate-code-queue-options.d.ts.map +1 -0
  79. package/dist/jobs/generate-code-queue-options.js +10 -0
  80. package/dist/jobs/generate-code-queue-options.js.map +1 -0
  81. package/dist/jobs/generate-code-subscriber.service.d.ts +18 -0
  82. package/dist/jobs/generate-code-subscriber.service.d.ts.map +1 -0
  83. package/dist/jobs/generate-code-subscriber.service.js +70 -0
  84. package/dist/jobs/generate-code-subscriber.service.js.map +1 -0
  85. package/dist/jobs/test-queue-subscriber.service.d.ts +1 -1
  86. package/dist/jobs/test-queue-subscriber.service.d.ts.map +1 -1
  87. package/dist/jobs/test-queue-subscriber.service.js +9 -6
  88. package/dist/jobs/test-queue-subscriber.service.js.map +1 -1
  89. package/dist/jobs/trigger-mcp-client-publisher.service.d.ts +11 -0
  90. package/dist/jobs/trigger-mcp-client-publisher.service.d.ts.map +1 -0
  91. package/dist/jobs/trigger-mcp-client-publisher.service.js +39 -0
  92. package/dist/jobs/trigger-mcp-client-publisher.service.js.map +1 -0
  93. package/dist/jobs/trigger-mcp-client-queue-options.d.ts +8 -0
  94. package/dist/jobs/trigger-mcp-client-queue-options.d.ts.map +1 -0
  95. package/dist/jobs/trigger-mcp-client-queue-options.js +10 -0
  96. package/dist/jobs/trigger-mcp-client-queue-options.js.map +1 -0
  97. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts +18 -0
  98. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts.map +1 -0
  99. package/dist/jobs/trigger-mcp-client-subscriber.service.js +103 -0
  100. package/dist/jobs/trigger-mcp-client-subscriber.service.js.map +1 -0
  101. package/dist/jobs/twilio-sms-publisher.service.d.ts +11 -0
  102. package/dist/jobs/twilio-sms-publisher.service.d.ts.map +1 -0
  103. package/dist/jobs/twilio-sms-publisher.service.js +39 -0
  104. package/dist/jobs/twilio-sms-publisher.service.js.map +1 -0
  105. package/dist/jobs/twilio-sms-queue-options.d.ts +8 -0
  106. package/dist/jobs/twilio-sms-queue-options.d.ts.map +1 -0
  107. package/dist/jobs/twilio-sms-queue-options.js +10 -0
  108. package/dist/jobs/twilio-sms-queue-options.js.map +1 -0
  109. package/dist/jobs/twilio-sms-subscriber.service.d.ts +17 -0
  110. package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -0
  111. package/dist/jobs/twilio-sms-subscriber.service.js +48 -0
  112. package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -0
  113. package/dist/seeders/seed-data/solid-core-metadata.json +21 -0
  114. package/dist/services/genai/ingest-metadata.service.d.ts +38 -0
  115. package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -0
  116. package/dist/services/genai/ingest-metadata.service.js +530 -0
  117. package/dist/services/genai/ingest-metadata.service.js.map +1 -0
  118. package/dist/services/genai/r2r-helper.service.d.ts +7 -0
  119. package/dist/services/genai/r2r-helper.service.d.ts.map +1 -0
  120. package/dist/services/genai/r2r-helper.service.js +36 -0
  121. package/dist/services/genai/r2r-helper.service.js.map +1 -0
  122. package/dist/services/queues/database-publisher.service.js +2 -2
  123. package/dist/services/queues/database-publisher.service.js.map +1 -1
  124. package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
  125. package/dist/services/queues/database-subscriber.service.js +2 -1
  126. package/dist/services/queues/database-subscriber.service.js.map +1 -1
  127. package/dist/services/queues/publisher-factory.service.js +1 -1
  128. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  129. package/dist/services/setting.service.d.ts.map +1 -1
  130. package/dist/services/setting.service.js +38 -20
  131. package/dist/services/setting.service.js.map +1 -1
  132. package/dist/solid-core.module.d.ts.map +1 -1
  133. package/dist/solid-core.module.js +29 -4
  134. package/dist/solid-core.module.js.map +1 -1
  135. package/dist/subscribers/audit.subscriber.d.ts +8 -0
  136. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  137. package/dist/subscribers/audit.subscriber.js +52 -3
  138. package/dist/subscribers/audit.subscriber.js.map +1 -1
  139. package/dist/subscribers/computed-entity-field.subscriber.d.ts +3 -3
  140. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  141. package/dist/subscribers/computed-entity-field.subscriber.js +5 -7
  142. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +2 -1
  145. package/src/commands/ingest-rag-chunking-strategy-for.md +224 -0
  146. package/src/commands/ingest.command.ts +36 -0
  147. package/src/commands/refresh-module.command.ts +0 -1
  148. package/src/controllers/service.controller.ts +66 -3
  149. package/src/controllers/test-queue.controller.ts +4 -3
  150. package/src/controllers/test.controller.ts +15 -3
  151. package/src/entities/common.entity.ts +10 -0
  152. package/src/entities/user.entity.ts +33 -1
  153. package/src/helpers/error-mapper.service.ts +214 -0
  154. package/src/jobs/chatter-queue-options.ts +9 -0
  155. package/src/jobs/chatter-queue-publisher.service.ts +37 -0
  156. package/src/jobs/chatter-queue-subscriber.service.ts +46 -0
  157. package/src/jobs/computed-field-evaluation-publisher.service.ts +23 -0
  158. package/src/jobs/{database/computed-field-evaluation-queue-options.ts → computed-field-evaluation-queue-options.ts} +2 -2
  159. package/src/jobs/computed-field-evaluation-subscriber.service.ts +38 -0
  160. package/src/jobs/database/{computed-field-evaluation-publisher.service.ts → computed-field-evaluation-publisher-database.service.ts} +2 -2
  161. package/src/jobs/database/computed-field-evaluation-queue-options-database.ts +9 -0
  162. package/src/jobs/database/{computed-field-evaluation-subscriber.service.ts → computed-field-evaluation-subscriber-database.service.ts} +2 -2
  163. package/src/jobs/database/generate-code-queue-options-database.ts +2 -2
  164. package/src/jobs/database/test-queue-subscriber-database.service.ts +10 -2
  165. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +4 -2
  166. package/src/jobs/generate-code-publisher.service.ts +23 -0
  167. package/src/jobs/generate-code-queue-options.ts +9 -0
  168. package/src/jobs/generate-code-subscriber.service.ts +59 -0
  169. package/src/jobs/test-queue-subscriber.service.ts +15 -7
  170. package/src/jobs/trigger-mcp-client-publisher.service.ts +22 -0
  171. package/src/jobs/trigger-mcp-client-queue-options.ts +9 -0
  172. package/src/jobs/trigger-mcp-client-subscriber.service.ts +104 -0
  173. package/src/jobs/twilio-sms-publisher.service.ts +23 -0
  174. package/src/jobs/twilio-sms-queue-options.ts +9 -0
  175. package/src/jobs/twilio-sms-subscriber.service.ts +32 -0
  176. package/src/seeders/seed-data/solid-core-metadata.json +21 -0
  177. package/src/services/genai/ingest-metadata.service.ts +695 -0
  178. package/src/services/genai/r2r-helper.service.ts +33 -0
  179. package/src/services/queues/database-publisher.service.ts +2 -2
  180. package/src/services/queues/database-subscriber.service.ts +2 -1
  181. package/src/services/queues/publisher-factory.service.ts +1 -1
  182. package/src/services/setting.service.ts +46 -22
  183. package/src/solid-core.module.ts +41 -8
  184. package/src/subscribers/audit.subscriber.ts +235 -5
  185. package/src/subscribers/computed-entity-field.subscriber.ts +7 -5
  186. package/dist/jobs/database/computed-field-evaluation-publisher.service.d.ts.map +0 -1
  187. package/dist/jobs/database/computed-field-evaluation-publisher.service.js.map +0 -1
  188. package/dist/jobs/database/computed-field-evaluation-queue-options.d.ts.map +0 -1
  189. package/dist/jobs/database/computed-field-evaluation-queue-options.js.map +0 -1
  190. package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts.map +0 -1
  191. package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\"\nimport { Entity, Column, Index, JoinTable, ManyToMany, OneToMany, TableInheritance } from \"typeorm\";\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { UserViewMetadata } from 'src/entities/user-view-metadata.entity'\n\n@Entity(\"ss_user\")\n@TableInheritance({ column: { type: \"varchar\", name: \"type\", default: \"User\" } })\nexport class User extends CommonEntity {\n @Column({ type: \"varchar\", nullable: true })\n fullName: string;\n @Index({ unique: true })\n @Column({ type: \"varchar\" })\n username: string;\n @Index({ unique: true })\n @Column({ type: \"varchar\", nullable: true })\n email: string;\n @Index({ unique: true })\n @Column({ type: \"varchar\", nullable: true })\n mobile: string;\n @Column({ type: \"varchar\", nullable: true })\n password: string;\n @Column({ type: \"boolean\", nullable: true, default: true })\n forcePasswordChange: boolean = true;\n @Column({ type: \"varchar\", default: \"local\" })\n lastLoginProvider: string = \"local\";\n @Column({ type: \"varchar\", nullable: true })\n accessCode: string;\n @Column({ type: \"varchar\", nullable: true })\n googleAccessToken: string;\n @Column({ type: \"varchar\", nullable: true })\n googleId: string;\n @Column({ type: \"varchar\", nullable: true })\n googleProfilePicture: string;\n @Column({ type: \"boolean\", default: true })\n active: boolean = true;\n @Column({ type: \"timestamp\", nullable: true })\n forgotPasswordConfirmedAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n verificationTokenOnForgotPassword: string;\n @Column({ type: \"timestamp\", nullable: true })\n verificationTokenOnForgotPasswordExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n emailVerifiedOnRegistrationAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n emailVerificationTokenOnRegistration: string;\n @Column({ type: \"timestamp\", nullable: true })\n emailVerificationTokenOnRegistrationExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n mobileVerifiedOnRegistrationAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n mobileVerificationTokenOnRegistration: string;\n @Column({ type: \"timestamp\", nullable: true })\n mobileVerificationTokenOnRegistrationExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n emailVerifiedOnLoginAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n emailVerificationTokenOnLogin: string;\n @Column({ type: \"timestamp\", nullable: true })\n emailVerificationTokenOnLoginExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n mobileVerifiedOnLoginAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n mobileVerificationTokenOnLogin: string;\n @Column({ type: \"timestamp\", nullable: true })\n mobileVerificationTokenOnLoginExpiresAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n customPayload: string;\n @ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.users, { cascade: true })\n @JoinTable()\n roles: RoleMetadata[];\n @OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.user, { cascade: true })\n userViewMetadata: UserViewMetadata[];\n}"]}
1
+ {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\"\nimport { Entity, Column, Index, JoinTable, ManyToMany, OneToMany, TableInheritance } from \"typeorm\";\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { UserViewMetadata } from 'src/entities/user-view-metadata.entity'\nimport { Exclude, Expose } from \"class-transformer\";\n\n@Entity(\"ss_user\")\n@TableInheritance({ column: { type: \"varchar\", name: \"type\", default: \"User\" } })\n@Exclude()\nexport class User extends CommonEntity {\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n fullName: string; \n @Index({ unique: true })\n @Column({ type: \"varchar\" })\n @Expose()\n username: string;\n @Index({ unique: true })\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n email: string;\n @Index({ unique: true })\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n mobile: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n password: string;\n @Column({ type: \"boolean\", nullable: true, default: true })\n @Expose()\n forcePasswordChange: boolean = true;\n @Column({ type: \"varchar\", default: \"local\" })\n // don't send to client\n lastLoginProvider: string = \"local\";\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client (test)\n accessCode: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleAccessToken: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleId: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleProfilePicture: string;\n @Column({ type: \"boolean\", default: true })\n @Expose()\n active: boolean = true;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n forgotPasswordConfirmedAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n verificationTokenOnForgotPassword: string;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n verificationTokenOnForgotPasswordExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n emailVerifiedOnRegistrationAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n emailVerificationTokenOnRegistration: string;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n emailVerificationTokenOnRegistrationExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n mobileVerifiedOnRegistrationAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnRegistration: string;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnRegistrationExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n emailVerifiedOnLoginAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n emailVerificationTokenOnLogin: string;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n emailVerificationTokenOnLoginExpiresAt: Date;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n mobileVerifiedOnLoginAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnLogin: string;\n @Column({ type: \"timestamp\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnLoginExpiresAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n customPayload: string;\n @ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.users, { cascade: true })\n @JoinTable()\n @Expose()\n roles: RoleMetadata[];\n @OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.user, { cascade: true })\n // don't send to client\n userViewMetadata: UserViewMetadata[];\n}"]}
@@ -0,0 +1,8 @@
1
+ export declare const ERROR_CODES: readonly ["bedrock-throttling-error", "bedrock-access-denied", "bedrock-input-too-long", "bedrock-validation-error", "bedrock-model-not-found", "db-duplicate-key", "db-foreign-key-error", "metadata-extraction-date-parsing-failed", "metadata-extraction-missing-s3-file", "solidx-mcp-server-unavailable", "unknown-error"];
2
+ export type ErrorCode = typeof ERROR_CODES[number];
3
+ export declare class ErrorMapperService {
4
+ mapException(exc: unknown): ErrorCode;
5
+ mapMessage(message: string, trace?: string): ErrorCode;
6
+ private combineErrorText;
7
+ }
8
+ //# sourceMappingURL=error-mapper.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.service.d.ts","sourceRoot":"","sources":["../../src/helpers/error-mapper.service.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,iUAYd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEnD,qBACa,kBAAkB;IAK3B,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS;IAsIrC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS;IAOtD,OAAO,CAAC,gBAAgB;CAuC3B"}
@@ -0,0 +1,108 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ErrorMapperService = exports.ERROR_CODES = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ exports.ERROR_CODES = [
12
+ 'bedrock-throttling-error',
13
+ 'bedrock-access-denied',
14
+ 'bedrock-input-too-long',
15
+ 'bedrock-validation-error',
16
+ 'bedrock-model-not-found',
17
+ 'db-duplicate-key',
18
+ 'db-foreign-key-error',
19
+ 'metadata-extraction-date-parsing-failed',
20
+ 'metadata-extraction-missing-s3-file',
21
+ 'solidx-mcp-server-unavailable',
22
+ 'unknown-error',
23
+ ];
24
+ let ErrorMapperService = class ErrorMapperService {
25
+ mapException(exc) {
26
+ const combined = this.combineErrorText(exc);
27
+ if (combined.includes("all connection attempts failed") && combined.includes("unhandled errors in a taskgroup (1 sub-exception)")) {
28
+ return 'solidx-mcp-server-unavailable';
29
+ }
30
+ if (combined.includes('throttlingexception') ||
31
+ combined.includes('too many tokens')) {
32
+ return 'bedrock-throttling-error';
33
+ }
34
+ if (combined.includes('accessdeniedexception')) {
35
+ return 'bedrock-access-denied';
36
+ }
37
+ if (combined.includes('validationexception') &&
38
+ combined.includes('input is too long')) {
39
+ return 'bedrock-input-too-long';
40
+ }
41
+ if (combined.includes('validationexception')) {
42
+ return 'bedrock-validation-error';
43
+ }
44
+ if (combined.includes('modelnotfoundexception')) {
45
+ return 'bedrock-model-not-found';
46
+ }
47
+ if (combined.includes('unique constraint') ||
48
+ combined.includes('duplicate key')) {
49
+ return 'db-duplicate-key';
50
+ }
51
+ if (combined.includes('foreign key')) {
52
+ return 'db-foreign-key-error';
53
+ }
54
+ if (combined.includes('mapper_parsing_exception') &&
55
+ (combined.includes('failed to parse field [metadata.properties.dates]') ||
56
+ combined.includes('failed to parse field [metadata.properties.date_authored]'))) {
57
+ return 'metadata-extraction-date-parsing-failed';
58
+ }
59
+ if (combined.includes('nosuchkey') && combined.includes('getobject')) {
60
+ return 'metadata-extraction-missing-s3-file';
61
+ }
62
+ return 'unknown-error';
63
+ }
64
+ mapMessage(message, trace) {
65
+ const combined = `${message ?? ''}\n${trace ?? ''}`.toLowerCase();
66
+ return this.mapException(combined);
67
+ }
68
+ combineErrorText(exc) {
69
+ if (typeof exc === 'string') {
70
+ return exc.toLowerCase();
71
+ }
72
+ if (exc instanceof Error) {
73
+ const message = exc.message ?? '';
74
+ const stack = exc.stack ?? '';
75
+ return `${message}\n${stack}`.toLowerCase();
76
+ }
77
+ if (exc && typeof exc === 'object') {
78
+ try {
79
+ const maybeAny = exc;
80
+ const msg = String(maybeAny.message ?? '') ||
81
+ String(maybeAny['Message'] ?? '') ||
82
+ '';
83
+ const name = String(maybeAny.name ?? '') ||
84
+ String(maybeAny['__type'] ?? '') ||
85
+ '';
86
+ const stack = String(maybeAny.stack ?? '');
87
+ const json = safeJsonStringify(maybeAny);
88
+ return `${name}\n${msg}\n${stack}\n${json}`.toLowerCase();
89
+ }
90
+ catch {
91
+ }
92
+ }
93
+ return String(exc ?? '').toLowerCase();
94
+ }
95
+ };
96
+ exports.ErrorMapperService = ErrorMapperService;
97
+ exports.ErrorMapperService = ErrorMapperService = __decorate([
98
+ (0, common_1.Injectable)()
99
+ ], ErrorMapperService);
100
+ function safeJsonStringify(obj) {
101
+ try {
102
+ return JSON.stringify(obj);
103
+ }
104
+ catch {
105
+ return '';
106
+ }
107
+ }
108
+ //# sourceMappingURL=error-mapper.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-mapper.service.js","sourceRoot":"","sources":["../../src/helpers/error-mapper.service.ts"],"names":[],"mappings":"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","sourcesContent":["// src/common/errors/error-mapper.service.ts\nimport { Injectable } from '@nestjs/common';\n\nexport const ERROR_CODES = [\n 'bedrock-throttling-error',\n 'bedrock-access-denied',\n 'bedrock-input-too-long',\n 'bedrock-validation-error',\n 'bedrock-model-not-found',\n 'db-duplicate-key',\n 'db-foreign-key-error',\n 'metadata-extraction-date-parsing-failed',\n 'metadata-extraction-missing-s3-file',\n 'solidx-mcp-server-unavailable',\n 'unknown-error',\n] as const;\n\nexport type ErrorCode = typeof ERROR_CODES[number];\n\n@Injectable()\nexport class ErrorMapperService {\n /**\n * Given an error/exception, return a mapped error code string.\n * Default: \"unknown-error\"\n */\n mapException(exc: unknown): ErrorCode {\n const combined = this.combineErrorText(exc);\n\n // AiInteraction - mcp server down. \n // {\n // \"success\": false,\n // \"errors\": [\n // \"unhandled errors in a TaskGroup (1 sub-exception)\"\n // ],\n // \"error_trace\": [\n // \"Traceback (most recent call last):\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/mcp/client/sse.py\\\", line 47, in sse_client\\n async with aconnect_sse(\\n ^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 210, in __aenter__\\n return await anext(self.gen)\\n ^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx_sse/_api.py\\\", line 69, in aconnect_sse\\n async with client.stream(method, url, headers=headers, **kwargs) as response:\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 210, in __aenter__\\n return await anext(self.gen)\\n ^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1583, in stream\\n response = await self.send(\\n ^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1629, in send\\n response = await self._send_handling_auth(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1657, in _send_handling_auth\\n response = await self._send_handling_redirects(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1694, in _send_handling_redirects\\n response = await self._send_single_request(request)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1730, in _send_single_request\\n response = await transport.handle_async_request(request)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_transports/default.py\\\", line 393, in handle_async_request\\n with map_httpcore_exceptions():\\n ^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 158, in __exit__\\n self.gen.throw(value)\",\n // \"File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_transports/default.py\\\", line 118, in map_httpcore_exceptions\\n raise mapped_exc(message) from exc\",\n // \"httpx.ConnectError: All connection attempts failed\",\n // \"During handling of the above exception, another exception occurred:\",\n // \"+ Exception Group Traceback (most recent call last):\",\n // \"| File \\\"/Users/harishpatel/mcp/clients/solidx_mcp_client/client_sse_nochat.py\\\", line 239, in main\\n | await client.connect_to_sse_server()\",\n // \"| File \\\"/Users/harishpatel/mcp/clients/solidx_mcp_client/client_sse_nochat.py\\\", line 49, in connect_to_sse_server\\n | streams = await self._streams_context.__aenter__()\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 210, in __aenter__\\n | return await anext(self.gen)\\n | ^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/mcp/client/sse.py\\\", line 43, in sse_client\\n | async with anyio.create_task_group() as tg:\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/anyio/_backends/_asyncio.py\\\", line 767, in __aexit__\\n | raise BaseExceptionGroup(\",\n // \"| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)\",\n // \"+-+---------------- 1 ----------------\",\n // \"| Traceback (most recent call last):\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_transports/default.py\\\", line 101, in map_httpcore_exceptions\\n | yield\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_transports/default.py\\\", line 394, in handle_async_request\\n | resp = await self._pool.handle_async_request(req)\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_async/connection_pool.py\\\", line 256, in handle_async_request\\n | raise exc from None\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_async/connection_pool.py\\\", line 236, in handle_async_request\\n | response = await connection.handle_async_request(\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_async/connection.py\\\", line 101, in handle_async_request\\n | raise exc\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_async/connection.py\\\", line 78, in handle_async_request\\n | stream = await self._connect(request)\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_async/connection.py\\\", line 124, in _connect\\n | stream = await self._network_backend.connect_tcp(**kwargs)\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_backends/auto.py\\\", line 31, in connect_tcp\\n | return await self._backend.connect_tcp(\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_backends/anyio.py\\\", line 113, in connect_tcp\\n | with map_exceptions(exc_map):\\n | ^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 158, in __exit__\\n | self.gen.throw(value)\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpcore/_exceptions.py\\\", line 14, in map_exceptions\\n | raise to_exc(exc) from exc\",\n // \"| httpcore.ConnectError: All connection attempts failed\",\n // \"| \\n | The above exception was the direct cause of the following exception:\\n |\",\n // \"| Traceback (most recent call last):\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/mcp/client/sse.py\\\", line 47, in sse_client\\n | async with aconnect_sse(\\n | ^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 210, in __aenter__\\n | return await anext(self.gen)\\n | ^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx_sse/_api.py\\\", line 69, in aconnect_sse\\n | async with client.stream(method, url, headers=headers, **kwargs) as response:\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 210, in __aenter__\\n | return await anext(self.gen)\\n | ^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1583, in stream\\n | response = await self.send(\\n | ^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1629, in send\\n | response = await self._send_handling_auth(\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1657, in _send_handling_auth\\n | response = await self._send_handling_redirects(\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1694, in _send_handling_redirects\\n | response = await self._send_single_request(request)\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_client.py\\\", line 1730, in _send_single_request\\n | response = await transport.handle_async_request(request)\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_transports/default.py\\\", line 393, in handle_async_request\\n | with map_httpcore_exceptions():\\n | ^^^^^^^^^^^^^^^^^^^^^^^^^\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/lib/python3.12/contextlib.py\\\", line 158, in __exit__\\n | self.gen.throw(value)\",\n // \"| File \\\"/Users/harishpatel/.pyenv/versions/3.12.7/envs/solid_mcp_client/lib/python3.12/site-packages/httpx/_transports/default.py\\\", line 118, in map_httpcore_exceptions\\n | raise mapped_exc(message) from exc\",\n // \"| httpx.ConnectError: All connection attempts failed\",\n // \"+------------------------------------\"\n // ],\n // \"request\": \"\\\"Can you do 1 + 1\\\"\"\n // }\n if (combined.includes(\"all connection attempts failed\") && combined.includes(\"unhandled errors in a taskgroup (1 sub-exception)\")) {\n return 'solidx-mcp-server-unavailable';\n }\n\n // --- Bedrock errors ---\n // Throttling: \"ThrottlingException\" or \"Too many tokens\"\n if (\n combined.includes('throttlingexception') ||\n combined.includes('too many tokens')\n ) {\n return 'bedrock-throttling-error';\n }\n\n if (combined.includes('accessdeniedexception')) {\n return 'bedrock-access-denied';\n }\n\n if (\n combined.includes('validationexception') &&\n combined.includes('input is too long')\n ) {\n return 'bedrock-input-too-long';\n }\n\n if (combined.includes('validationexception')) {\n return 'bedrock-validation-error';\n }\n\n if (combined.includes('modelnotfoundexception')) {\n return 'bedrock-model-not-found';\n }\n\n // --- DB errors ---\n if (\n combined.includes('unique constraint') ||\n combined.includes('duplicate key')\n ) {\n return 'db-duplicate-key';\n }\n\n if (combined.includes('foreign key')) {\n return 'db-foreign-key-error';\n }\n\n // --- OpenSearch errors ---\n // mapper_parsing_exception on specific fields\n if (\n combined.includes('mapper_parsing_exception') &&\n (combined.includes('failed to parse field [metadata.properties.dates]') ||\n combined.includes(\n 'failed to parse field [metadata.properties.date_authored]',\n ))\n ) {\n return 'metadata-extraction-date-parsing-failed';\n }\n\n // --- S3 errors ---\n // NoSuchKey during GetObject\n if (combined.includes('nosuchkey') && combined.includes('getobject')) {\n return 'metadata-extraction-missing-s3-file';\n }\n\n // --- Catch-all ---\n return 'unknown-error';\n }\n\n /**\n * Same mapping, but takes raw strings instead of an Exception object.\n */\n mapMessage(message: string, trace?: string): ErrorCode {\n const combined = `${message ?? ''}\\n${trace ?? ''}`.toLowerCase();\n return this.mapException(combined);\n }\n\n // ---- helpers ----\n\n private combineErrorText(exc: unknown): string {\n // If caller passed us a pre-lowered string (e.g. from mapMessage), use it\n if (typeof exc === 'string') {\n return exc.toLowerCase();\n }\n\n // Standard Error\n if (exc instanceof Error) {\n const message = exc.message ?? '';\n // Many libs set .stack to \"Error: message\\n<stack>\"\n // We still include it in case upstream mutated it.\n const stack = exc.stack ?? '';\n return `${message}\\n${stack}`.toLowerCase();\n }\n\n // Some SDKs throw objects (e.g., { name, message, code, $metadata, ... })\n if (exc && typeof exc === 'object') {\n try {\n const maybeAny = exc as Record<string, unknown>;\n const msg =\n String(maybeAny.message ?? '') ||\n String(maybeAny['Message'] ?? '') ||\n '';\n const name =\n String(maybeAny.name ?? '') ||\n String(maybeAny['__type'] ?? '') ||\n '';\n const stack = String((maybeAny as any).stack ?? '');\n // Also fold in a JSON snapshot as a last resort\n const json = safeJsonStringify(maybeAny);\n return `${name}\\n${msg}\\n${stack}\\n${json}`.toLowerCase();\n } catch {\n // fall through\n }\n }\n\n // Fallback\n return String(exc ?? '').toLowerCase();\n }\n}\n\nfunction safeJsonStringify(obj: unknown): string {\n try {\n return JSON.stringify(obj);\n } catch {\n return '';\n }\n}"]}
@@ -0,0 +1,8 @@
1
+ import { BrokerType } from "../interfaces";
2
+ declare const _default: {
3
+ name: string;
4
+ type: BrokerType;
5
+ queueName: string;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=chatter-queue-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatter-queue-options.d.ts","sourceRoot":"","sources":["../../src/jobs/chatter-queue-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;;;;;AAI3C,wBAIE"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const interfaces_1 = require("../interfaces");
4
+ const QUEUE_NAME = 'chatter_queue';
5
+ exports.default = {
6
+ name: 'queueChatter',
7
+ type: interfaces_1.BrokerType.RabbitMQ,
8
+ queueName: QUEUE_NAME,
9
+ };
10
+ //# sourceMappingURL=chatter-queue-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatter-queue-options.js","sourceRoot":"","sources":["../../src/jobs/chatter-queue-options.ts"],"names":[],"mappings":";;AAAA,8CAA2C;AAE3C,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,kBAAe;IACX,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,uBAAU,CAAC,QAAQ;IACzB,SAAS,EAAE,UAAU;CACxB,CAAC","sourcesContent":["import { BrokerType } from \"../interfaces\";\n\nconst QUEUE_NAME = 'chatter_queue';\n\nexport default {\n name: 'queueChatter',\n type: BrokerType.RabbitMQ,\n queueName: QUEUE_NAME,\n};\n"]}
@@ -0,0 +1,22 @@
1
+ import { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';
2
+ import { MqMessageQueueService } from '../services/mq-message-queue.service';
3
+ import { MqMessageService } from '../services/mq-message.service';
4
+ import { QueuesModuleOptions } from "../interfaces";
5
+ export type ChatterEventType = 'insert' | 'update' | 'delete';
6
+ export interface ChatterMessagePayload {
7
+ eventType: ChatterEventType;
8
+ model: string;
9
+ entityId: string;
10
+ occurredAt: string;
11
+ before?: any;
12
+ after?: any;
13
+ diff?: string[];
14
+ userId?: string | null;
15
+ }
16
+ export declare class ChatterQueuePublisher extends RabbitMqPublisher<any> {
17
+ protected readonly mqMessageService: MqMessageService;
18
+ protected readonly mqMessageQueueService: MqMessageQueueService;
19
+ constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService);
20
+ options(): QueuesModuleOptions;
21
+ }
22
+ //# sourceMappingURL=chatter-queue-publisher.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatter-queue-publisher.service.d.ts","sourceRoot":"","sources":["../../src/jobs/chatter-queue-publisher.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,qBACa,qBAAsB,SAAQ,iBAAiB,CAAC,GAAG,CAAC;IAEzD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;gBAD5C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB;IAKnE,OAAO,IAAI,mBAAmB;CAKjC"}
@@ -0,0 +1,39 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ChatterQueuePublisher = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const rabbitmq_publisher_service_1 = require("../services/queues/rabbitmq-publisher.service");
18
+ const chatter_queue_options_1 = __importDefault(require("./chatter-queue-options"));
19
+ const mq_message_queue_service_1 = require("../services/mq-message-queue.service");
20
+ const mq_message_service_1 = require("../services/mq-message.service");
21
+ let ChatterQueuePublisher = class ChatterQueuePublisher extends rabbitmq_publisher_service_1.RabbitMqPublisher {
22
+ constructor(mqMessageService, mqMessageQueueService) {
23
+ super(mqMessageService, mqMessageQueueService);
24
+ this.mqMessageService = mqMessageService;
25
+ this.mqMessageQueueService = mqMessageQueueService;
26
+ }
27
+ options() {
28
+ return {
29
+ ...chatter_queue_options_1.default
30
+ };
31
+ }
32
+ };
33
+ exports.ChatterQueuePublisher = ChatterQueuePublisher;
34
+ exports.ChatterQueuePublisher = ChatterQueuePublisher = __decorate([
35
+ (0, common_1.Injectable)(),
36
+ __metadata("design:paramtypes", [mq_message_service_1.MqMessageService,
37
+ mq_message_queue_service_1.MqMessageQueueService])
38
+ ], ChatterQueuePublisher);
39
+ //# sourceMappingURL=chatter-queue-publisher.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatter-queue-publisher.service.js","sourceRoot":"","sources":["../../src/jobs/chatter-queue-publisher.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,8FAAmF;AACnF,oFAA0D;AAC1D,mFAA6E;AAC7E,uEAAkE;AAkB3D,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,8CAAsB;IAC7D,YACuB,gBAAkC,EAClC,qBAA4C;QAE/D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAH5B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;IAGnE,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,+BAAmB;SACzB,CAAA;IACL,CAAC;CACJ,CAAA;AAbY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;qCAGgC,qCAAgB;QACX,gDAAqB;GAH1D,qBAAqB,CAajC","sourcesContent":["import { Injectable } from '@nestjs/common';\n\nimport { RabbitMqPublisher } from 'src/services/queues/rabbitmq-publisher.service';\nimport chatterQueueOptions from './chatter-queue-options';\nimport { MqMessageQueueService } from '../services/mq-message-queue.service';\nimport { MqMessageService } from '../services/mq-message.service';\nimport { QueuesModuleOptions } from \"../interfaces\";\n\n\nexport type ChatterEventType = 'insert' | 'update' | 'delete';\n\nexport interface ChatterMessagePayload {\n eventType: ChatterEventType;\n model: string; // entity name\n entityId: string; // id string\n occurredAt: string; // ISO\n before?: any;\n after?: any;\n diff?: string[]; // changed column names for updates\n userId?: string | null;\n}\n\n@Injectable()\nexport class ChatterQueuePublisher extends RabbitMqPublisher<any> {\n constructor(\n protected readonly mqMessageService: MqMessageService,\n protected readonly mqMessageQueueService: MqMessageQueueService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...chatterQueueOptions\n }\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';
2
+ import { QueueMessage } from 'src/interfaces/mq';
3
+ import { MqMessageService } from '../services/mq-message.service';
4
+ import { MqMessageQueueService } from '../services/mq-message-queue.service';
5
+ import { QueuesModuleOptions } from "../interfaces";
6
+ import { ChatterMessagePayload } from './chatter-queue-publisher.service';
7
+ import { ChatterMessageService } from 'src/services/chatter-message.service';
8
+ export declare class ChatterQueueSubscriber extends RabbitMqSubscriber<any> {
9
+ readonly mqMessageService: MqMessageService;
10
+ readonly mqMessageQueueService: MqMessageQueueService;
11
+ private readonly chatterMessageService;
12
+ private readonly chatterQueueLogger;
13
+ constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService, chatterMessageService: ChatterMessageService);
14
+ options(): QueuesModuleOptions;
15
+ subscribe(message: QueueMessage<ChatterMessagePayload>): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=chatter-queue-subscriber.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatter-queue-subscriber.service.d.ts","sourceRoot":"","sources":["../../src/jobs/chatter-queue-subscriber.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,qBACa,sBAAuB,SAAQ,kBAAkB,CAAC,GAAG,CAAC;IAI3D,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAL1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2C;gBAGjE,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EACpC,qBAAqB,EAAE,qBAAqB;IAKjE,OAAO,IAAI,mBAAmB;IAMxB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,qBAAqB,CAAC;CAgB/D"}
@@ -0,0 +1,59 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ var ChatterQueueSubscriber_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.ChatterQueueSubscriber = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const rabbitmq_subscriber_service_1 = require("../services/queues/rabbitmq-subscriber.service");
19
+ const mq_message_service_1 = require("../services/mq-message.service");
20
+ const mq_message_queue_service_1 = require("../services/mq-message-queue.service");
21
+ const chatter_queue_options_1 = __importDefault(require("./chatter-queue-options"));
22
+ const chatter_message_service_1 = require("../services/chatter-message.service");
23
+ let ChatterQueueSubscriber = ChatterQueueSubscriber_1 = class ChatterQueueSubscriber extends rabbitmq_subscriber_service_1.RabbitMqSubscriber {
24
+ constructor(mqMessageService, mqMessageQueueService, chatterMessageService) {
25
+ super(mqMessageService, mqMessageQueueService);
26
+ this.mqMessageService = mqMessageService;
27
+ this.mqMessageQueueService = mqMessageQueueService;
28
+ this.chatterMessageService = chatterMessageService;
29
+ this.chatterQueueLogger = new common_1.Logger(ChatterQueueSubscriber_1.name);
30
+ }
31
+ options() {
32
+ return {
33
+ ...chatter_queue_options_1.default
34
+ };
35
+ }
36
+ async subscribe(message) {
37
+ const p = message.payload;
38
+ this.chatterQueueLogger.debug(`Audit event ${p.eventType} ${p.model}#${p.entityId}`);
39
+ switch (p.eventType) {
40
+ case 'insert':
41
+ await this.chatterMessageService.postAuditMessageOnInsert(p.after, { name: p.model });
42
+ break;
43
+ case 'update':
44
+ await this.chatterMessageService.postAuditMessageOnUpdate(p.after, { name: p.model }, p.before, (p.diff || []).map(n => ({ propertyName: n })));
45
+ break;
46
+ case 'delete':
47
+ await this.chatterMessageService.postAuditMessageOnDelete(p.before, { name: p.model }, p.before);
48
+ break;
49
+ }
50
+ }
51
+ };
52
+ exports.ChatterQueueSubscriber = ChatterQueueSubscriber;
53
+ exports.ChatterQueueSubscriber = ChatterQueueSubscriber = ChatterQueueSubscriber_1 = __decorate([
54
+ (0, common_1.Injectable)(),
55
+ __metadata("design:paramtypes", [mq_message_service_1.MqMessageService,
56
+ mq_message_queue_service_1.MqMessageQueueService,
57
+ chatter_message_service_1.ChatterMessageService])
58
+ ], ChatterQueueSubscriber);
59
+ //# sourceMappingURL=chatter-queue-subscriber.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatter-queue-subscriber.service.js","sourceRoot":"","sources":["../../src/jobs/chatter-queue-subscriber.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,gGAAqF;AAErF,uEAAkE;AAClE,mFAA6E;AAE7E,oFAA0D;AAE1D,iFAA6E;AAGtE,IAAM,sBAAsB,8BAA5B,MAAM,sBAAuB,SAAQ,gDAAuB;IAG/D,YACa,gBAAkC,EAClC,qBAA4C,EACpC,qBAA4C;QAE7D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAJtC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QACpC,0BAAqB,GAArB,qBAAqB,CAAuB;QALhD,uBAAkB,GAAG,IAAI,eAAM,CAAC,wBAAsB,CAAC,IAAI,CAAC,CAAC;IAQ9E,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,+BAAmB;SACzB,CAAA;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA4C;QACxD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAErF,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAS,CAAC,CAAC;gBAC7F,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvJ,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBACxG,MAAM;QACd,CAAC;IACL,CAAC;CACJ,CAAA;AAjCY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAKsB,qCAAgB;QACX,gDAAqB;QACb,+CAAqB;GANxD,sBAAsB,CAiClC","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\n\nimport { RabbitMqSubscriber } from 'src/services/queues/rabbitmq-subscriber.service';\nimport { QueueMessage } from 'src/interfaces/mq';\nimport { MqMessageService } from '../services/mq-message.service';\nimport { MqMessageQueueService } from '../services/mq-message-queue.service';\nimport { QueuesModuleOptions } from \"../interfaces\";\nimport chatterQueueOptions from './chatter-queue-options';\nimport { ChatterMessagePayload } from './chatter-queue-publisher.service';\nimport { ChatterMessageService } from 'src/services/chatter-message.service';\n\n@Injectable()\nexport class ChatterQueueSubscriber extends RabbitMqSubscriber<any> {\n private readonly chatterQueueLogger = new Logger(ChatterQueueSubscriber.name);\n\n constructor(\n readonly mqMessageService: MqMessageService,\n readonly mqMessageQueueService: MqMessageQueueService,\n private readonly chatterMessageService: ChatterMessageService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...chatterQueueOptions\n }\n }\n\n async subscribe(message: QueueMessage<ChatterMessagePayload>) {\n const p = message.payload;\n this.chatterQueueLogger.debug(`Audit event ${p.eventType} ${p.model}#${p.entityId}`);\n\n switch (p.eventType) {\n case 'insert':\n await this.chatterMessageService.postAuditMessageOnInsert(p.after, { name: p.model } as any);\n break;\n case 'update':\n await this.chatterMessageService.postAuditMessageOnUpdate(p.after, { name: p.model } as any, p.before, (p.diff || []).map(n => ({ propertyName: n })));\n break;\n case 'delete':\n await this.chatterMessageService.postAuditMessageOnDelete(p.before, { name: p.model } as any, p.before);\n break;\n }\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { QueuesModuleOptions } from "src/interfaces";
2
2
  import { MqMessageQueueService } from "src/services/mq-message-queue.service";
3
3
  import { MqMessageService } from "src/services/mq-message.service";
4
- import { DatabasePublisher } from "src/services/queues/database-publisher.service";
4
+ import { RabbitMqPublisher } from "src/services/queues/rabbitmq-publisher.service";
5
5
  import { ComputedFieldEvaluationPayload } from "src/subscribers/computed-entity-field.subscriber";
6
- export declare class ComputedFieldEvaluationPublisher extends DatabasePublisher<ComputedFieldEvaluationPayload> {
6
+ export declare class ComputedFieldEvaluationPublisherRabbitmq extends RabbitMqPublisher<ComputedFieldEvaluationPayload> {
7
7
  protected readonly mqMessageService: MqMessageService;
8
8
  protected readonly mqMessageQueueService: MqMessageQueueService;
9
9
  constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed-field-evaluation-publisher.service.d.ts","sourceRoot":"","sources":["../../src/jobs/computed-field-evaluation-publisher.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAGlG,qBACa,wCAAyC,SAAQ,iBAAiB,CAAC,8BAA8B,CAAC;IAEvG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IACrD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;gBAD5C,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB;IAKnE,OAAO,IAAI,mBAAmB;CAKjC"}
@@ -12,13 +12,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ComputedFieldEvaluationPublisher = void 0;
15
+ exports.ComputedFieldEvaluationPublisherRabbitmq = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
- const mq_message_queue_service_1 = require("../../services/mq-message-queue.service");
18
- const mq_message_service_1 = require("../../services/mq-message.service");
19
- const database_publisher_service_1 = require("../../services/queues/database-publisher.service");
17
+ const mq_message_queue_service_1 = require("../services/mq-message-queue.service");
18
+ const mq_message_service_1 = require("../services/mq-message.service");
19
+ const rabbitmq_publisher_service_1 = require("../services/queues/rabbitmq-publisher.service");
20
20
  const computed_field_evaluation_queue_options_1 = __importDefault(require("./computed-field-evaluation-queue-options"));
21
- let ComputedFieldEvaluationPublisher = class ComputedFieldEvaluationPublisher extends database_publisher_service_1.DatabasePublisher {
21
+ let ComputedFieldEvaluationPublisherRabbitmq = class ComputedFieldEvaluationPublisherRabbitmq extends rabbitmq_publisher_service_1.RabbitMqPublisher {
22
22
  constructor(mqMessageService, mqMessageQueueService) {
23
23
  super(mqMessageService, mqMessageQueueService);
24
24
  this.mqMessageService = mqMessageService;
@@ -30,10 +30,10 @@ let ComputedFieldEvaluationPublisher = class ComputedFieldEvaluationPublisher ex
30
30
  };
31
31
  }
32
32
  };
33
- exports.ComputedFieldEvaluationPublisher = ComputedFieldEvaluationPublisher;
34
- exports.ComputedFieldEvaluationPublisher = ComputedFieldEvaluationPublisher = __decorate([
33
+ exports.ComputedFieldEvaluationPublisherRabbitmq = ComputedFieldEvaluationPublisherRabbitmq;
34
+ exports.ComputedFieldEvaluationPublisherRabbitmq = ComputedFieldEvaluationPublisherRabbitmq = __decorate([
35
35
  (0, common_1.Injectable)(),
36
36
  __metadata("design:paramtypes", [mq_message_service_1.MqMessageService,
37
37
  mq_message_queue_service_1.MqMessageQueueService])
38
- ], ComputedFieldEvaluationPublisher);
38
+ ], ComputedFieldEvaluationPublisherRabbitmq);
39
39
  //# sourceMappingURL=computed-field-evaluation-publisher.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed-field-evaluation-publisher.service.js","sourceRoot":"","sources":["../../src/jobs/computed-field-evaluation-publisher.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,mFAA8E;AAC9E,uEAAmE;AACnE,8FAAmF;AAEnF,wHAA4F;AAGrF,IAAM,wCAAwC,GAA9C,MAAM,wCAAyC,SAAQ,8CAAiD;IAC3G,YACuB,gBAAkC,EAClC,qBAA4C;QAE/D,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QAH5B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;IAGnE,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,iDAAmC;SACzC,CAAC;IACN,CAAC;CACJ,CAAA;AAbY,4FAAwC;mDAAxC,wCAAwC;IADpD,IAAA,mBAAU,GAAE;qCAGgC,qCAAgB;QACX,gDAAqB;GAH1D,wCAAwC,CAapD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { QueuesModuleOptions } from \"src/interfaces\";\nimport { MqMessageQueueService } from \"src/services/mq-message-queue.service\";\nimport { MqMessageService } from \"src/services/mq-message.service\";\nimport { RabbitMqPublisher } from \"src/services/queues/rabbitmq-publisher.service\";\nimport { ComputedFieldEvaluationPayload } from \"src/subscribers/computed-entity-field.subscriber\";\nimport computedFieldEvaluationQueueOptions from \"./computed-field-evaluation-queue-options\";\n\n@Injectable()\nexport class ComputedFieldEvaluationPublisherRabbitmq extends RabbitMqPublisher<ComputedFieldEvaluationPayload> {\n constructor(\n protected readonly mqMessageService: MqMessageService,\n protected readonly mqMessageQueueService: MqMessageQueueService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...computedFieldEvaluationQueueOptions\n };\n }\n}"]}
@@ -1,4 +1,4 @@
1
- import { BrokerType } from "../../interfaces";
1
+ import { BrokerType } from "../interfaces";
2
2
  declare const _default: {
3
3
  name: string;
4
4
  type: BrokerType;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed-field-evaluation-queue-options.d.ts","sourceRoot":"","sources":["../../src/jobs/computed-field-evaluation-queue-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;;;;;;AAI3C,wBAIE"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const interfaces_1 = require("../../interfaces");
3
+ const interfaces_1 = require("../interfaces");
4
4
  const QUEUE_NAME = 'computed_field_evaluation_queue';
5
5
  exports.default = {
6
6
  name: 'computedFieldEvaluationQueue',
7
- type: interfaces_1.BrokerType.Database,
7
+ type: interfaces_1.BrokerType.RabbitMQ,
8
8
  queueName: QUEUE_NAME,
9
9
  };
10
10
  //# sourceMappingURL=computed-field-evaluation-queue-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed-field-evaluation-queue-options.js","sourceRoot":"","sources":["../../src/jobs/computed-field-evaluation-queue-options.ts"],"names":[],"mappings":";;AAAA,8CAA2C;AAE3C,MAAM,UAAU,GAAG,iCAAiC,CAAC;AAErD,kBAAe;IACX,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,uBAAU,CAAC,QAAQ;IACzB,SAAS,EAAE,UAAU;CACxB,CAAC","sourcesContent":["import { BrokerType } from \"../interfaces\";\n\nconst QUEUE_NAME = 'computed_field_evaluation_queue';\n\nexport default {\n name: 'computedFieldEvaluationQueue',\n type: BrokerType.RabbitMQ,\n queueName: QUEUE_NAME,\n};\n"]}
@@ -3,10 +3,10 @@ import { QueuesModuleOptions } from "src/interfaces";
3
3
  import { QueueMessage } from "src/interfaces/mq";
4
4
  import { MqMessageQueueService } from "src/services/mq-message-queue.service";
5
5
  import { MqMessageService } from "src/services/mq-message.service";
6
- import { DatabaseSubscriber } from "src/services/queues/database-subscriber.service";
7
- import { ComputedFieldEvaluationPayload } from "src/subscribers/computed-entity-field.subscriber";
8
6
  import { PollerService } from "src/services/poller.service";
9
- export declare class ComputedFieldEvaluationSubscriber extends DatabaseSubscriber<ComputedFieldEvaluationPayload> {
7
+ import { RabbitMqSubscriber } from "src/services/queues/rabbitmq-subscriber.service";
8
+ import { ComputedFieldEvaluationPayload } from "src/subscribers/computed-entity-field.subscriber";
9
+ export declare class ComputedFieldEvaluationSubscriberRabbitmq extends RabbitMqSubscriber<ComputedFieldEvaluationPayload> {
10
10
  readonly mqMessageService: MqMessageService;
11
11
  readonly mqMessageQueueService: MqMessageQueueService;
12
12
  readonly solidRegistry: SolidRegistry;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed-field-evaluation-subscriber.service.d.ts","sourceRoot":"","sources":["../../src/jobs/computed-field-evaluation-subscriber.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAmC,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAGlG,qBACa,yCAA0C,SAAQ,kBAAkB,CAAC,8BAA8B,CAAC;IAEzG,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa;IACrC,QAAQ,CAAC,MAAM,EAAE,aAAa;gBAHrB,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,aAAa;IAKlC,OAAO,IAAI,mBAAmB;IAQxB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,8BAA8B,CAAC;CAOxE"}
@@ -0,0 +1,51 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ComputedFieldEvaluationSubscriberRabbitmq = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const solid_registry_1 = require("../helpers/solid-registry");
18
+ const mq_message_queue_service_1 = require("../services/mq-message-queue.service");
19
+ const mq_message_service_1 = require("../services/mq-message.service");
20
+ const poller_service_1 = require("../services/poller.service");
21
+ const rabbitmq_subscriber_service_1 = require("../services/queues/rabbitmq-subscriber.service");
22
+ const computed_field_evaluation_queue_options_1 = __importDefault(require("./computed-field-evaluation-queue-options"));
23
+ let ComputedFieldEvaluationSubscriberRabbitmq = class ComputedFieldEvaluationSubscriberRabbitmq extends rabbitmq_subscriber_service_1.RabbitMqSubscriber {
24
+ constructor(mqMessageService, mqMessageQueueService, solidRegistry, poller) {
25
+ super(mqMessageService, mqMessageQueueService);
26
+ this.mqMessageService = mqMessageService;
27
+ this.mqMessageQueueService = mqMessageQueueService;
28
+ this.solidRegistry = solidRegistry;
29
+ this.poller = poller;
30
+ }
31
+ options() {
32
+ return {
33
+ ...computed_field_evaluation_queue_options_1.default
34
+ };
35
+ }
36
+ async subscribe(message) {
37
+ const { databaseEntity, ...computedFieldMetadata } = message.payload;
38
+ const provider = this.solidRegistry.getComputedFieldProvider(computedFieldMetadata.computedFieldValueProviderName);
39
+ const providerInstance = provider.instance;
40
+ await providerInstance.postComputeAndSaveValue(databaseEntity, computedFieldMetadata);
41
+ }
42
+ };
43
+ exports.ComputedFieldEvaluationSubscriberRabbitmq = ComputedFieldEvaluationSubscriberRabbitmq;
44
+ exports.ComputedFieldEvaluationSubscriberRabbitmq = ComputedFieldEvaluationSubscriberRabbitmq = __decorate([
45
+ (0, common_1.Injectable)(),
46
+ __metadata("design:paramtypes", [mq_message_service_1.MqMessageService,
47
+ mq_message_queue_service_1.MqMessageQueueService,
48
+ solid_registry_1.SolidRegistry,
49
+ poller_service_1.PollerService])
50
+ ], ComputedFieldEvaluationSubscriberRabbitmq);
51
+ //# sourceMappingURL=computed-field-evaluation-subscriber.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed-field-evaluation-subscriber.service.js","sourceRoot":"","sources":["../../src/jobs/computed-field-evaluation-subscriber.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,8DAA2D;AAG3D,mFAA8E;AAC9E,uEAAmE;AACnE,+DAA4D;AAC5D,gGAAqF;AAErF,wHAA4F;AAGrF,IAAM,yCAAyC,GAA/C,MAAM,yCAA0C,SAAQ,gDAAkD;IAC7G,YACa,gBAAkC,EAClC,qBAA4C,EAC5C,aAA4B,EAC5B,MAAqB;QAE9B,KAAK,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;QALtC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAe;IAGlC,CAAC;IAED,OAAO;QACH,OAAO;YACH,GAAG,iDAAmC;SACzC,CAAA;IACL,CAAC;IAID,KAAK,CAAC,SAAS,CAAC,OAAqD;QACjE,MAAM,EAAE,cAAc,EAAE,GAAG,qBAAqB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,8BAA8B,CAAC,CAAC;QAEnH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAqD,CAAC;QACxF,MAAM,gBAAgB,CAAC,uBAAuB,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;IAC1F,CAAC;CACJ,CAAA;AAzBY,8FAAyC;oDAAzC,yCAAyC;IADrD,IAAA,mBAAU,GAAE;qCAGsB,qCAAgB;QACX,gDAAqB;QAC7B,8BAAa;QACpB,8BAAa;GALzB,yCAAyC,CAyBrD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\nimport { IEntityPostComputeFieldProvider, QueuesModuleOptions } from \"src/interfaces\";\nimport { QueueMessage } from \"src/interfaces/mq\";\nimport { MqMessageQueueService } from \"src/services/mq-message-queue.service\";\nimport { MqMessageService } from \"src/services/mq-message.service\";\nimport { PollerService } from \"src/services/poller.service\";\nimport { RabbitMqSubscriber } from \"src/services/queues/rabbitmq-subscriber.service\";\nimport { ComputedFieldEvaluationPayload } from \"src/subscribers/computed-entity-field.subscriber\";\nimport computedFieldEvaluationQueueOptions from \"./computed-field-evaluation-queue-options\";\n\n@Injectable()\nexport class ComputedFieldEvaluationSubscriberRabbitmq extends RabbitMqSubscriber<ComputedFieldEvaluationPayload> {\n constructor(\n readonly mqMessageService: MqMessageService,\n readonly mqMessageQueueService: MqMessageQueueService,\n readonly solidRegistry: SolidRegistry,\n readonly poller: PollerService,\n ) {\n super(mqMessageService, mqMessageQueueService);\n }\n\n options(): QueuesModuleOptions {\n return {\n ...computedFieldEvaluationQueueOptions\n }\n }\n\n // This method will use the ComputedFieldEvaluationPayload to evaluate the computed fields\n // It will then call the corresponding provider computeAndSave method to perform the evaluation\n async subscribe(message: QueueMessage<ComputedFieldEvaluationPayload>) {\n const { databaseEntity, ...computedFieldMetadata } = message.payload;\n const provider = this.solidRegistry.getComputedFieldProvider(computedFieldMetadata.computedFieldValueProviderName);\n // Get the instance of the provider and assert it is of type IEntityComputedFieldProvider\n const providerInstance = provider.instance as IEntityPostComputeFieldProvider<any, any>; // IEntityComputedFieldProvider\n await providerInstance.postComputeAndSaveValue(databaseEntity, computedFieldMetadata); //FIXME There should some way to check/assert if the provider actually has a postComputeAndSaveValue\n }\n}"]}
@@ -0,0 +1,12 @@
1
+ import { QueuesModuleOptions } from "src/interfaces";
2
+ import { MqMessageQueueService } from "src/services/mq-message-queue.service";
3
+ import { MqMessageService } from "src/services/mq-message.service";
4
+ import { DatabasePublisher } from "src/services/queues/database-publisher.service";
5
+ import { ComputedFieldEvaluationPayload } from "src/subscribers/computed-entity-field.subscriber";
6
+ export declare class ComputedFieldEvaluationPublisherDatabase extends DatabasePublisher<ComputedFieldEvaluationPayload> {
7
+ protected readonly mqMessageService: MqMessageService;
8
+ protected readonly mqMessageQueueService: MqMessageQueueService;
9
+ constructor(mqMessageService: MqMessageService, mqMessageQueueService: MqMessageQueueService);
10
+ options(): QueuesModuleOptions;
11
+ }
12
+ //# sourceMappingURL=computed-field-evaluation-publisher-database.service.d.ts.map