@dynamatix/gb-schemas 2.3.237 → 2.3.239

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 (252) hide show
  1. package/README.md +309 -0
  2. package/dist/applicants/applicant-additional-income.model.d.ts +13 -12
  3. package/dist/applicants/applicant-additional-income.model.d.ts.map +1 -1
  4. package/dist/applicants/applicant-additional-income.model.js +3 -0
  5. package/dist/applicants/applicant-commitment-creditCard.model.d.ts +19 -18
  6. package/dist/applicants/applicant-commitment-creditCard.model.d.ts.map +1 -1
  7. package/dist/applicants/applicant-commitment-creditCard.model.js +3 -0
  8. package/dist/applicants/applicant-commitment-loan.model.d.ts +19 -18
  9. package/dist/applicants/applicant-commitment-loan.model.d.ts.map +1 -1
  10. package/dist/applicants/applicant-commitment-loan.model.js +3 -0
  11. package/dist/applicants/applicant-commitment-mortgage.model.d.ts +19 -18
  12. package/dist/applicants/applicant-commitment-mortgage.model.d.ts.map +1 -1
  13. package/dist/applicants/applicant-commitment-mortgage.model.js +3 -0
  14. package/dist/applicants/applicant-commitment-residence.model.d.ts +31 -30
  15. package/dist/applicants/applicant-commitment-residence.model.d.ts.map +1 -1
  16. package/dist/applicants/applicant-commitment-residence.model.js +3 -0
  17. package/dist/applicants/applicant-commitment-secureLoan.model.d.ts +19 -18
  18. package/dist/applicants/applicant-commitment-secureLoan.model.d.ts.map +1 -1
  19. package/dist/applicants/applicant-commitment-secureLoan.model.js +3 -0
  20. package/dist/applicants/applicant-commitment-unsecuredLoan.model.d.ts +19 -18
  21. package/dist/applicants/applicant-commitment-unsecuredLoan.model.d.ts.map +1 -1
  22. package/dist/applicants/applicant-commitment-unsecuredLoan.model.js +3 -0
  23. package/dist/applicants/applicant-credit-data.model.d.ts +3 -3
  24. package/dist/applicants/applicant-credit-report.model.d.ts +3754 -0
  25. package/dist/applicants/{applicant-income.model.d.ts.map → applicant-credit-report.model.d.ts.map} +1 -1
  26. package/dist/applicants/applicant-credit-report.model.js +116 -0
  27. package/dist/applicants/applicant-credit-report.type.d.ts +140 -0
  28. package/dist/applicants/applicant-credit-report.type.d.ts.map +1 -0
  29. package/dist/applicants/applicant-credit-report.type.js +1 -0
  30. package/dist/applicants/applicant-employment-income.model.d.ts +7 -6
  31. package/dist/applicants/applicant-employment-income.model.d.ts.map +1 -1
  32. package/dist/applicants/applicant-employment-income.model.js +3 -0
  33. package/dist/applicants/applicant-employment.model.d.ts +88 -87
  34. package/dist/applicants/applicant-employment.model.d.ts.map +1 -1
  35. package/dist/applicants/applicant-employment.model.js +19 -19
  36. package/dist/applicants/applicant-expenditure.model.d.ts +7 -0
  37. package/dist/applicants/applicant-expenditure.model.d.ts.map +1 -1
  38. package/dist/applicants/applicant-expenditure.model.js +77 -0
  39. package/dist/applicants/applicant-expenditure.type.d.ts +42 -0
  40. package/dist/applicants/applicant-expenditure.type.d.ts.map +1 -0
  41. package/dist/applicants/applicant-expenditure.type.js +1 -0
  42. package/dist/applicants/applicant-income-settings.model.d.ts.map +1 -1
  43. package/dist/applicants/applicant-income-settings.model.js +3 -0
  44. package/dist/applicants/applicant-income-settings.type.d.ts +40 -0
  45. package/dist/applicants/applicant-income-settings.type.d.ts.map +1 -0
  46. package/dist/applicants/applicant-income-settings.type.js +1 -0
  47. package/dist/applicants/applicant-income-summary.model.d.ts +73 -72
  48. package/dist/applicants/applicant-income-summary.model.d.ts.map +1 -1
  49. package/dist/applicants/applicant-income-summary.model.js +3 -0
  50. package/dist/applicants/applicant-income-summary.type.d.ts +60 -0
  51. package/dist/applicants/applicant-income-summary.type.d.ts.map +1 -0
  52. package/dist/applicants/applicant-income-summary.type.js +1 -0
  53. package/dist/applicants/applicant-pension-income.model.d.ts +19 -18
  54. package/dist/applicants/applicant-pension-income.model.d.ts.map +1 -1
  55. package/dist/applicants/applicant-pension-income.model.js +3 -0
  56. package/dist/applicants/applicant-pension-income.type.d.ts +40 -0
  57. package/dist/applicants/applicant-pension-income.type.d.ts.map +1 -0
  58. package/dist/applicants/applicant-pension-income.type.js +1 -0
  59. package/dist/applicants/applicant-property-income.model.d.ts +37 -36
  60. package/dist/applicants/applicant-property-income.model.d.ts.map +1 -1
  61. package/dist/applicants/applicant-property-income.model.js +3 -0
  62. package/dist/applicants/applicant-self-employed-income.model.d.ts +7 -6
  63. package/dist/applicants/applicant-self-employed-income.model.d.ts.map +1 -1
  64. package/dist/applicants/applicant-self-employed-income.model.js +3 -0
  65. package/dist/applicants/applicant-self-employed-income.type.d.ts +37 -0
  66. package/dist/applicants/applicant-self-employed-income.type.d.ts.map +1 -0
  67. package/dist/applicants/applicant-self-employed-income.type.js +1 -0
  68. package/dist/applicants/applicant-self-employment.model.d.ts +6 -6
  69. package/dist/applicants/applicant-self-employment.model.d.ts.map +1 -1
  70. package/dist/applicants/applicant-self-employment.model.js +4 -1
  71. package/dist/applicants/applicant-sole-trader-income.model.d.ts +7 -6
  72. package/dist/applicants/applicant-sole-trader-income.model.d.ts.map +1 -1
  73. package/dist/applicants/applicant-sole-trader-income.model.js +3 -0
  74. package/dist/applicants/applicant-sole-trader-income.type.d.ts +37 -0
  75. package/dist/applicants/applicant-sole-trader-income.type.d.ts.map +1 -0
  76. package/dist/applicants/applicant-sole-trader-income.type.js +1 -0
  77. package/dist/applicants/applicant-uk-tax-credits.model.d.ts +19 -18
  78. package/dist/applicants/applicant-uk-tax-credits.model.d.ts.map +1 -1
  79. package/dist/applicants/applicant-uk-tax-credits.model.js +3 -0
  80. package/dist/applicants/applicant-uk-tax-credits.type.d.ts +39 -0
  81. package/dist/applicants/applicant-uk-tax-credits.type.d.ts.map +1 -0
  82. package/dist/applicants/applicant-uk-tax-credits.type.js +1 -0
  83. package/dist/applicants/applicant-welcome-call.model.d.ts +288 -0
  84. package/dist/applicants/applicant-welcome-call.model.d.ts.map +1 -0
  85. package/dist/applicants/applicant-welcome-call.model.js +263 -0
  86. package/dist/applicants/applicant-welcome-call.type.d.ts +66 -0
  87. package/dist/applicants/applicant-welcome-call.type.d.ts.map +1 -0
  88. package/dist/applicants/applicant-welcome-call.type.js +1 -0
  89. package/dist/applicants/applicant.model.d.ts +49 -42
  90. package/dist/applicants/applicant.model.d.ts.map +1 -1
  91. package/dist/applicants/applicant.model.js +5 -1
  92. package/dist/applicants/applicant.type.d.ts +158 -0
  93. package/dist/applicants/applicant.type.d.ts.map +1 -0
  94. package/dist/applicants/applicant.type.js +1 -0
  95. package/dist/applicants/index.d.ts +14 -0
  96. package/dist/applicants/index.d.ts.map +1 -1
  97. package/dist/applicants/index.js +2 -0
  98. package/dist/applications/application-audit.model.d.ts +6 -6
  99. package/dist/applications/application-audit.model.d.ts.map +1 -1
  100. package/dist/applications/application-audit.model.js +3 -0
  101. package/dist/applications/application-checklist-Item.model.d.ts +6 -0
  102. package/dist/applications/application-checklist-Item.model.d.ts.map +1 -1
  103. package/dist/applications/application-checklist-Item.model.js +4 -0
  104. package/dist/applications/application-company-model.d.ts +64 -57
  105. package/dist/applications/application-company-model.d.ts.map +1 -1
  106. package/dist/applications/application-company-model.js +1 -0
  107. package/dist/applications/application-direct-debit.model.d.ts +29 -27
  108. package/dist/applications/application-direct-debit.model.d.ts.map +1 -1
  109. package/dist/applications/application-direct-debit.model.js +3 -0
  110. package/dist/applications/application-euc.model.d.ts.map +1 -1
  111. package/dist/applications/application-euc.model.js +3 -0
  112. package/dist/applications/application-fieldconfig.model.d.ts.map +1 -1
  113. package/dist/applications/application-fieldconfig.model.js +3 -0
  114. package/dist/applications/application-legal.model.d.ts.map +1 -1
  115. package/dist/applications/application-legal.model.js +3 -0
  116. package/dist/applications/application-mortgage.model.d.ts +1 -0
  117. package/dist/applications/application-mortgage.model.d.ts.map +1 -1
  118. package/dist/applications/application-mortgage.model.js +3 -0
  119. package/dist/applications/application-mortgage.type.d.ts +76 -0
  120. package/dist/applications/application-mortgage.type.d.ts.map +1 -0
  121. package/dist/applications/application-mortgage.type.js +1 -0
  122. package/dist/applications/application-note.model.d.ts +36 -24
  123. package/dist/applications/application-note.model.d.ts.map +1 -1
  124. package/dist/applications/application-note.model.js +12 -3
  125. package/dist/applications/application-note.type.d.ts +55 -0
  126. package/dist/applications/application-note.type.d.ts.map +1 -0
  127. package/dist/applications/application-note.type.js +1 -0
  128. package/dist/applications/application-offer.model.d.ts.map +1 -1
  129. package/dist/applications/application-offer.model.js +3 -0
  130. package/dist/applications/application-onboarding.model.d.ts.map +1 -1
  131. package/dist/applications/application-onboarding.model.js +3 -0
  132. package/dist/applications/application-product.model.d.ts +77 -13
  133. package/dist/applications/application-product.model.d.ts.map +1 -1
  134. package/dist/applications/application-product.model.js +16 -3
  135. package/dist/applications/application-product.type.d.ts +58 -0
  136. package/dist/applications/application-product.type.d.ts.map +1 -0
  137. package/dist/applications/application-product.type.js +1 -0
  138. package/dist/applications/application-productfeatures.model.d.ts +12 -6
  139. package/dist/applications/application-productfeatures.model.d.ts.map +1 -1
  140. package/dist/applications/application-productfeatures.model.js +5 -1
  141. package/dist/applications/application-productfeatures.type.d.ts +125 -0
  142. package/dist/applications/application-productfeatures.type.d.ts.map +1 -0
  143. package/dist/applications/application-productfeatures.type.js +1 -0
  144. package/dist/applications/application-rationale.model.d.ts +6 -12
  145. package/dist/applications/application-rationale.model.d.ts.map +1 -1
  146. package/dist/applications/application-rationale.model.js +11 -20
  147. package/dist/applications/application-rationale.type.d.ts +7 -7
  148. package/dist/applications/application-rationale.type.d.ts.map +1 -1
  149. package/dist/applications/application-risk-narrative.model.d.ts.map +1 -1
  150. package/dist/applications/application-risk-narrative.model.js +3 -0
  151. package/dist/applications/application-valuation-report.model.d.ts +1246 -0
  152. package/dist/applications/application-valuation-report.model.d.ts.map +1 -0
  153. package/dist/applications/application-valuation-report.model.js +269 -0
  154. package/dist/applications/application-valuation-report.type.d.ts +108 -0
  155. package/dist/applications/application-valuation-report.type.d.ts.map +1 -0
  156. package/dist/applications/application-valuation-report.type.js +1 -0
  157. package/dist/applications/application-valuation.model.d.ts +695 -18
  158. package/dist/applications/application-valuation.model.d.ts.map +1 -1
  159. package/dist/applications/application-valuation.model.js +33 -7
  160. package/dist/applications/application-valuation.type.d.ts +54 -0
  161. package/dist/applications/application-valuation.type.d.ts.map +1 -0
  162. package/dist/applications/application-valuation.type.js +1 -0
  163. package/dist/applications/application.model.d.ts +36 -30
  164. package/dist/applications/application.model.d.ts.map +1 -1
  165. package/dist/applications/application.model.js +17 -4
  166. package/dist/applications/applications-task.model.d.ts +171 -67
  167. package/dist/applications/applications-task.model.d.ts.map +1 -1
  168. package/dist/applications/applications-task.model.js +36 -45
  169. package/dist/applications/applications-task.type.d.ts +57 -0
  170. package/dist/applications/applications-task.type.d.ts.map +1 -0
  171. package/dist/applications/applications-task.type.js +1 -0
  172. package/dist/applications/broker.model.d.ts.map +1 -1
  173. package/dist/applications/broker.model.js +3 -0
  174. package/dist/applications/index.d.ts +10 -3
  175. package/dist/applications/index.d.ts.map +1 -1
  176. package/dist/applications/index.js +2 -3
  177. package/dist/applications/solicitor.model.d.ts +2 -0
  178. package/dist/applications/solicitor.model.d.ts.map +1 -1
  179. package/dist/applications/solicitor.model.js +3 -0
  180. package/dist/index.d.ts +1 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +2 -0
  183. package/dist/product-catalogues/index.d.ts +3 -0
  184. package/dist/product-catalogues/index.d.ts.map +1 -1
  185. package/dist/product-catalogues/product-catalogue.type.d.ts +15 -0
  186. package/dist/product-catalogues/product-catalogue.type.d.ts.map +1 -0
  187. package/dist/product-catalogues/product-catalogue.type.js +1 -0
  188. package/dist/product-catalogues/product-definitions.type.d.ts +53 -0
  189. package/dist/product-catalogues/product-definitions.type.d.ts.map +1 -0
  190. package/dist/product-catalogues/product-definitions.type.js +1 -0
  191. package/dist/product-catalogues/product-variant.type.d.ts +38 -0
  192. package/dist/product-catalogues/product-variant.type.d.ts.map +1 -0
  193. package/dist/product-catalogues/product-variant.type.js +1 -0
  194. package/dist/properties/property.model.d.ts +52 -51
  195. package/dist/properties/property.model.d.ts.map +1 -1
  196. package/dist/properties/property.model.js +1 -2
  197. package/dist/properties/security.model.d.ts +6 -0
  198. package/dist/properties/security.model.d.ts.map +1 -1
  199. package/dist/properties/security.model.js +1 -0
  200. package/dist/shared/alert.model.d.ts +12 -12
  201. package/dist/shared/api-log.model.d.ts +118 -0
  202. package/dist/shared/api-log.model.d.ts.map +1 -0
  203. package/dist/shared/api-log.model.js +21 -0
  204. package/dist/shared/apprivo-sync-journey.model.d.ts +6 -6
  205. package/dist/shared/checklist.model.d.ts +6 -6
  206. package/dist/shared/index.d.ts +5 -1
  207. package/dist/shared/index.d.ts.map +1 -1
  208. package/dist/shared/index.js +4 -1
  209. package/dist/shared/job-setting.model.d.ts +6 -6
  210. package/dist/shared/lookup-group.model.d.ts +25 -25
  211. package/dist/shared/lookup-group.model.d.ts.map +1 -1
  212. package/dist/shared/lookup-group.model.js +3 -0
  213. package/dist/shared/schema-doc.model.d.ts +6 -6
  214. package/dist/shared/system-parameter.model.d.ts +6 -6
  215. package/dist/shared/task-document.model.d.ts +6 -6
  216. package/dist/shared/task.model.d.ts +6 -6
  217. package/dist/shared/{document-type-model.d.ts → webhook-event.model.d.ts} +6 -45
  218. package/dist/shared/webhook-event.model.d.ts.map +1 -0
  219. package/dist/shared/webhook-event.model.js +53 -0
  220. package/dist/shared/webhook-event.type.d.ts +15 -0
  221. package/dist/shared/webhook-event.type.d.ts.map +1 -0
  222. package/dist/shared/webhook-event.type.js +1 -0
  223. package/dist/shared/workflow-trigger.model.d.ts +32 -0
  224. package/dist/shared/workflow-trigger.model.d.ts.map +1 -0
  225. package/dist/shared/workflow-trigger.model.js +45 -0
  226. package/dist/shared/workflow-trigger.type.d.ts +59 -0
  227. package/dist/shared/workflow-trigger.type.d.ts.map +1 -0
  228. package/dist/shared/workflow-trigger.type.js +1 -0
  229. package/dist/shared/workflow.init.d.ts +21 -0
  230. package/dist/shared/workflow.init.d.ts.map +1 -0
  231. package/dist/shared/workflow.init.js +41 -0
  232. package/dist/shared/workflow.middleware.d.ts +107 -0
  233. package/dist/shared/workflow.middleware.d.ts.map +1 -0
  234. package/dist/shared/workflow.middleware.js +230 -0
  235. package/dist/shared/workflow.plugin.d.ts +46 -0
  236. package/dist/shared/workflow.plugin.d.ts.map +1 -0
  237. package/dist/shared/workflow.plugin.js +102 -0
  238. package/dist/shared/workflow.service.d.ts +39 -0
  239. package/dist/shared/workflow.service.d.ts.map +1 -0
  240. package/dist/shared/workflow.service.js +115 -0
  241. package/dist/value-objects/pound.d.ts.map +1 -1
  242. package/package.json +14 -3
  243. package/dist/applicants/applicant-income.model.d.ts +0 -2558
  244. package/dist/applicants/applicant-income.model.js +0 -82
  245. package/dist/applications/application-document.model.d.ts +0 -186
  246. package/dist/applications/application-document.model.d.ts.map +0 -1
  247. package/dist/applications/application-document.model.js +0 -35
  248. package/dist/applications/document.model.d.ts +0 -186
  249. package/dist/applications/document.model.d.ts.map +0 -1
  250. package/dist/applications/document.model.js +0 -35
  251. package/dist/shared/document-type-model.d.ts.map +0 -1
  252. package/dist/shared/document-type-model.js +0 -10
@@ -26,51 +26,12 @@
26
26
  /// <reference types="mongoose/types/schematypes" />
27
27
  /// <reference types="mongoose/types/inferschematype" />
28
28
  /// <reference types="mongoose/types/inferrawdoctype" />
29
- import mongoose from "mongoose";
30
- declare const DocumentTypeModel: mongoose.Model<{
31
- name: string;
32
- source: string;
33
- parentDocumentTypeId: mongoose.Types.ObjectId;
34
- label?: string | null | undefined;
35
- matchRules?: any;
36
- }, {}, {}, {}, mongoose.Document<unknown, {}, {
37
- name: string;
38
- source: string;
39
- parentDocumentTypeId: mongoose.Types.ObjectId;
40
- label?: string | null | undefined;
41
- matchRules?: any;
42
- }, {}> & {
43
- name: string;
44
- source: string;
45
- parentDocumentTypeId: mongoose.Types.ObjectId;
46
- label?: string | null | undefined;
47
- matchRules?: any;
48
- } & {
49
- _id: mongoose.Types.ObjectId;
50
- } & {
51
- __v: number;
52
- }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
53
- name: string;
54
- source: string;
55
- parentDocumentTypeId: mongoose.Types.ObjectId;
56
- label?: string | null | undefined;
57
- matchRules?: any;
58
- }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
59
- name: string;
60
- source: string;
61
- parentDocumentTypeId: mongoose.Types.ObjectId;
62
- label?: string | null | undefined;
63
- matchRules?: any;
64
- }>, {}> & mongoose.FlatRecord<{
65
- name: string;
66
- source: string;
67
- parentDocumentTypeId: mongoose.Types.ObjectId;
68
- label?: string | null | undefined;
69
- matchRules?: any;
70
- }> & {
29
+ import mongoose from 'mongoose';
30
+ import IWebhookEvent from './webhook-event.type';
31
+ declare const _default: mongoose.Model<IWebhookEvent, {}, {}, {}, mongoose.Document<unknown, {}, IWebhookEvent, {}> & IWebhookEvent & {
71
32
  _id: mongoose.Types.ObjectId;
72
33
  } & {
73
34
  __v: number;
74
- }>>;
75
- export default DocumentTypeModel;
76
- //# sourceMappingURL=document-type-model.d.ts.map
35
+ }, any>;
36
+ export default _default;
37
+ //# sourceMappingURL=webhook-event.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-event.model.d.ts","sourceRoot":"","sources":["../../shared/webhook-event.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,aAAa,MAAM,sBAAsB,CAAC;;;;;;AAuDjD,wBAAiF"}
@@ -0,0 +1,53 @@
1
+ import mongoose, { Schema } from 'mongoose';
2
+ const webhookEventSchema = new Schema({
3
+ eventId: {
4
+ type: String,
5
+ required: true,
6
+ unique: true,
7
+ index: true
8
+ },
9
+ eventType: {
10
+ type: String,
11
+ required: true,
12
+ index: true
13
+ },
14
+ source: {
15
+ type: String,
16
+ required: true,
17
+ default: 'apprivo'
18
+ },
19
+ applicationId: {
20
+ type: String,
21
+ index: true
22
+ },
23
+ payload: {
24
+ type: Schema.Types.Mixed,
25
+ required: true
26
+ },
27
+ status: {
28
+ type: String,
29
+ enum: ['pending', 'processing', 'completed', 'failed'],
30
+ default: 'pending',
31
+ index: true
32
+ },
33
+ retryCount: {
34
+ type: Number,
35
+ default: 0
36
+ },
37
+ maxRetries: {
38
+ type: Number,
39
+ default: 3
40
+ },
41
+ processedAt: {
42
+ type: Date
43
+ },
44
+ errorMessage: {
45
+ type: String
46
+ }
47
+ }, {
48
+ timestamps: true
49
+ });
50
+ // Index for efficient querying
51
+ webhookEventSchema.index({ createdAt: -1 });
52
+ webhookEventSchema.index({ status: 1, retryCount: 1 });
53
+ export default mongoose.model('WebhookEvent', webhookEventSchema);
@@ -0,0 +1,15 @@
1
+ export default interface IWebhookEvent extends Document {
2
+ eventId: string;
3
+ eventType: string;
4
+ source: string;
5
+ applicationId?: string;
6
+ payload: any;
7
+ status: 'pending' | 'processing' | 'completed' | 'failed';
8
+ retryCount: number;
9
+ maxRetries: number;
10
+ processedAt?: Date;
11
+ errorMessage?: string;
12
+ createdAt: Date;
13
+ updatedAt: Date;
14
+ }
15
+ //# sourceMappingURL=webhook-event.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-event.type.d.ts","sourceRoot":"","sources":["../../shared/webhook-event.type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,aAAc,SAAQ,QAAQ;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ /// <reference path="../value-objects/pound.d.ts" />
2
+ /// <reference path="../value-objects/account-number.d.ts" />
3
+ /// <reference path="../value-objects/sort-code.d.ts" />
4
+ /// <reference types="mongoose/types/aggregate" />
5
+ /// <reference types="mongoose/types/callback" />
6
+ /// <reference types="mongoose/types/collection" />
7
+ /// <reference types="mongoose/types/connection" />
8
+ /// <reference types="mongoose/types/cursor" />
9
+ /// <reference types="mongoose/types/document" />
10
+ /// <reference types="mongoose/types/error" />
11
+ /// <reference types="mongoose/types/expressions" />
12
+ /// <reference types="mongoose/types/helpers" />
13
+ /// <reference types="mongoose/types/middlewares" />
14
+ /// <reference types="mongoose/types/indexes" />
15
+ /// <reference types="mongoose/types/models" />
16
+ /// <reference types="mongoose/types/mongooseoptions" />
17
+ /// <reference types="mongoose/types/pipelinestage" />
18
+ /// <reference types="mongoose/types/populate" />
19
+ /// <reference types="mongoose/types/query" />
20
+ /// <reference types="mongoose/types/schemaoptions" />
21
+ /// <reference types="mongoose/types/session" />
22
+ /// <reference types="mongoose/types/types" />
23
+ /// <reference types="mongoose/types/utility" />
24
+ /// <reference types="mongoose/types/validation" />
25
+ /// <reference types="mongoose/types/virtuals" />
26
+ /// <reference types="mongoose/types/schematypes" />
27
+ /// <reference types="mongoose/types/inferschematype" />
28
+ /// <reference types="mongoose/types/inferrawdoctype" />
29
+ import mongoose from 'mongoose';
30
+ declare const _default: mongoose.Model<any, {}, {}, {}, any, any>;
31
+ export default _default;
32
+ //# sourceMappingURL=workflow-trigger.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-trigger.model.d.ts","sourceRoot":"","sources":["../../shared/workflow-trigger.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;;AAmD5C,wBAA6H"}
@@ -0,0 +1,45 @@
1
+ import mongoose, { Schema } from 'mongoose';
2
+ const WorkflowTriggerSchema = new Schema({
3
+ triggerKey: {
4
+ type: String,
5
+ required: true,
6
+ unique: true,
7
+ index: true
8
+ },
9
+ description: {
10
+ type: String,
11
+ required: true
12
+ },
13
+ isActive: {
14
+ type: Boolean,
15
+ default: true,
16
+ index: true
17
+ },
18
+ condition: {
19
+ type: String,
20
+ required: true
21
+ },
22
+ workflowKey: {
23
+ type: String,
24
+ required: true,
25
+ index: true
26
+ },
27
+ requiredVariables: [{
28
+ type: String,
29
+ required: true
30
+ }],
31
+ optionalVariables: [{
32
+ type: String
33
+ }],
34
+ validationRules: {
35
+ type: Schema.Types.Mixed
36
+ },
37
+ metadata: {
38
+ type: Schema.Types.Mixed
39
+ }
40
+ }, { timestamps: true });
41
+ // Index for efficient querying
42
+ WorkflowTriggerSchema.index({ triggerKey: 1, isActive: 1 });
43
+ WorkflowTriggerSchema.index({ workflowKey: 1, isActive: 1 });
44
+ // Conditional model registration to avoid "Cannot overwrite model" errors
45
+ export default mongoose.models.WorkflowTrigger || mongoose.model('WorkflowTrigger', WorkflowTriggerSchema);
@@ -0,0 +1,59 @@
1
+ /// <reference path="../value-objects/pound.d.ts" />
2
+ /// <reference path="../value-objects/account-number.d.ts" />
3
+ /// <reference path="../value-objects/sort-code.d.ts" />
4
+ /// <reference types="mongoose/types/aggregate" />
5
+ /// <reference types="mongoose/types/callback" />
6
+ /// <reference types="mongoose/types/collection" />
7
+ /// <reference types="mongoose/types/connection" />
8
+ /// <reference types="mongoose/types/cursor" />
9
+ /// <reference types="mongoose/types/document" />
10
+ /// <reference types="mongoose/types/error" />
11
+ /// <reference types="mongoose/types/expressions" />
12
+ /// <reference types="mongoose/types/helpers" />
13
+ /// <reference types="mongoose/types/middlewares" />
14
+ /// <reference types="mongoose/types/indexes" />
15
+ /// <reference types="mongoose/types/models" />
16
+ /// <reference types="mongoose/types/mongooseoptions" />
17
+ /// <reference types="mongoose/types/pipelinestage" />
18
+ /// <reference types="mongoose/types/populate" />
19
+ /// <reference types="mongoose/types/query" />
20
+ /// <reference types="mongoose/types/schemaoptions" />
21
+ /// <reference types="mongoose/types/session" />
22
+ /// <reference types="mongoose/types/types" />
23
+ /// <reference types="mongoose/types/utility" />
24
+ /// <reference types="mongoose/types/validation" />
25
+ /// <reference types="mongoose/types/virtuals" />
26
+ /// <reference types="mongoose/types/schematypes" />
27
+ /// <reference types="mongoose/types/inferschematype" />
28
+ /// <reference types="mongoose/types/inferrawdoctype" />
29
+ import { Document } from 'mongoose';
30
+ export default interface IWorkflowTrigger extends Document {
31
+ triggerKey: string;
32
+ description: string;
33
+ isActive: boolean;
34
+ condition: string;
35
+ workflowKey: string;
36
+ requiredVariables: string[];
37
+ optionalVariables?: string[];
38
+ validationRules?: any;
39
+ metadata?: any;
40
+ createdAt: Date;
41
+ updatedAt: Date;
42
+ }
43
+ export interface WorkflowTriggerEvent {
44
+ recordType: string;
45
+ action: string;
46
+ triggerKey: string;
47
+ }
48
+ export interface WorkflowApiPayload {
49
+ workflowKey: string;
50
+ version: number;
51
+ variables: Record<string, any>;
52
+ }
53
+ export interface WorkflowMiddlewareOptions {
54
+ workflowApiUrl: string;
55
+ timeout?: number;
56
+ retryAttempts?: number;
57
+ retryDelay?: number;
58
+ }
59
+ //# sourceMappingURL=workflow-trigger.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-trigger.type.d.ts","sourceRoot":"","sources":["../../shared/workflow-trigger.type.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,OAAO,WAAW,gBAAiB,SAAQ,QAAQ;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Initialize workflow middleware for all schemas
3
+ * Call this function once in your application startup to enable workflow middleware globally
4
+ *
5
+ * This will automatically apply workflow middleware to all Mongoose schemas
6
+ * The record type will be inferred from the model name (e.g., 'Application' -> 'applications')
7
+ */
8
+ export declare function initializeWorkflowMiddleware(): void;
9
+ /**
10
+ * Check if workflow middleware is properly configured
11
+ * @returns true if all required environment variables are set
12
+ */
13
+ export declare function isWorkflowMiddlewareConfigured(): boolean;
14
+ /**
15
+ * Initialize workflow middleware with configuration check
16
+ * @param options - Optional configuration options
17
+ */
18
+ export declare function initializeWorkflowMiddlewareWithCheck(options?: {
19
+ skipConfigCheck?: boolean;
20
+ }): boolean;
21
+ //# sourceMappingURL=workflow.init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.init.d.ts","sourceRoot":"","sources":["../../shared/workflow.init.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,wBAAgB,4BAA4B,SAI3C;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,OAAO,CAUxD;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,WAQ5F"}
@@ -0,0 +1,41 @@
1
+ import dotenv from 'dotenv';
2
+ import { registerWorkflowPlugin } from './workflow.plugin.js';
3
+ // Load environment variables from .env file
4
+ dotenv.config();
5
+ /**
6
+ * Initialize workflow middleware for all schemas
7
+ * Call this function once in your application startup to enable workflow middleware globally
8
+ *
9
+ * This will automatically apply workflow middleware to all Mongoose schemas
10
+ * The record type will be inferred from the model name (e.g., 'Application' -> 'applications')
11
+ */
12
+ export function initializeWorkflowMiddleware() {
13
+ console.log('Initializing workflow middleware for all schemas...');
14
+ registerWorkflowPlugin();
15
+ console.log('Workflow middleware initialized successfully');
16
+ }
17
+ /**
18
+ * Check if workflow middleware is properly configured
19
+ * @returns true if all required environment variables are set
20
+ */
21
+ export function isWorkflowMiddlewareConfigured() {
22
+ const requiredEnvVars = ['WORKFLOW_API_KEY'];
23
+ const missingVars = requiredEnvVars.filter(varName => !process.env[varName]);
24
+ if (missingVars.length > 0) {
25
+ console.warn(`Missing required environment variables for workflow middleware: ${missingVars.join(', ')}`);
26
+ return false;
27
+ }
28
+ return true;
29
+ }
30
+ /**
31
+ * Initialize workflow middleware with configuration check
32
+ * @param options - Optional configuration options
33
+ */
34
+ export function initializeWorkflowMiddlewareWithCheck(options) {
35
+ if (!options?.skipConfigCheck && !isWorkflowMiddlewareConfigured()) {
36
+ console.warn('Workflow middleware configuration incomplete. Middleware will be disabled.');
37
+ return false;
38
+ }
39
+ initializeWorkflowMiddleware();
40
+ return true;
41
+ }
@@ -0,0 +1,107 @@
1
+ /// <reference path="../value-objects/pound.d.ts" />
2
+ /// <reference path="../value-objects/account-number.d.ts" />
3
+ /// <reference path="../value-objects/sort-code.d.ts" />
4
+ /// <reference types="mongoose/types/aggregate.js" />
5
+ /// <reference types="mongoose/types/callback.js" />
6
+ /// <reference types="mongoose/types/collection.js" />
7
+ /// <reference types="mongoose/types/connection.js" />
8
+ /// <reference types="mongoose/types/cursor.js" />
9
+ /// <reference types="mongoose/types/document.js" />
10
+ /// <reference types="mongoose/types/error.js" />
11
+ /// <reference types="mongoose/types/expressions.js" />
12
+ /// <reference types="mongoose/types/helpers.js" />
13
+ /// <reference types="mongoose/types/middlewares.js" />
14
+ /// <reference types="mongoose/types/indexes.js" />
15
+ /// <reference types="mongoose/types/models.js" />
16
+ /// <reference types="mongoose/types/mongooseoptions.js" />
17
+ /// <reference types="mongoose/types/pipelinestage.js" />
18
+ /// <reference types="mongoose/types/populate.js" />
19
+ /// <reference types="mongoose/types/query.js" />
20
+ /// <reference types="mongoose/types/schemaoptions.js" />
21
+ /// <reference types="mongoose/types/session.js" />
22
+ /// <reference types="mongoose/types/types.js" />
23
+ /// <reference types="mongoose/types/utility.js" />
24
+ /// <reference types="mongoose/types/validation.js" />
25
+ /// <reference types="mongoose/types/virtuals.js" />
26
+ /// <reference types="mongoose/types/schematypes.js" />
27
+ /// <reference types="mongoose/types/inferschematype.js" />
28
+ /// <reference types="mongoose/types/inferrawdoctype.js" />
29
+ import mongoose from 'mongoose';
30
+ import { WorkflowTriggerEvent, WorkflowMiddlewareOptions } from './workflow-trigger.type.js';
31
+ export declare class WorkflowMiddleware {
32
+ private workflowService;
33
+ private options;
34
+ constructor(options?: Partial<WorkflowMiddlewareOptions>);
35
+ /**
36
+ * Safely gets the WorkflowTrigger model, handling potential registration issues
37
+ */
38
+ private getWorkflowTriggerModel;
39
+ /**
40
+ * Gets the current request context including application_id
41
+ * @returns The current context object or null if not available
42
+ */
43
+ getContext(): {
44
+ contextId: any;
45
+ } | null;
46
+ /**
47
+ * Creates a Mongoose middleware function for a specific model
48
+ * @param recordType - The type of record (e.g., 'applications', 'products', 'tasks')
49
+ * @returns Mongoose middleware function
50
+ */
51
+ createMiddleware(recordType: string): {
52
+ postSave: (this: any, doc: any, next: Function) => Promise<void>;
53
+ postRemove: (this: any, doc: any, next: Function) => Promise<void>;
54
+ };
55
+ /**
56
+ * Handles a workflow trigger event
57
+ * @param event - The workflow trigger event
58
+ * @param document - The document that triggered the event
59
+ */
60
+ handleEvent(event: WorkflowTriggerEvent, document: any): Promise<void>;
61
+ /**
62
+ * Processes a single workflow trigger
63
+ * @param trigger - The workflow trigger configuration
64
+ * @param document - The document that triggered the event
65
+ * @param event - The workflow trigger event
66
+ */
67
+ private processTrigger;
68
+ /**
69
+ * Evaluates a condition against a document
70
+ * @param condition - The condition string to evaluate
71
+ * @param document - The document to evaluate against
72
+ * @returns true if condition is met
73
+ */
74
+ private evaluateCondition;
75
+ /**
76
+ * Extracts metadata from document and event
77
+ * @param document - The document
78
+ * @param event - The event
79
+ * @returns Metadata object
80
+ */
81
+ private extractMetadata;
82
+ /**
83
+ * Manually trigger a workflow for a specific document
84
+ * @param triggerKey - The trigger key to use
85
+ * @param document - The document to process
86
+ * @param recordType - The record type
87
+ */
88
+ manualTrigger(triggerKey: string, document: any, recordType: string): Promise<void>;
89
+ }
90
+ /**
91
+ * Factory function to create workflow middleware for a model
92
+ * @param recordType - The type of record (e.g., 'applications', 'products', 'tasks')
93
+ * @param options - Optional workflow middleware options (overrides env vars)
94
+ * @returns Mongoose middleware functions
95
+ */
96
+ export declare function createWorkflowMiddleware(recordType: string, options?: Partial<WorkflowMiddlewareOptions>): {
97
+ postSave: (this: any, doc: any, next: Function) => Promise<void>;
98
+ postRemove: (this: any, doc: any, next: Function) => Promise<void>;
99
+ };
100
+ /**
101
+ * Utility function to apply workflow middleware to a Mongoose schema
102
+ * @param schema - The Mongoose schema
103
+ * @param recordType - The type of record
104
+ * @param options - Optional workflow middleware options (overrides env vars)
105
+ */
106
+ export declare function applyWorkflowMiddleware(schema: mongoose.Schema, recordType: string, options?: Partial<WorkflowMiddlewareOptions>): void;
107
+ //# sourceMappingURL=workflow.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.middleware.d.ts","sourceRoot":"","sources":["../../shared/workflow.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,EACH,oBAAoB,EAEpB,yBAAyB,EAC5B,MAAM,4BAA4B,CAAC;AAIpC,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAA4B;gBAE/B,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAYxD;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,UAAU;;;IAMV;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM;yBAGK,GAAG,OAAO,GAAG,QAAQ,QAAQ;2BAiB3B,GAAG,OAAO,GAAG,QAAQ,QAAQ;;IAkBvE;;;;OAIG;IACG,WAAW,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5E;;;;;OAKG;YACW,cAAc;IA8C5B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;;OAKG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS5F;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC;;;EAGxG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,QAShI"}