@defra/forms-model 3.0.515 → 3.0.516

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.
@@ -16,19 +16,20 @@ export let AuditEventMessageSubCategory = /*#__PURE__*/function (AuditEventMessa
16
16
  export let AuditEventMessageType = /*#__PURE__*/function (AuditEventMessageType) {
17
17
  AuditEventMessageType["FORM_CREATED"] = "FORM_CREATED";
18
18
  AuditEventMessageType["FORM_PUBLISHED"] = "FORM_PUBLISHED";
19
- AuditEventMessageType["FORM_NAME_UPDATED"] = "FORM_NAME_UPDATED";
19
+ AuditEventMessageType["FORM_TITLE_UPDATED"] = "FORM_TITLE_UPDATED";
20
20
  AuditEventMessageType["FORM_ORGANISATION_UPDATED"] = "FORM_ORGANISATION_UPDATED";
21
21
  AuditEventMessageType["FORM_TEAM_NAME_UPDATED"] = "FORM_TEAM_NAME_UPDATED";
22
22
  AuditEventMessageType["FORM_TEAM_EMAIL_UPDATED"] = "FORM_TEAM_EMAIL_UPDATED";
23
23
  AuditEventMessageType["FORM_SUPPORT_PHONE_UPDATED"] = "FORM_SUPPORT_PHONE_UPDATED";
24
24
  AuditEventMessageType["FORM_SUPPORT_EMAIL_UPDATED"] = "FORM_SUPPORT_EMAIL_UPDATED";
25
- AuditEventMessageType["FORM_SUPPORT_LINK_UPDATED"] = "FORM_SUPPORT_LINK_UPDATED";
26
- AuditEventMessageType["FORM_PRIVACY_POLICY_LINK_UPDATED"] = "FORM_PRIVACY_POLICY_LINK_UPDATED";
25
+ AuditEventMessageType["FORM_SUPPORT_ONLINE_UPDATED"] = "FORM_SUPPORT_ONLINE_UPDATED";
26
+ AuditEventMessageType["FORM_PRIVACY_NOTICE_UPDATED"] = "FORM_PRIVACY_NOTICE_UPDATED";
27
27
  AuditEventMessageType["FORM_NOTIFICATION_EMAIL_UPDATED"] = "FORM_NOTIFICATION_EMAIL_UPDATED";
28
28
  AuditEventMessageType["FORM_SUBMISSION_GUIDANCE_UPDATED"] = "FORM_SUBMISSION_GUIDANCE_UPDATED";
29
29
  AuditEventMessageType["FORM_JSON_UPLOADED"] = "FORM_JSON_UPLOADED";
30
30
  AuditEventMessageType["FORM_JSON_DOWNLOADED"] = "FORM_JSON_DOWNLOADED";
31
31
  AuditEventMessageType["FORM_DRAFT_CREATED_FROM_LIVE"] = "FORM_DRAFT_CREATED_FROM_LIVE";
32
+ AuditEventMessageType["FORM_LIVE_CREATED_FROM_DRAFT"] = "FORM_LIVE_CREATED_FROM_DRAFT";
32
33
  AuditEventMessageType["FORM_DRAFT_DELETED"] = "FORM_DRAFT_DELETED";
33
34
  AuditEventMessageType["FORM_MIGRATED"] = "FORM_MIGRATED";
34
35
  AuditEventMessageType["FORM_UPDATED"] = "FORM_UPDATED";
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","names":["AuditEventMessageSchemaVersion","AuditEventMessageCategory","AuditEventMessageSubCategory","AuditEventMessageType"],"sources":["../../../../src/form/form-audit/enums.ts"],"sourcesContent":["export enum AuditEventMessageSchemaVersion {\n V1 = 1\n}\n\nexport enum AuditEventMessageCategory {\n FORM = 'FORM',\n ENTITLEMENT = 'ENTITLEMENT'\n}\n\nexport enum AuditEventMessageSubCategory {\n FORM_METADATA = 'FORM_METADATA',\n FORM_DEFINITION = 'FORM_DEFINITION',\n FORM_SUBMISSION = 'FORM_SUBMISSION'\n}\n\nexport enum AuditEventMessageType {\n FORM_CREATED = 'FORM_CREATED',\n FORM_PUBLISHED = 'FORM_PUBLISHED',\n FORM_NAME_UPDATED = 'FORM_NAME_UPDATED',\n FORM_ORGANISATION_UPDATED = 'FORM_ORGANISATION_UPDATED',\n FORM_TEAM_NAME_UPDATED = 'FORM_TEAM_NAME_UPDATED',\n FORM_TEAM_EMAIL_UPDATED = 'FORM_TEAM_EMAIL_UPDATED',\n FORM_SUPPORT_PHONE_UPDATED = 'FORM_SUPPORT_PHONE_UPDATED',\n FORM_SUPPORT_EMAIL_UPDATED = 'FORM_SUPPORT_EMAIL_UPDATED',\n FORM_SUPPORT_LINK_UPDATED = 'FORM_SUPPORT_LINK_UPDATED',\n FORM_PRIVACY_POLICY_LINK_UPDATED = 'FORM_PRIVACY_POLICY_LINK_UPDATED',\n FORM_NOTIFICATION_EMAIL_UPDATED = 'FORM_NOTIFICATION_EMAIL_UPDATED',\n FORM_SUBMISSION_GUIDANCE_UPDATED = 'FORM_SUBMISSION_GUIDANCE_UPDATED',\n FORM_JSON_UPLOADED = 'FORM_JSON_UPLOADED',\n FORM_JSON_DOWNLOADED = 'FORM_JSON_DOWNLOADED',\n FORM_DRAFT_CREATED_FROM_LIVE = 'FORM_DRAFT_CREATED_FROM_LIVE',\n FORM_DRAFT_DELETED = 'FORM_DRAFT_DELETED',\n FORM_MIGRATED = 'FORM_MIGRATED',\n FORM_UPDATED = 'FORM_UPDATED'\n}\n"],"mappings":"AAAA,WAAYA,8BAA8B,0BAA9BA,8BAA8B;EAA9BA,8BAA8B,CAA9BA,8BAA8B;EAAA,OAA9BA,8BAA8B;AAAA;AAI1C,WAAYC,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AAKrC,WAAYC,4BAA4B,0BAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA;AAMxC,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"enums.js","names":["AuditEventMessageSchemaVersion","AuditEventMessageCategory","AuditEventMessageSubCategory","AuditEventMessageType"],"sources":["../../../../src/form/form-audit/enums.ts"],"sourcesContent":["export enum AuditEventMessageSchemaVersion {\n V1 = 1\n}\n\nexport enum AuditEventMessageCategory {\n FORM = 'FORM',\n ENTITLEMENT = 'ENTITLEMENT'\n}\n\nexport enum AuditEventMessageSubCategory {\n FORM_METADATA = 'FORM_METADATA',\n FORM_DEFINITION = 'FORM_DEFINITION',\n FORM_SUBMISSION = 'FORM_SUBMISSION'\n}\n\nexport enum AuditEventMessageType {\n FORM_CREATED = 'FORM_CREATED',\n FORM_PUBLISHED = 'FORM_PUBLISHED',\n FORM_TITLE_UPDATED = 'FORM_TITLE_UPDATED',\n FORM_ORGANISATION_UPDATED = 'FORM_ORGANISATION_UPDATED',\n FORM_TEAM_NAME_UPDATED = 'FORM_TEAM_NAME_UPDATED',\n FORM_TEAM_EMAIL_UPDATED = 'FORM_TEAM_EMAIL_UPDATED',\n FORM_SUPPORT_PHONE_UPDATED = 'FORM_SUPPORT_PHONE_UPDATED',\n FORM_SUPPORT_EMAIL_UPDATED = 'FORM_SUPPORT_EMAIL_UPDATED',\n FORM_SUPPORT_ONLINE_UPDATED = 'FORM_SUPPORT_ONLINE_UPDATED',\n FORM_PRIVACY_NOTICE_UPDATED = 'FORM_PRIVACY_NOTICE_UPDATED',\n FORM_NOTIFICATION_EMAIL_UPDATED = 'FORM_NOTIFICATION_EMAIL_UPDATED',\n FORM_SUBMISSION_GUIDANCE_UPDATED = 'FORM_SUBMISSION_GUIDANCE_UPDATED',\n FORM_JSON_UPLOADED = 'FORM_JSON_UPLOADED',\n FORM_JSON_DOWNLOADED = 'FORM_JSON_DOWNLOADED',\n FORM_DRAFT_CREATED_FROM_LIVE = 'FORM_DRAFT_CREATED_FROM_LIVE',\n FORM_LIVE_CREATED_FROM_DRAFT = 'FORM_LIVE_CREATED_FROM_DRAFT',\n FORM_DRAFT_DELETED = 'FORM_DRAFT_DELETED',\n FORM_MIGRATED = 'FORM_MIGRATED',\n FORM_UPDATED = 'FORM_UPDATED'\n}\n"],"mappings":"AAAA,WAAYA,8BAA8B,0BAA9BA,8BAA8B;EAA9BA,8BAA8B,CAA9BA,8BAA8B;EAAA,OAA9BA,8BAA8B;AAAA;AAI1C,WAAYC,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AAKrC,WAAYC,4BAA4B,0BAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA;AAMxC,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA","ignoreList":[]}
@@ -1,20 +1,54 @@
1
1
  import Joi from 'joi';
2
2
  import { AuditEventMessageCategory, AuditEventMessageSchemaVersion, AuditEventMessageType } from "./enums.js";
3
3
  export const formMessageDataBase = Joi.object({
4
- formId: Joi.string().trim().required(),
5
- slug: Joi.string().trim().required()
4
+ formId: Joi.string().required(),
5
+ slug: Joi.string().required()
6
6
  });
7
7
  export const formCreatedMessageData = formMessageDataBase.append({
8
- title: Joi.string().trim().required(),
9
- organisation: Joi.string().trim().required(),
10
- teamName: Joi.string().trim().required(),
11
- teamEmail: Joi.string().trim().required()
8
+ title: Joi.string().required(),
9
+ organisation: Joi.string().required(),
10
+ teamName: Joi.string().required(),
11
+ teamEmail: Joi.string().required()
12
12
  });
13
- export const supportEmailChanges = Joi.object().keys({
14
- supportEmail: Joi.string().email().required(),
13
+ export const formUpdatedMessageData = formMessageDataBase.append({
14
+ description: Joi.string().trim().required()
15
+ });
16
+ export const formTitleChanges = Joi.object().keys({
17
+ title: Joi.string().required()
18
+ }).required();
19
+ export const formOrganisationChanges = Joi.object().keys({
20
+ organisation: Joi.string().required()
21
+ }).required();
22
+ export const formTeamNameChanges = Joi.object().keys({
23
+ teamName: Joi.string().required()
24
+ }).required();
25
+ export const formTeamEmailChanges = Joi.object().keys({
26
+ teamEmail: Joi.string().required()
27
+ }).required();
28
+ export const formSupportPhoneChanges = Joi.object().keys({
29
+ phone: Joi.string().required()
30
+ }).required();
31
+ export const formSupportOnlineChanges = Joi.object().keys({
32
+ url: Joi.string().required(),
33
+ text: Joi.string().required()
34
+ }).required();
35
+ export const formPrivacyNoticeChanges = Joi.object().keys({
36
+ privacyNoticeUrl: Joi.string().required()
37
+ }).required();
38
+ export const formNotificationEmailChanges = Joi.object().keys({
39
+ notificationEmail: Joi.string().required()
40
+ }).required();
41
+ export const formSubmissionGuidanceChanges = Joi.object().keys({
42
+ submissionGuidance: Joi.string().required()
43
+ }).required();
44
+ export const formUploadedChanges = Joi.object().keys({
45
+ value: Joi.string().required()
46
+ }).required();
47
+ export const formSupportEmailChanges = Joi.object().keys({
48
+ address: Joi.string().email().required(),
15
49
  responseTime: Joi.string().required()
16
50
  });
17
- export function supportEmailUpdatedMessageData(schema) {
51
+ export function formChangesMessageData(schema) {
18
52
  return formMessageDataBase.append({
19
53
  changes: Joi.object().keys({
20
54
  previous: schema,
@@ -27,9 +61,10 @@ export const auditUserSchema = Joi.object().keys({
27
61
  displayName: Joi.string().required()
28
62
  });
29
63
  export const validCategories = [AuditEventMessageCategory.FORM, AuditEventMessageCategory.ENTITLEMENT];
30
- export const validTypes = [AuditEventMessageType.FORM_CREATED, AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED];
64
+ export const validTypes = [AuditEventMessageType.FORM_CREATED, AuditEventMessageType.FORM_PUBLISHED, AuditEventMessageType.FORM_TITLE_UPDATED, AuditEventMessageType.FORM_ORGANISATION_UPDATED, AuditEventMessageType.FORM_TEAM_NAME_UPDATED, AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED, AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED, AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED, AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED, AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED, AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED, AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED, AuditEventMessageType.FORM_UPDATED, AuditEventMessageType.FORM_JSON_UPLOADED, AuditEventMessageType.FORM_JSON_DOWNLOADED, AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE, AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT, AuditEventMessageType.FORM_DRAFT_DELETED, AuditEventMessageType.FORM_MIGRATED];
31
65
  export const validMessageSchemaVersions = [AuditEventMessageSchemaVersion.V1];
32
66
  export const messageSchema = Joi.object().keys({
67
+ entityId: Joi.string().required(),
33
68
  schemaVersion: Joi.string().valid(...validMessageSchemaVersions).required(),
34
69
  type: Joi.string().valid(...validTypes),
35
70
  category: Joi.string().valid(...validCategories).required(),
@@ -39,9 +74,42 @@ export const messageSchema = Joi.object().keys({
39
74
  switch: [{
40
75
  is: Joi.string().trim().valid(AuditEventMessageType.FORM_CREATED),
41
76
  then: formCreatedMessageData
77
+ }, {
78
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_TITLE_UPDATED),
79
+ then: formChangesMessageData(formTitleChanges)
80
+ }, {
81
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_ORGANISATION_UPDATED),
82
+ then: formChangesMessageData(formOrganisationChanges)
83
+ }, {
84
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_TEAM_NAME_UPDATED),
85
+ then: formChangesMessageData(formTeamNameChanges)
86
+ }, {
87
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED),
88
+ then: formChangesMessageData(formTeamEmailChanges)
89
+ }, {
90
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED),
91
+ then: formChangesMessageData(formSupportPhoneChanges)
42
92
  }, {
43
93
  is: Joi.string().trim().valid(AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED),
44
- then: supportEmailUpdatedMessageData(supportEmailChanges)
94
+ then: formChangesMessageData(formSupportEmailChanges)
95
+ }, {
96
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED),
97
+ then: formChangesMessageData(formSupportOnlineChanges)
98
+ }, {
99
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED),
100
+ then: formChangesMessageData(formPrivacyNoticeChanges)
101
+ }, {
102
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED),
103
+ then: formChangesMessageData(formNotificationEmailChanges)
104
+ }, {
105
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED),
106
+ then: formChangesMessageData(formSubmissionGuidanceChanges)
107
+ }, {
108
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_JSON_UPLOADED),
109
+ then: formChangesMessageData(formUploadedChanges)
110
+ }, {
111
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_UPDATED),
112
+ then: formUpdatedMessageData
45
113
  }]
46
114
  }),
47
115
  messageCreatedAt: Joi.date().required()
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Joi","AuditEventMessageCategory","AuditEventMessageSchemaVersion","AuditEventMessageType","formMessageDataBase","object","formId","string","trim","required","slug","formCreatedMessageData","append","title","organisation","teamName","teamEmail","supportEmailChanges","keys","supportEmail","email","responseTime","supportEmailUpdatedMessageData","schema","changes","previous","new","auditUserSchema","id","uuid","displayName","validCategories","FORM","ENTITLEMENT","validTypes","FORM_CREATED","FORM_SUPPORT_EMAIL_UPDATED","validMessageSchemaVersions","V1","messageSchema","schemaVersion","valid","type","category","createdAt","date","createdBy","data","when","switch","is","then","messageCreatedAt","auditEvent","message","auditRecord","messageId","entityId","recordCreatedAt"],"sources":["../../../../src/form/form-audit/index.ts"],"sourcesContent":["import Joi, { type ObjectSchema } from 'joi'\n\nimport {\n AuditEventMessageCategory,\n AuditEventMessageSchemaVersion,\n AuditEventMessageType\n} from '~/src/form/form-audit/enums.js'\nimport {\n type AuditEvent,\n type AuditMessage,\n type AuditRecord,\n type AuditUser,\n type ChangesMessageData,\n type FormCreatedMessageData,\n type FormMessageDataBase,\n type SupportEmailChanges,\n type SupportEmailUpdatedMessageData\n} from '~/src/form/form-audit/types.js'\n\nexport const formMessageDataBase = Joi.object<FormMessageDataBase>({\n formId: Joi.string().trim().required(),\n slug: Joi.string().trim().required()\n})\n\nexport const formCreatedMessageData =\n formMessageDataBase.append<FormCreatedMessageData>({\n title: Joi.string().trim().required(),\n organisation: Joi.string().trim().required(),\n teamName: Joi.string().trim().required(),\n teamEmail: Joi.string().trim().required()\n })\n\nexport const supportEmailChanges = Joi.object<SupportEmailChanges>().keys({\n supportEmail: Joi.string().email().required(),\n responseTime: Joi.string().required()\n})\n\nexport function supportEmailUpdatedMessageData<T>(schema: ObjectSchema<T>) {\n return formMessageDataBase.append<SupportEmailUpdatedMessageData>({\n changes: Joi.object<ChangesMessageData<T>>().keys({\n previous: schema,\n new: schema\n })\n })\n}\n\nexport const auditUserSchema = Joi.object<AuditUser>().keys({\n id: Joi.string().uuid().required(),\n displayName: Joi.string().required()\n})\n\nexport const validCategories = [\n AuditEventMessageCategory.FORM,\n AuditEventMessageCategory.ENTITLEMENT\n]\n\nexport const validTypes = [\n AuditEventMessageType.FORM_CREATED,\n AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED\n]\n\nexport const validMessageSchemaVersions = [AuditEventMessageSchemaVersion.V1]\n\nexport const messageSchema = Joi.object<AuditMessage>().keys({\n schemaVersion: Joi.string()\n .valid(...validMessageSchemaVersions)\n .required(),\n type: Joi.string().valid(...validTypes),\n category: Joi.string()\n .valid(...validCategories)\n .required(),\n createdAt: Joi.date().required(),\n createdBy: auditUserSchema.required(),\n data: Joi.when('type', {\n switch: [\n {\n is: Joi.string().trim().valid(AuditEventMessageType.FORM_CREATED),\n then: formCreatedMessageData\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED),\n then: supportEmailUpdatedMessageData(supportEmailChanges)\n }\n ]\n }),\n messageCreatedAt: Joi.date().required()\n})\n\nexport const auditEvent = Joi.object<AuditEvent>().keys({\n message: messageSchema\n})\n\nexport const auditRecord = messageSchema.append<AuditRecord>({\n messageId: Joi.string().uuid().required(),\n entityId: Joi.string().required(),\n recordCreatedAt: Joi.date().required()\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Joi","AuditEventMessageCategory","AuditEventMessageSchemaVersion","AuditEventMessageType","formMessageDataBase","object","formId","string","required","slug","formCreatedMessageData","append","title","organisation","teamName","teamEmail","formUpdatedMessageData","description","trim","formTitleChanges","keys","formOrganisationChanges","formTeamNameChanges","formTeamEmailChanges","formSupportPhoneChanges","phone","formSupportOnlineChanges","url","text","formPrivacyNoticeChanges","privacyNoticeUrl","formNotificationEmailChanges","notificationEmail","formSubmissionGuidanceChanges","submissionGuidance","formUploadedChanges","value","formSupportEmailChanges","address","email","responseTime","formChangesMessageData","schema","changes","previous","new","auditUserSchema","id","uuid","displayName","validCategories","FORM","ENTITLEMENT","validTypes","FORM_CREATED","FORM_PUBLISHED","FORM_TITLE_UPDATED","FORM_ORGANISATION_UPDATED","FORM_TEAM_NAME_UPDATED","FORM_TEAM_EMAIL_UPDATED","FORM_SUPPORT_PHONE_UPDATED","FORM_SUPPORT_EMAIL_UPDATED","FORM_SUPPORT_ONLINE_UPDATED","FORM_PRIVACY_NOTICE_UPDATED","FORM_NOTIFICATION_EMAIL_UPDATED","FORM_SUBMISSION_GUIDANCE_UPDATED","FORM_UPDATED","FORM_JSON_UPLOADED","FORM_JSON_DOWNLOADED","FORM_DRAFT_CREATED_FROM_LIVE","FORM_LIVE_CREATED_FROM_DRAFT","FORM_DRAFT_DELETED","FORM_MIGRATED","validMessageSchemaVersions","V1","messageSchema","entityId","schemaVersion","valid","type","category","createdAt","date","createdBy","data","when","switch","is","then","messageCreatedAt","auditEvent","message","auditRecord","messageId","recordCreatedAt"],"sources":["../../../../src/form/form-audit/index.ts"],"sourcesContent":["import Joi, { type ObjectSchema } from 'joi'\n\nimport {\n AuditEventMessageCategory,\n AuditEventMessageSchemaVersion,\n AuditEventMessageType\n} from '~/src/form/form-audit/enums.js'\nimport {\n type AuditEvent,\n type AuditMessage,\n type AuditRecord,\n type AuditUser,\n type ChangesMessageData,\n type FormCreatedMessageData,\n type FormMessageChangesData,\n type FormMessageDataBase,\n type FormNotificationEmailChanges,\n type FormNotificationEmailUpdatedMessageData,\n type FormOrganisationChanges,\n type FormOrganisationUpdatedMessageData,\n type FormPrivacyNoticeChanges,\n type FormPrivacyNoticeUpdatedMessageData,\n type FormSubmissionGuidanceChanges,\n type FormSubmissionGuidanceUpdatedMessageData,\n type FormSupportEmailChanges,\n type FormSupportEmailUpdatedMessageData,\n type FormSupportOnlineChanges,\n type FormSupportOnlineUpdatedMessageData,\n type FormSupportPhoneChanges,\n type FormSupportPhoneUpdatedMessageData,\n type FormTeamEmailChanges,\n type FormTeamEmailUpdatedMessageData,\n type FormTeamNameChanges,\n type FormTeamNameUpdatedMessageData,\n type FormTitleChanges,\n type FormTitleUpdatedMessageData,\n type FormUpdatedMessageData,\n type FormUploadedChanges,\n type FormUploadedMessageData\n} from '~/src/form/form-audit/types.js'\n\nexport const formMessageDataBase = Joi.object<FormMessageDataBase>({\n formId: Joi.string().required(),\n slug: Joi.string().required()\n})\n\nexport const formCreatedMessageData =\n formMessageDataBase.append<FormCreatedMessageData>({\n title: Joi.string().required(),\n organisation: Joi.string().required(),\n teamName: Joi.string().required(),\n teamEmail: Joi.string().required()\n })\n\nexport const formUpdatedMessageData =\n formMessageDataBase.append<FormUpdatedMessageData>({\n description: Joi.string().trim().required()\n })\n\nexport const formTitleChanges = Joi.object<FormTitleChanges>()\n .keys({\n title: Joi.string().required()\n })\n .required()\n\nexport const formOrganisationChanges = Joi.object<FormOrganisationChanges>()\n .keys({\n organisation: Joi.string().required()\n })\n .required()\n\nexport const formTeamNameChanges = Joi.object<FormTeamNameChanges>()\n .keys({\n teamName: Joi.string().required()\n })\n .required()\n\nexport const formTeamEmailChanges = Joi.object<FormTeamEmailChanges>()\n .keys({\n teamEmail: Joi.string().required()\n })\n .required()\n\nexport const formSupportPhoneChanges = Joi.object<FormSupportPhoneChanges>()\n .keys({\n phone: Joi.string().required()\n })\n .required()\n\nexport const formSupportOnlineChanges = Joi.object<FormSupportOnlineChanges>()\n .keys({\n url: Joi.string().required(),\n text: Joi.string().required()\n })\n .required()\n\nexport const formPrivacyNoticeChanges = Joi.object<FormPrivacyNoticeChanges>()\n .keys({\n privacyNoticeUrl: Joi.string().required()\n })\n .required()\n\nexport const formNotificationEmailChanges =\n Joi.object<FormNotificationEmailChanges>()\n .keys({\n notificationEmail: Joi.string().required()\n })\n .required()\n\nexport const formSubmissionGuidanceChanges =\n Joi.object<FormSubmissionGuidanceChanges>()\n .keys({\n submissionGuidance: Joi.string().required()\n })\n .required()\n\nexport const formUploadedChanges = Joi.object<FormUploadedChanges>()\n .keys({\n value: Joi.string().required()\n })\n .required()\n\nexport const formSupportEmailChanges =\n Joi.object<FormSupportEmailChanges>().keys({\n address: Joi.string().email().required(),\n responseTime: Joi.string().required()\n })\n\nexport function formChangesMessageData<T, U extends FormMessageChangesData>(\n schema: ObjectSchema<T>\n): ObjectSchema<U> {\n return formMessageDataBase.append<U>({\n changes: Joi.object<ChangesMessageData<T>>().keys({\n previous: schema,\n new: schema\n })\n })\n}\n\nexport const auditUserSchema = Joi.object<AuditUser>().keys({\n id: Joi.string().uuid().required(),\n displayName: Joi.string().required()\n})\n\nexport const validCategories = [\n AuditEventMessageCategory.FORM,\n AuditEventMessageCategory.ENTITLEMENT\n]\n\nexport const validTypes = [\n AuditEventMessageType.FORM_CREATED,\n AuditEventMessageType.FORM_PUBLISHED,\n AuditEventMessageType.FORM_TITLE_UPDATED,\n AuditEventMessageType.FORM_ORGANISATION_UPDATED,\n AuditEventMessageType.FORM_TEAM_NAME_UPDATED,\n AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED,\n AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED,\n AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED,\n AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED,\n AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED,\n AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED,\n AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED,\n AuditEventMessageType.FORM_UPDATED,\n AuditEventMessageType.FORM_JSON_UPLOADED,\n AuditEventMessageType.FORM_JSON_DOWNLOADED,\n AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE,\n AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT,\n AuditEventMessageType.FORM_DRAFT_DELETED,\n AuditEventMessageType.FORM_MIGRATED\n]\n\nexport const validMessageSchemaVersions = [AuditEventMessageSchemaVersion.V1]\n\nexport const messageSchema = Joi.object<AuditMessage>().keys({\n entityId: Joi.string().required(),\n schemaVersion: Joi.string()\n .valid(...validMessageSchemaVersions)\n .required(),\n type: Joi.string().valid(...validTypes),\n category: Joi.string()\n .valid(...validCategories)\n .required(),\n createdAt: Joi.date().required(),\n createdBy: auditUserSchema.required(),\n data: Joi.when('type', {\n switch: [\n {\n is: Joi.string().trim().valid(AuditEventMessageType.FORM_CREATED),\n then: formCreatedMessageData\n },\n {\n is: Joi.string().trim().valid(AuditEventMessageType.FORM_TITLE_UPDATED),\n then: formChangesMessageData<\n FormTitleChanges,\n FormTitleUpdatedMessageData\n >(formTitleChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_ORGANISATION_UPDATED),\n then: formChangesMessageData<\n FormOrganisationChanges,\n FormOrganisationUpdatedMessageData\n >(formOrganisationChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_TEAM_NAME_UPDATED),\n then: formChangesMessageData<\n FormTeamNameChanges,\n FormTeamNameUpdatedMessageData\n >(formTeamNameChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED),\n then: formChangesMessageData<\n FormTeamEmailChanges,\n FormTeamEmailUpdatedMessageData\n >(formTeamEmailChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED),\n then: formChangesMessageData<\n FormSupportPhoneChanges,\n FormSupportPhoneUpdatedMessageData\n >(formSupportPhoneChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED),\n then: formChangesMessageData<\n FormSupportEmailChanges,\n FormSupportEmailUpdatedMessageData\n >(formSupportEmailChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED),\n then: formChangesMessageData<\n FormSupportOnlineChanges,\n FormSupportOnlineUpdatedMessageData\n >(formSupportOnlineChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED),\n then: formChangesMessageData<\n FormPrivacyNoticeChanges,\n FormPrivacyNoticeUpdatedMessageData\n >(formPrivacyNoticeChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED),\n then: formChangesMessageData<\n FormNotificationEmailChanges,\n FormNotificationEmailUpdatedMessageData\n >(formNotificationEmailChanges)\n },\n {\n is: Joi.string()\n .trim()\n .valid(AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED),\n then: formChangesMessageData<\n FormSubmissionGuidanceChanges,\n FormSubmissionGuidanceUpdatedMessageData\n >(formSubmissionGuidanceChanges)\n },\n {\n is: Joi.string().trim().valid(AuditEventMessageType.FORM_JSON_UPLOADED),\n then: formChangesMessageData<\n FormUploadedChanges,\n FormUploadedMessageData\n >(formUploadedChanges)\n },\n {\n is: Joi.string().trim().valid(AuditEventMessageType.FORM_UPDATED),\n then: formUpdatedMessageData\n }\n ]\n }),\n messageCreatedAt: Joi.date().required()\n})\n\nexport const auditEvent = Joi.object<AuditEvent>().keys({\n message: messageSchema\n})\n\nexport const auditRecord = messageSchema.append<AuditRecord>({\n messageId: Joi.string().uuid().required(),\n entityId: Joi.string().required(),\n recordCreatedAt: Joi.date().required()\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-audit/types.ts"],"sourcesContent":["import {\n type AuditEventMessageCategory,\n type AuditEventMessageSchemaVersion,\n type AuditEventMessageType\n} from '~/src/form/form-audit/enums.js'\n\nexport interface FormMessageDataBase {\n formId: string\n slug: string\n}\n\nexport interface ChangesMessageData<T> {\n previous: T\n new: T\n}\n\nexport interface FormCreatedMessageData extends FormMessageDataBase {\n title: string\n organisation: string\n teamName: string\n teamEmail: string\n}\n\nexport interface SupportEmailChanges {\n supportEmail: string\n responseTime: string\n}\n\nexport interface SupportEmailUpdatedMessageData extends FormMessageDataBase {\n changes: ChangesMessageData<SupportEmailChanges>\n}\n\nexport interface AuditUser {\n id: string\n displayName: string\n}\n\nexport type MessageData =\n | FormCreatedMessageData\n | SupportEmailUpdatedMessageData\n\nexport interface MessageBase {\n schemaVersion: AuditEventMessageSchemaVersion\n category: AuditEventMessageCategory\n type: AuditEventMessageType\n createdAt: Date\n createdBy: AuditUser\n data: MessageData\n messageCreatedAt: Date\n}\n\nexport interface FormCreatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_CREATED\n data: FormCreatedMessageData\n}\n\nexport interface FormSupportEmailUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED\n data: SupportEmailUpdatedMessageData\n}\n\nexport type AuditMessage = FormCreatedMessage | FormSupportEmailUpdatedMessage\n\nexport interface AuditEvent {\n message: AuditMessage\n}\n\nexport type AuditRecord = AuditMessage & {\n messageId: string\n entityId: string\n recordCreatedAt: Date\n}\n\nexport interface MessageBody {\n Message: string\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-audit/types.ts"],"sourcesContent":["import {\n type AuditEventMessageCategory,\n type AuditEventMessageSchemaVersion,\n type AuditEventMessageType\n} from '~/src/form/form-audit/enums.js'\n\nexport interface FormMessageDataBase {\n formId: string\n slug: string\n}\n\nexport interface ChangesMessageData<T> {\n previous: T\n new: T\n}\n\nexport interface FormCreatedMessageData extends FormMessageDataBase {\n title: string\n organisation: string\n teamName: string\n teamEmail: string\n}\n\nexport interface FormTitleChanges {\n title: string\n}\n\nexport interface FormOrganisationChanges {\n organisation: string\n}\n\nexport interface FormTeamNameChanges {\n teamName: string\n}\n\nexport interface FormTeamEmailChanges {\n teamEmail: string\n}\n\nexport interface FormSupportPhoneChanges {\n phone: string\n}\n\nexport interface FormSupportEmailChanges {\n address: string\n responseTime: string\n}\n\nexport interface FormSupportOnlineChanges {\n url: string\n text: string\n}\n\nexport interface FormPrivacyNoticeChanges {\n privacyNoticeUrl: string\n}\n\nexport interface FormNotificationEmailChanges {\n notificationEmail: string\n}\n\nexport interface FormSubmissionGuidanceChanges {\n submissionGuidance: string\n}\n\nexport interface FormUploadedChanges {\n value: string\n}\n\nexport interface FormTitleUpdatedMessageData extends FormMessageDataBase {\n changes: ChangesMessageData<FormTitleChanges>\n}\n\nexport interface FormOrganisationUpdatedMessageData\n extends FormMessageDataBase {\n changes: ChangesMessageData<FormOrganisationChanges>\n}\n\nexport interface FormTeamNameUpdatedMessageData extends FormMessageDataBase {\n changes: ChangesMessageData<FormTeamNameChanges>\n}\n\nexport interface FormTeamEmailUpdatedMessageData extends FormMessageDataBase {\n changes: ChangesMessageData<FormTeamEmailChanges>\n}\n\nexport interface FormSupportPhoneUpdatedMessageData\n extends FormMessageDataBase {\n changes: ChangesMessageData<FormSupportPhoneChanges>\n}\n\nexport interface FormSupportEmailUpdatedMessageData\n extends FormMessageDataBase {\n changes: ChangesMessageData<FormSupportEmailChanges>\n}\n\nexport interface FormSupportOnlineUpdatedMessageData\n extends FormMessageDataBase {\n changes: ChangesMessageData<FormSupportOnlineChanges>\n}\n\nexport interface FormPrivacyNoticeUpdatedMessageData\n extends FormMessageDataBase {\n changes: ChangesMessageData<FormPrivacyNoticeChanges>\n}\n\nexport interface FormNotificationEmailUpdatedMessageData\n extends FormMessageDataBase {\n changes: ChangesMessageData<FormNotificationEmailChanges>\n}\n\nexport interface FormSubmissionGuidanceUpdatedMessageData\n extends FormMessageDataBase {\n changes: ChangesMessageData<FormSubmissionGuidanceChanges>\n}\n\nexport interface FormUploadedMessageData extends FormMessageDataBase {\n changes: ChangesMessageData<FormUploadedChanges>\n}\n\nexport type FormMessageChangesData =\n | FormTitleUpdatedMessageData\n | FormOrganisationUpdatedMessageData\n | FormTeamNameUpdatedMessageData\n | FormTeamEmailUpdatedMessageData\n | FormSupportPhoneUpdatedMessageData\n | FormSupportEmailUpdatedMessageData\n | FormSupportOnlineUpdatedMessageData\n | FormPrivacyNoticeUpdatedMessageData\n | FormNotificationEmailUpdatedMessageData\n | FormSubmissionGuidanceUpdatedMessageData\n | FormUploadedMessageData\n\nexport type FormMessageActivitiesData =\n | FormCreatedMessageData\n | FormUpdatedMessageData\n\nexport interface FormUpdatedMessageData extends FormMessageDataBase {\n description: string\n}\n\nexport interface AuditUser {\n id: string\n displayName: string\n}\n\nexport type MessageData = FormMessageChangesData | FormMessageActivitiesData\n\nexport interface MessageBase {\n schemaVersion: AuditEventMessageSchemaVersion\n category: AuditEventMessageCategory\n type: AuditEventMessageType\n entityId: string\n createdAt: Date\n createdBy: AuditUser\n data?: MessageData\n messageCreatedAt: Date\n}\n\nexport interface FormCreatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_CREATED\n data: FormCreatedMessageData\n}\n\nexport interface FormTitleUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_TITLE_UPDATED\n data: FormTitleUpdatedMessageData\n}\n\nexport interface FormOrganisationUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_ORGANISATION_UPDATED\n data: FormOrganisationUpdatedMessageData\n}\n\nexport interface FormTeamNameUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_TEAM_NAME_UPDATED\n data: FormTeamNameUpdatedMessageData\n}\n\nexport interface FormTeamEmailUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED\n data: FormTeamEmailUpdatedMessageData\n}\n\nexport interface FormSupportPhoneUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED\n data: FormSupportPhoneUpdatedMessageData\n}\n\nexport interface FormSupportEmailUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED\n data: FormSupportEmailUpdatedMessageData\n}\n\nexport interface FormSupportOnlineUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED\n data: FormSupportOnlineUpdatedMessageData\n}\n\nexport interface FormSupportPrivacyNoticeUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED\n data: FormPrivacyNoticeUpdatedMessageData\n}\n\nexport interface FormSupportNotificationEmailUpdatedMessage\n extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED\n data: FormNotificationEmailUpdatedMessageData\n}\n\nexport interface FormSupportSubmissionGuidanceUpdatedMessage\n extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED\n data: FormSubmissionGuidanceUpdatedMessageData\n}\n\nexport interface FormUploadedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_JSON_UPLOADED\n data: FormUploadedMessageData\n}\n\nexport interface FormDownloadedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_JSON_DOWNLOADED\n}\n\nexport interface FormPublishedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_PUBLISHED\n}\n\nexport interface FormDraftCreatedFromLiveMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE\n}\n\nexport interface FormLiveCreatedFromDraftMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT\n}\n\nexport interface FormDraftDeletedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_DRAFT_DELETED\n}\n\nexport interface FormMigratedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_MIGRATED\n}\n\nexport interface FormUpdatedMessage extends MessageBase {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_UPDATED\n}\n\nexport type AuditMessage =\n | FormCreatedMessage\n | FormTitleUpdatedMessage\n | FormOrganisationUpdatedMessage\n | FormTeamNameUpdatedMessage\n | FormTeamEmailUpdatedMessage\n | FormSupportPhoneUpdatedMessage\n | FormSupportEmailUpdatedMessage\n | FormSupportOnlineUpdatedMessage\n | FormSupportPrivacyNoticeUpdatedMessage\n | FormSupportNotificationEmailUpdatedMessage\n | FormSupportSubmissionGuidanceUpdatedMessage\n | FormUploadedMessage\n | FormDownloadedMessage\n | FormPublishedMessage\n | FormDraftCreatedFromLiveMessage\n | FormLiveCreatedFromDraftMessage\n | FormDraftDeletedMessage\n | FormMigratedMessage\n | FormUpdatedMessage\n\nexport interface AuditEvent {\n message: AuditMessage\n}\n\nexport type AuditRecord = AuditMessage & {\n messageId: string\n recordCreatedAt: Date\n}\n\nexport interface MessageBody {\n Message: string\n}\n"],"mappings":"","ignoreList":[]}
@@ -13,19 +13,20 @@ export declare enum AuditEventMessageSubCategory {
13
13
  export declare enum AuditEventMessageType {
14
14
  FORM_CREATED = "FORM_CREATED",
15
15
  FORM_PUBLISHED = "FORM_PUBLISHED",
16
- FORM_NAME_UPDATED = "FORM_NAME_UPDATED",
16
+ FORM_TITLE_UPDATED = "FORM_TITLE_UPDATED",
17
17
  FORM_ORGANISATION_UPDATED = "FORM_ORGANISATION_UPDATED",
18
18
  FORM_TEAM_NAME_UPDATED = "FORM_TEAM_NAME_UPDATED",
19
19
  FORM_TEAM_EMAIL_UPDATED = "FORM_TEAM_EMAIL_UPDATED",
20
20
  FORM_SUPPORT_PHONE_UPDATED = "FORM_SUPPORT_PHONE_UPDATED",
21
21
  FORM_SUPPORT_EMAIL_UPDATED = "FORM_SUPPORT_EMAIL_UPDATED",
22
- FORM_SUPPORT_LINK_UPDATED = "FORM_SUPPORT_LINK_UPDATED",
23
- FORM_PRIVACY_POLICY_LINK_UPDATED = "FORM_PRIVACY_POLICY_LINK_UPDATED",
22
+ FORM_SUPPORT_ONLINE_UPDATED = "FORM_SUPPORT_ONLINE_UPDATED",
23
+ FORM_PRIVACY_NOTICE_UPDATED = "FORM_PRIVACY_NOTICE_UPDATED",
24
24
  FORM_NOTIFICATION_EMAIL_UPDATED = "FORM_NOTIFICATION_EMAIL_UPDATED",
25
25
  FORM_SUBMISSION_GUIDANCE_UPDATED = "FORM_SUBMISSION_GUIDANCE_UPDATED",
26
26
  FORM_JSON_UPLOADED = "FORM_JSON_UPLOADED",
27
27
  FORM_JSON_DOWNLOADED = "FORM_JSON_DOWNLOADED",
28
28
  FORM_DRAFT_CREATED_FROM_LIVE = "FORM_DRAFT_CREATED_FROM_LIVE",
29
+ FORM_LIVE_CREATED_FROM_DRAFT = "FORM_LIVE_CREATED_FROM_DRAFT",
29
30
  FORM_DRAFT_DELETED = "FORM_DRAFT_DELETED",
30
31
  FORM_MIGRATED = "FORM_MIGRATED",
31
32
  FORM_UPDATED = "FORM_UPDATED"
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,8BAA8B;IACxC,EAAE,IAAI;CACP;AAED,oBAAY,yBAAyB;IACnC,IAAI,SAAS;IACb,WAAW,gBAAgB;CAC5B;AAED,oBAAY,4BAA4B;IACtC,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;CACpC;AAED,oBAAY,qBAAqB;IAC/B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,yBAAyB,8BAA8B;IACvD,sBAAsB,2BAA2B;IACjD,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,0BAA0B,+BAA+B;IACzD,yBAAyB,8BAA8B;IACvD,gCAAgC,qCAAqC;IACrE,+BAA+B,oCAAoC;IACnE,gCAAgC,qCAAqC;IACrE,kBAAkB,uBAAuB;IACzC,oBAAoB,yBAAyB;IAC7C,4BAA4B,iCAAiC;IAC7D,kBAAkB,uBAAuB;IACzC,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;CAC9B"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/enums.ts"],"names":[],"mappings":"AAAA,oBAAY,8BAA8B;IACxC,EAAE,IAAI;CACP;AAED,oBAAY,yBAAyB;IACnC,IAAI,SAAS;IACb,WAAW,gBAAgB;CAC5B;AAED,oBAAY,4BAA4B;IACtC,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;CACpC;AAED,oBAAY,qBAAqB;IAC/B,YAAY,iBAAiB;IAC7B,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IACzC,yBAAyB,8BAA8B;IACvD,sBAAsB,2BAA2B;IACjD,uBAAuB,4BAA4B;IACnD,0BAA0B,+BAA+B;IACzD,0BAA0B,+BAA+B;IACzD,2BAA2B,gCAAgC;IAC3D,2BAA2B,gCAAgC;IAC3D,+BAA+B,oCAAoC;IACnE,gCAAgC,qCAAqC;IACrE,kBAAkB,uBAAuB;IACzC,oBAAoB,yBAAyB;IAC7C,4BAA4B,iCAAiC;IAC7D,4BAA4B,iCAAiC;IAC7D,kBAAkB,uBAAuB;IACzC,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;CAC9B"}
@@ -1,10 +1,21 @@
1
1
  import Joi, { type ObjectSchema } from 'joi';
2
2
  import { AuditEventMessageCategory, AuditEventMessageSchemaVersion, AuditEventMessageType } from '../../form/form-audit/enums.js';
3
- import { type AuditEvent, type AuditMessage, type AuditRecord, type AuditUser, type FormCreatedMessageData, type FormMessageDataBase, type SupportEmailChanges, type SupportEmailUpdatedMessageData } from '../../form/form-audit/types.js';
3
+ import { type AuditEvent, type AuditMessage, type AuditRecord, type AuditUser, type FormCreatedMessageData, type FormMessageChangesData, type FormMessageDataBase, type FormNotificationEmailChanges, type FormOrganisationChanges, type FormPrivacyNoticeChanges, type FormSubmissionGuidanceChanges, type FormSupportEmailChanges, type FormSupportOnlineChanges, type FormSupportPhoneChanges, type FormTeamEmailChanges, type FormTeamNameChanges, type FormTitleChanges, type FormUpdatedMessageData, type FormUploadedChanges } from '../../form/form-audit/types.js';
4
4
  export declare const formMessageDataBase: Joi.ObjectSchema<FormMessageDataBase>;
5
5
  export declare const formCreatedMessageData: Joi.ObjectSchema<FormCreatedMessageData>;
6
- export declare const supportEmailChanges: Joi.ObjectSchema<SupportEmailChanges>;
7
- export declare function supportEmailUpdatedMessageData<T>(schema: ObjectSchema<T>): Joi.ObjectSchema<SupportEmailUpdatedMessageData>;
6
+ export declare const formUpdatedMessageData: Joi.ObjectSchema<FormUpdatedMessageData>;
7
+ export declare const formTitleChanges: Joi.ObjectSchema<FormTitleChanges>;
8
+ export declare const formOrganisationChanges: Joi.ObjectSchema<FormOrganisationChanges>;
9
+ export declare const formTeamNameChanges: Joi.ObjectSchema<FormTeamNameChanges>;
10
+ export declare const formTeamEmailChanges: Joi.ObjectSchema<FormTeamEmailChanges>;
11
+ export declare const formSupportPhoneChanges: Joi.ObjectSchema<FormSupportPhoneChanges>;
12
+ export declare const formSupportOnlineChanges: Joi.ObjectSchema<FormSupportOnlineChanges>;
13
+ export declare const formPrivacyNoticeChanges: Joi.ObjectSchema<FormPrivacyNoticeChanges>;
14
+ export declare const formNotificationEmailChanges: Joi.ObjectSchema<FormNotificationEmailChanges>;
15
+ export declare const formSubmissionGuidanceChanges: Joi.ObjectSchema<FormSubmissionGuidanceChanges>;
16
+ export declare const formUploadedChanges: Joi.ObjectSchema<FormUploadedChanges>;
17
+ export declare const formSupportEmailChanges: Joi.ObjectSchema<FormSupportEmailChanges>;
18
+ export declare function formChangesMessageData<T, U extends FormMessageChangesData>(schema: ObjectSchema<T>): ObjectSchema<U>;
8
19
  export declare const auditUserSchema: Joi.ObjectSchema<AuditUser>;
9
20
  export declare const validCategories: AuditEventMessageCategory[];
10
21
  export declare const validTypes: AuditEventMessageType[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,KAAK,CAAA;AAE5C,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACpC,MAAM,gCAAgC,CAAA;AAEvC,eAAO,MAAM,mBAAmB,uCAG9B,CAAA;AAEF,eAAO,MAAM,sBAAsB,0CAM/B,CAAA;AAEJ,eAAO,MAAM,mBAAmB,uCAG9B,CAAA;AAEF,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,oDAOxE;AAED,eAAO,MAAM,eAAe,6BAG1B,CAAA;AAEF,eAAO,MAAM,eAAe,6BAG3B,CAAA;AAED,eAAO,MAAM,UAAU,yBAGtB,CAAA;AAED,eAAO,MAAM,0BAA0B,kCAAsC,CAAA;AAE7E,eAAO,MAAM,aAAa,gCAyBxB,CAAA;AAEF,eAAO,MAAM,UAAU,8BAErB,CAAA;AAEF,eAAO,MAAM,WAAW,+BAItB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,EAAE,EAAE,KAAK,YAAY,EAAE,MAAM,KAAK,CAAA;AAE5C,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,EAEjC,KAAK,uBAAuB,EAE5B,KAAK,wBAAwB,EAE7B,KAAK,6BAA6B,EAElC,KAAK,uBAAuB,EAE5B,KAAK,wBAAwB,EAE7B,KAAK,uBAAuB,EAE5B,KAAK,oBAAoB,EAEzB,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EAErB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EAEzB,MAAM,gCAAgC,CAAA;AAEvC,eAAO,MAAM,mBAAmB,uCAG9B,CAAA;AAEF,eAAO,MAAM,sBAAsB,0CAM/B,CAAA;AAEJ,eAAO,MAAM,sBAAsB,0CAG/B,CAAA;AAEJ,eAAO,MAAM,gBAAgB,oCAIhB,CAAA;AAEb,eAAO,MAAM,uBAAuB,2CAIvB,CAAA;AAEb,eAAO,MAAM,mBAAmB,uCAInB,CAAA;AAEb,eAAO,MAAM,oBAAoB,wCAIpB,CAAA;AAEb,eAAO,MAAM,uBAAuB,2CAIvB,CAAA;AAEb,eAAO,MAAM,wBAAwB,4CAKxB,CAAA;AAEb,eAAO,MAAM,wBAAwB,4CAIxB,CAAA;AAEb,eAAO,MAAM,4BAA4B,gDAK1B,CAAA;AAEf,eAAO,MAAM,6BAA6B,iDAK3B,CAAA;AAEf,eAAO,MAAM,mBAAmB,uCAInB,CAAA;AAEb,eAAO,MAAM,uBAAuB,2CAIhC,CAAA;AAEJ,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,CAAC,SAAS,sBAAsB,EACxE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GACtB,YAAY,CAAC,CAAC,CAAC,CAOjB;AAED,eAAO,MAAM,eAAe,6BAG1B,CAAA;AAEF,eAAO,MAAM,eAAe,6BAG3B,CAAA;AAED,eAAO,MAAM,UAAU,yBAoBtB,CAAA;AAED,eAAO,MAAM,0BAA0B,kCAAsC,CAAA;AAE7E,eAAO,MAAM,aAAa,gCAuHxB,CAAA;AAEF,eAAO,MAAM,UAAU,8BAErB,CAAA;AAEF,eAAO,MAAM,WAAW,+BAItB,CAAA"}
@@ -13,25 +13,92 @@ export interface FormCreatedMessageData extends FormMessageDataBase {
13
13
  teamName: string;
14
14
  teamEmail: string;
15
15
  }
16
- export interface SupportEmailChanges {
17
- supportEmail: string;
16
+ export interface FormTitleChanges {
17
+ title: string;
18
+ }
19
+ export interface FormOrganisationChanges {
20
+ organisation: string;
21
+ }
22
+ export interface FormTeamNameChanges {
23
+ teamName: string;
24
+ }
25
+ export interface FormTeamEmailChanges {
26
+ teamEmail: string;
27
+ }
28
+ export interface FormSupportPhoneChanges {
29
+ phone: string;
30
+ }
31
+ export interface FormSupportEmailChanges {
32
+ address: string;
18
33
  responseTime: string;
19
34
  }
20
- export interface SupportEmailUpdatedMessageData extends FormMessageDataBase {
21
- changes: ChangesMessageData<SupportEmailChanges>;
35
+ export interface FormSupportOnlineChanges {
36
+ url: string;
37
+ text: string;
38
+ }
39
+ export interface FormPrivacyNoticeChanges {
40
+ privacyNoticeUrl: string;
41
+ }
42
+ export interface FormNotificationEmailChanges {
43
+ notificationEmail: string;
44
+ }
45
+ export interface FormSubmissionGuidanceChanges {
46
+ submissionGuidance: string;
47
+ }
48
+ export interface FormUploadedChanges {
49
+ value: string;
50
+ }
51
+ export interface FormTitleUpdatedMessageData extends FormMessageDataBase {
52
+ changes: ChangesMessageData<FormTitleChanges>;
53
+ }
54
+ export interface FormOrganisationUpdatedMessageData extends FormMessageDataBase {
55
+ changes: ChangesMessageData<FormOrganisationChanges>;
56
+ }
57
+ export interface FormTeamNameUpdatedMessageData extends FormMessageDataBase {
58
+ changes: ChangesMessageData<FormTeamNameChanges>;
59
+ }
60
+ export interface FormTeamEmailUpdatedMessageData extends FormMessageDataBase {
61
+ changes: ChangesMessageData<FormTeamEmailChanges>;
62
+ }
63
+ export interface FormSupportPhoneUpdatedMessageData extends FormMessageDataBase {
64
+ changes: ChangesMessageData<FormSupportPhoneChanges>;
65
+ }
66
+ export interface FormSupportEmailUpdatedMessageData extends FormMessageDataBase {
67
+ changes: ChangesMessageData<FormSupportEmailChanges>;
68
+ }
69
+ export interface FormSupportOnlineUpdatedMessageData extends FormMessageDataBase {
70
+ changes: ChangesMessageData<FormSupportOnlineChanges>;
71
+ }
72
+ export interface FormPrivacyNoticeUpdatedMessageData extends FormMessageDataBase {
73
+ changes: ChangesMessageData<FormPrivacyNoticeChanges>;
74
+ }
75
+ export interface FormNotificationEmailUpdatedMessageData extends FormMessageDataBase {
76
+ changes: ChangesMessageData<FormNotificationEmailChanges>;
77
+ }
78
+ export interface FormSubmissionGuidanceUpdatedMessageData extends FormMessageDataBase {
79
+ changes: ChangesMessageData<FormSubmissionGuidanceChanges>;
80
+ }
81
+ export interface FormUploadedMessageData extends FormMessageDataBase {
82
+ changes: ChangesMessageData<FormUploadedChanges>;
83
+ }
84
+ export type FormMessageChangesData = FormTitleUpdatedMessageData | FormOrganisationUpdatedMessageData | FormTeamNameUpdatedMessageData | FormTeamEmailUpdatedMessageData | FormSupportPhoneUpdatedMessageData | FormSupportEmailUpdatedMessageData | FormSupportOnlineUpdatedMessageData | FormPrivacyNoticeUpdatedMessageData | FormNotificationEmailUpdatedMessageData | FormSubmissionGuidanceUpdatedMessageData | FormUploadedMessageData;
85
+ export type FormMessageActivitiesData = FormCreatedMessageData | FormUpdatedMessageData;
86
+ export interface FormUpdatedMessageData extends FormMessageDataBase {
87
+ description: string;
22
88
  }
23
89
  export interface AuditUser {
24
90
  id: string;
25
91
  displayName: string;
26
92
  }
27
- export type MessageData = FormCreatedMessageData | SupportEmailUpdatedMessageData;
93
+ export type MessageData = FormMessageChangesData | FormMessageActivitiesData;
28
94
  export interface MessageBase {
29
95
  schemaVersion: AuditEventMessageSchemaVersion;
30
96
  category: AuditEventMessageCategory;
31
97
  type: AuditEventMessageType;
98
+ entityId: string;
32
99
  createdAt: Date;
33
100
  createdBy: AuditUser;
34
- data: MessageData;
101
+ data?: MessageData;
35
102
  messageCreatedAt: Date;
36
103
  }
37
104
  export interface FormCreatedMessage extends MessageBase {
@@ -39,18 +106,95 @@ export interface FormCreatedMessage extends MessageBase {
39
106
  type: AuditEventMessageType.FORM_CREATED;
40
107
  data: FormCreatedMessageData;
41
108
  }
109
+ export interface FormTitleUpdatedMessage extends MessageBase {
110
+ category: AuditEventMessageCategory.FORM;
111
+ type: AuditEventMessageType.FORM_TITLE_UPDATED;
112
+ data: FormTitleUpdatedMessageData;
113
+ }
114
+ export interface FormOrganisationUpdatedMessage extends MessageBase {
115
+ category: AuditEventMessageCategory.FORM;
116
+ type: AuditEventMessageType.FORM_ORGANISATION_UPDATED;
117
+ data: FormOrganisationUpdatedMessageData;
118
+ }
119
+ export interface FormTeamNameUpdatedMessage extends MessageBase {
120
+ category: AuditEventMessageCategory.FORM;
121
+ type: AuditEventMessageType.FORM_TEAM_NAME_UPDATED;
122
+ data: FormTeamNameUpdatedMessageData;
123
+ }
124
+ export interface FormTeamEmailUpdatedMessage extends MessageBase {
125
+ category: AuditEventMessageCategory.FORM;
126
+ type: AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED;
127
+ data: FormTeamEmailUpdatedMessageData;
128
+ }
129
+ export interface FormSupportPhoneUpdatedMessage extends MessageBase {
130
+ category: AuditEventMessageCategory.FORM;
131
+ type: AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED;
132
+ data: FormSupportPhoneUpdatedMessageData;
133
+ }
42
134
  export interface FormSupportEmailUpdatedMessage extends MessageBase {
43
135
  category: AuditEventMessageCategory.FORM;
44
136
  type: AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED;
45
- data: SupportEmailUpdatedMessageData;
137
+ data: FormSupportEmailUpdatedMessageData;
138
+ }
139
+ export interface FormSupportOnlineUpdatedMessage extends MessageBase {
140
+ category: AuditEventMessageCategory.FORM;
141
+ type: AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED;
142
+ data: FormSupportOnlineUpdatedMessageData;
143
+ }
144
+ export interface FormSupportPrivacyNoticeUpdatedMessage extends MessageBase {
145
+ category: AuditEventMessageCategory.FORM;
146
+ type: AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED;
147
+ data: FormPrivacyNoticeUpdatedMessageData;
148
+ }
149
+ export interface FormSupportNotificationEmailUpdatedMessage extends MessageBase {
150
+ category: AuditEventMessageCategory.FORM;
151
+ type: AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED;
152
+ data: FormNotificationEmailUpdatedMessageData;
153
+ }
154
+ export interface FormSupportSubmissionGuidanceUpdatedMessage extends MessageBase {
155
+ category: AuditEventMessageCategory.FORM;
156
+ type: AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED;
157
+ data: FormSubmissionGuidanceUpdatedMessageData;
158
+ }
159
+ export interface FormUploadedMessage extends MessageBase {
160
+ category: AuditEventMessageCategory.FORM;
161
+ type: AuditEventMessageType.FORM_JSON_UPLOADED;
162
+ data: FormUploadedMessageData;
46
163
  }
47
- export type AuditMessage = FormCreatedMessage | FormSupportEmailUpdatedMessage;
164
+ export interface FormDownloadedMessage extends MessageBase {
165
+ category: AuditEventMessageCategory.FORM;
166
+ type: AuditEventMessageType.FORM_JSON_DOWNLOADED;
167
+ }
168
+ export interface FormPublishedMessage extends MessageBase {
169
+ category: AuditEventMessageCategory.FORM;
170
+ type: AuditEventMessageType.FORM_PUBLISHED;
171
+ }
172
+ export interface FormDraftCreatedFromLiveMessage extends MessageBase {
173
+ category: AuditEventMessageCategory.FORM;
174
+ type: AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE;
175
+ }
176
+ export interface FormLiveCreatedFromDraftMessage extends MessageBase {
177
+ category: AuditEventMessageCategory.FORM;
178
+ type: AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT;
179
+ }
180
+ export interface FormDraftDeletedMessage extends MessageBase {
181
+ category: AuditEventMessageCategory.FORM;
182
+ type: AuditEventMessageType.FORM_DRAFT_DELETED;
183
+ }
184
+ export interface FormMigratedMessage extends MessageBase {
185
+ category: AuditEventMessageCategory.FORM;
186
+ type: AuditEventMessageType.FORM_MIGRATED;
187
+ }
188
+ export interface FormUpdatedMessage extends MessageBase {
189
+ category: AuditEventMessageCategory.FORM;
190
+ type: AuditEventMessageType.FORM_UPDATED;
191
+ }
192
+ export type AuditMessage = FormCreatedMessage | FormTitleUpdatedMessage | FormOrganisationUpdatedMessage | FormTeamNameUpdatedMessage | FormTeamEmailUpdatedMessage | FormSupportPhoneUpdatedMessage | FormSupportEmailUpdatedMessage | FormSupportOnlineUpdatedMessage | FormSupportPrivacyNoticeUpdatedMessage | FormSupportNotificationEmailUpdatedMessage | FormSupportSubmissionGuidanceUpdatedMessage | FormUploadedMessage | FormDownloadedMessage | FormPublishedMessage | FormDraftCreatedFromLiveMessage | FormLiveCreatedFromDraftMessage | FormDraftDeletedMessage | FormMigratedMessage | FormUpdatedMessage;
48
193
  export interface AuditEvent {
49
194
  message: AuditMessage;
50
195
  }
51
196
  export type AuditRecord = AuditMessage & {
52
197
  messageId: string;
53
- entityId: string;
54
198
  recordCreatedAt: Date;
55
199
  };
56
200
  export interface MessageBody {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,EAC3B,MAAM,gCAAgC,CAAA;AAEvC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAA;IACX,GAAG,EAAE,CAAC,CAAA;CACP;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,8BAA+B,SAAQ,mBAAmB;IACzE,OAAO,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GACnB,sBAAsB,GACtB,8BAA8B,CAAA;AAElC,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,8BAA8B,CAAA;IAC7C,QAAQ,EAAE,yBAAyB,CAAA;IACnC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,WAAW,CAAA;IACjB,gBAAgB,EAAE,IAAI,CAAA;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAA;IACxC,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAA;IACxC,IAAI,EAAE,sBAAsB,CAAA;CAC7B;AAED,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IACjE,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAA;IACxC,IAAI,EAAE,qBAAqB,CAAC,0BAA0B,CAAA;IACtD,IAAI,EAAE,8BAA8B,CAAA;CACrC;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,8BAA8B,CAAA;AAE9E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,YAAY,CAAA;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,IAAI,CAAA;CACtB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.515",
3
+ "version": "3.0.516",
4
4
  "description": "A hapi plugin providing the model for Defra forms",
5
5
  "homepage": "https://github.com/DEFRA/forms-designer/tree/main/model#readme",
6
6
  "types": "dist/types/index.d.ts",
@@ -16,19 +16,20 @@ export enum AuditEventMessageSubCategory {
16
16
  export enum AuditEventMessageType {
17
17
  FORM_CREATED = 'FORM_CREATED',
18
18
  FORM_PUBLISHED = 'FORM_PUBLISHED',
19
- FORM_NAME_UPDATED = 'FORM_NAME_UPDATED',
19
+ FORM_TITLE_UPDATED = 'FORM_TITLE_UPDATED',
20
20
  FORM_ORGANISATION_UPDATED = 'FORM_ORGANISATION_UPDATED',
21
21
  FORM_TEAM_NAME_UPDATED = 'FORM_TEAM_NAME_UPDATED',
22
22
  FORM_TEAM_EMAIL_UPDATED = 'FORM_TEAM_EMAIL_UPDATED',
23
23
  FORM_SUPPORT_PHONE_UPDATED = 'FORM_SUPPORT_PHONE_UPDATED',
24
24
  FORM_SUPPORT_EMAIL_UPDATED = 'FORM_SUPPORT_EMAIL_UPDATED',
25
- FORM_SUPPORT_LINK_UPDATED = 'FORM_SUPPORT_LINK_UPDATED',
26
- FORM_PRIVACY_POLICY_LINK_UPDATED = 'FORM_PRIVACY_POLICY_LINK_UPDATED',
25
+ FORM_SUPPORT_ONLINE_UPDATED = 'FORM_SUPPORT_ONLINE_UPDATED',
26
+ FORM_PRIVACY_NOTICE_UPDATED = 'FORM_PRIVACY_NOTICE_UPDATED',
27
27
  FORM_NOTIFICATION_EMAIL_UPDATED = 'FORM_NOTIFICATION_EMAIL_UPDATED',
28
28
  FORM_SUBMISSION_GUIDANCE_UPDATED = 'FORM_SUBMISSION_GUIDANCE_UPDATED',
29
29
  FORM_JSON_UPLOADED = 'FORM_JSON_UPLOADED',
30
30
  FORM_JSON_DOWNLOADED = 'FORM_JSON_DOWNLOADED',
31
31
  FORM_DRAFT_CREATED_FROM_LIVE = 'FORM_DRAFT_CREATED_FROM_LIVE',
32
+ FORM_LIVE_CREATED_FROM_DRAFT = 'FORM_LIVE_CREATED_FROM_DRAFT',
32
33
  FORM_DRAFT_DELETED = 'FORM_DRAFT_DELETED',
33
34
  FORM_MIGRATED = 'FORM_MIGRATED',
34
35
  FORM_UPDATED = 'FORM_UPDATED'
@@ -12,31 +12,124 @@ import {
12
12
  type AuditUser,
13
13
  type ChangesMessageData,
14
14
  type FormCreatedMessageData,
15
+ type FormMessageChangesData,
15
16
  type FormMessageDataBase,
16
- type SupportEmailChanges,
17
- type SupportEmailUpdatedMessageData
17
+ type FormNotificationEmailChanges,
18
+ type FormNotificationEmailUpdatedMessageData,
19
+ type FormOrganisationChanges,
20
+ type FormOrganisationUpdatedMessageData,
21
+ type FormPrivacyNoticeChanges,
22
+ type FormPrivacyNoticeUpdatedMessageData,
23
+ type FormSubmissionGuidanceChanges,
24
+ type FormSubmissionGuidanceUpdatedMessageData,
25
+ type FormSupportEmailChanges,
26
+ type FormSupportEmailUpdatedMessageData,
27
+ type FormSupportOnlineChanges,
28
+ type FormSupportOnlineUpdatedMessageData,
29
+ type FormSupportPhoneChanges,
30
+ type FormSupportPhoneUpdatedMessageData,
31
+ type FormTeamEmailChanges,
32
+ type FormTeamEmailUpdatedMessageData,
33
+ type FormTeamNameChanges,
34
+ type FormTeamNameUpdatedMessageData,
35
+ type FormTitleChanges,
36
+ type FormTitleUpdatedMessageData,
37
+ type FormUpdatedMessageData,
38
+ type FormUploadedChanges,
39
+ type FormUploadedMessageData
18
40
  } from '~/src/form/form-audit/types.js'
19
41
 
20
42
  export const formMessageDataBase = Joi.object<FormMessageDataBase>({
21
- formId: Joi.string().trim().required(),
22
- slug: Joi.string().trim().required()
43
+ formId: Joi.string().required(),
44
+ slug: Joi.string().required()
23
45
  })
24
46
 
25
47
  export const formCreatedMessageData =
26
48
  formMessageDataBase.append<FormCreatedMessageData>({
27
- title: Joi.string().trim().required(),
28
- organisation: Joi.string().trim().required(),
29
- teamName: Joi.string().trim().required(),
30
- teamEmail: Joi.string().trim().required()
49
+ title: Joi.string().required(),
50
+ organisation: Joi.string().required(),
51
+ teamName: Joi.string().required(),
52
+ teamEmail: Joi.string().required()
31
53
  })
32
54
 
33
- export const supportEmailChanges = Joi.object<SupportEmailChanges>().keys({
34
- supportEmail: Joi.string().email().required(),
35
- responseTime: Joi.string().required()
36
- })
55
+ export const formUpdatedMessageData =
56
+ formMessageDataBase.append<FormUpdatedMessageData>({
57
+ description: Joi.string().trim().required()
58
+ })
59
+
60
+ export const formTitleChanges = Joi.object<FormTitleChanges>()
61
+ .keys({
62
+ title: Joi.string().required()
63
+ })
64
+ .required()
65
+
66
+ export const formOrganisationChanges = Joi.object<FormOrganisationChanges>()
67
+ .keys({
68
+ organisation: Joi.string().required()
69
+ })
70
+ .required()
71
+
72
+ export const formTeamNameChanges = Joi.object<FormTeamNameChanges>()
73
+ .keys({
74
+ teamName: Joi.string().required()
75
+ })
76
+ .required()
77
+
78
+ export const formTeamEmailChanges = Joi.object<FormTeamEmailChanges>()
79
+ .keys({
80
+ teamEmail: Joi.string().required()
81
+ })
82
+ .required()
83
+
84
+ export const formSupportPhoneChanges = Joi.object<FormSupportPhoneChanges>()
85
+ .keys({
86
+ phone: Joi.string().required()
87
+ })
88
+ .required()
89
+
90
+ export const formSupportOnlineChanges = Joi.object<FormSupportOnlineChanges>()
91
+ .keys({
92
+ url: Joi.string().required(),
93
+ text: Joi.string().required()
94
+ })
95
+ .required()
96
+
97
+ export const formPrivacyNoticeChanges = Joi.object<FormPrivacyNoticeChanges>()
98
+ .keys({
99
+ privacyNoticeUrl: Joi.string().required()
100
+ })
101
+ .required()
37
102
 
38
- export function supportEmailUpdatedMessageData<T>(schema: ObjectSchema<T>) {
39
- return formMessageDataBase.append<SupportEmailUpdatedMessageData>({
103
+ export const formNotificationEmailChanges =
104
+ Joi.object<FormNotificationEmailChanges>()
105
+ .keys({
106
+ notificationEmail: Joi.string().required()
107
+ })
108
+ .required()
109
+
110
+ export const formSubmissionGuidanceChanges =
111
+ Joi.object<FormSubmissionGuidanceChanges>()
112
+ .keys({
113
+ submissionGuidance: Joi.string().required()
114
+ })
115
+ .required()
116
+
117
+ export const formUploadedChanges = Joi.object<FormUploadedChanges>()
118
+ .keys({
119
+ value: Joi.string().required()
120
+ })
121
+ .required()
122
+
123
+ export const formSupportEmailChanges =
124
+ Joi.object<FormSupportEmailChanges>().keys({
125
+ address: Joi.string().email().required(),
126
+ responseTime: Joi.string().required()
127
+ })
128
+
129
+ export function formChangesMessageData<T, U extends FormMessageChangesData>(
130
+ schema: ObjectSchema<T>
131
+ ): ObjectSchema<U> {
132
+ return formMessageDataBase.append<U>({
40
133
  changes: Joi.object<ChangesMessageData<T>>().keys({
41
134
  previous: schema,
42
135
  new: schema
@@ -56,12 +149,30 @@ export const validCategories = [
56
149
 
57
150
  export const validTypes = [
58
151
  AuditEventMessageType.FORM_CREATED,
59
- AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED
152
+ AuditEventMessageType.FORM_PUBLISHED,
153
+ AuditEventMessageType.FORM_TITLE_UPDATED,
154
+ AuditEventMessageType.FORM_ORGANISATION_UPDATED,
155
+ AuditEventMessageType.FORM_TEAM_NAME_UPDATED,
156
+ AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED,
157
+ AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED,
158
+ AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED,
159
+ AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED,
160
+ AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED,
161
+ AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED,
162
+ AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED,
163
+ AuditEventMessageType.FORM_UPDATED,
164
+ AuditEventMessageType.FORM_JSON_UPLOADED,
165
+ AuditEventMessageType.FORM_JSON_DOWNLOADED,
166
+ AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE,
167
+ AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT,
168
+ AuditEventMessageType.FORM_DRAFT_DELETED,
169
+ AuditEventMessageType.FORM_MIGRATED
60
170
  ]
61
171
 
62
172
  export const validMessageSchemaVersions = [AuditEventMessageSchemaVersion.V1]
63
173
 
64
174
  export const messageSchema = Joi.object<AuditMessage>().keys({
175
+ entityId: Joi.string().required(),
65
176
  schemaVersion: Joi.string()
66
177
  .valid(...validMessageSchemaVersions)
67
178
  .required(),
@@ -77,11 +188,104 @@ export const messageSchema = Joi.object<AuditMessage>().keys({
77
188
  is: Joi.string().trim().valid(AuditEventMessageType.FORM_CREATED),
78
189
  then: formCreatedMessageData
79
190
  },
191
+ {
192
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_TITLE_UPDATED),
193
+ then: formChangesMessageData<
194
+ FormTitleChanges,
195
+ FormTitleUpdatedMessageData
196
+ >(formTitleChanges)
197
+ },
198
+ {
199
+ is: Joi.string()
200
+ .trim()
201
+ .valid(AuditEventMessageType.FORM_ORGANISATION_UPDATED),
202
+ then: formChangesMessageData<
203
+ FormOrganisationChanges,
204
+ FormOrganisationUpdatedMessageData
205
+ >(formOrganisationChanges)
206
+ },
207
+ {
208
+ is: Joi.string()
209
+ .trim()
210
+ .valid(AuditEventMessageType.FORM_TEAM_NAME_UPDATED),
211
+ then: formChangesMessageData<
212
+ FormTeamNameChanges,
213
+ FormTeamNameUpdatedMessageData
214
+ >(formTeamNameChanges)
215
+ },
216
+ {
217
+ is: Joi.string()
218
+ .trim()
219
+ .valid(AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED),
220
+ then: formChangesMessageData<
221
+ FormTeamEmailChanges,
222
+ FormTeamEmailUpdatedMessageData
223
+ >(formTeamEmailChanges)
224
+ },
225
+ {
226
+ is: Joi.string()
227
+ .trim()
228
+ .valid(AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED),
229
+ then: formChangesMessageData<
230
+ FormSupportPhoneChanges,
231
+ FormSupportPhoneUpdatedMessageData
232
+ >(formSupportPhoneChanges)
233
+ },
80
234
  {
81
235
  is: Joi.string()
82
236
  .trim()
83
237
  .valid(AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED),
84
- then: supportEmailUpdatedMessageData(supportEmailChanges)
238
+ then: formChangesMessageData<
239
+ FormSupportEmailChanges,
240
+ FormSupportEmailUpdatedMessageData
241
+ >(formSupportEmailChanges)
242
+ },
243
+ {
244
+ is: Joi.string()
245
+ .trim()
246
+ .valid(AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED),
247
+ then: formChangesMessageData<
248
+ FormSupportOnlineChanges,
249
+ FormSupportOnlineUpdatedMessageData
250
+ >(formSupportOnlineChanges)
251
+ },
252
+ {
253
+ is: Joi.string()
254
+ .trim()
255
+ .valid(AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED),
256
+ then: formChangesMessageData<
257
+ FormPrivacyNoticeChanges,
258
+ FormPrivacyNoticeUpdatedMessageData
259
+ >(formPrivacyNoticeChanges)
260
+ },
261
+ {
262
+ is: Joi.string()
263
+ .trim()
264
+ .valid(AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED),
265
+ then: formChangesMessageData<
266
+ FormNotificationEmailChanges,
267
+ FormNotificationEmailUpdatedMessageData
268
+ >(formNotificationEmailChanges)
269
+ },
270
+ {
271
+ is: Joi.string()
272
+ .trim()
273
+ .valid(AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED),
274
+ then: formChangesMessageData<
275
+ FormSubmissionGuidanceChanges,
276
+ FormSubmissionGuidanceUpdatedMessageData
277
+ >(formSubmissionGuidanceChanges)
278
+ },
279
+ {
280
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_JSON_UPLOADED),
281
+ then: formChangesMessageData<
282
+ FormUploadedChanges,
283
+ FormUploadedMessageData
284
+ >(formUploadedChanges)
285
+ },
286
+ {
287
+ is: Joi.string().trim().valid(AuditEventMessageType.FORM_UPDATED),
288
+ then: formUpdatedMessageData
85
289
  }
86
290
  ]
87
291
  }),
@@ -21,13 +21,122 @@ export interface FormCreatedMessageData extends FormMessageDataBase {
21
21
  teamEmail: string
22
22
  }
23
23
 
24
- export interface SupportEmailChanges {
25
- supportEmail: string
24
+ export interface FormTitleChanges {
25
+ title: string
26
+ }
27
+
28
+ export interface FormOrganisationChanges {
29
+ organisation: string
30
+ }
31
+
32
+ export interface FormTeamNameChanges {
33
+ teamName: string
34
+ }
35
+
36
+ export interface FormTeamEmailChanges {
37
+ teamEmail: string
38
+ }
39
+
40
+ export interface FormSupportPhoneChanges {
41
+ phone: string
42
+ }
43
+
44
+ export interface FormSupportEmailChanges {
45
+ address: string
26
46
  responseTime: string
27
47
  }
28
48
 
29
- export interface SupportEmailUpdatedMessageData extends FormMessageDataBase {
30
- changes: ChangesMessageData<SupportEmailChanges>
49
+ export interface FormSupportOnlineChanges {
50
+ url: string
51
+ text: string
52
+ }
53
+
54
+ export interface FormPrivacyNoticeChanges {
55
+ privacyNoticeUrl: string
56
+ }
57
+
58
+ export interface FormNotificationEmailChanges {
59
+ notificationEmail: string
60
+ }
61
+
62
+ export interface FormSubmissionGuidanceChanges {
63
+ submissionGuidance: string
64
+ }
65
+
66
+ export interface FormUploadedChanges {
67
+ value: string
68
+ }
69
+
70
+ export interface FormTitleUpdatedMessageData extends FormMessageDataBase {
71
+ changes: ChangesMessageData<FormTitleChanges>
72
+ }
73
+
74
+ export interface FormOrganisationUpdatedMessageData
75
+ extends FormMessageDataBase {
76
+ changes: ChangesMessageData<FormOrganisationChanges>
77
+ }
78
+
79
+ export interface FormTeamNameUpdatedMessageData extends FormMessageDataBase {
80
+ changes: ChangesMessageData<FormTeamNameChanges>
81
+ }
82
+
83
+ export interface FormTeamEmailUpdatedMessageData extends FormMessageDataBase {
84
+ changes: ChangesMessageData<FormTeamEmailChanges>
85
+ }
86
+
87
+ export interface FormSupportPhoneUpdatedMessageData
88
+ extends FormMessageDataBase {
89
+ changes: ChangesMessageData<FormSupportPhoneChanges>
90
+ }
91
+
92
+ export interface FormSupportEmailUpdatedMessageData
93
+ extends FormMessageDataBase {
94
+ changes: ChangesMessageData<FormSupportEmailChanges>
95
+ }
96
+
97
+ export interface FormSupportOnlineUpdatedMessageData
98
+ extends FormMessageDataBase {
99
+ changes: ChangesMessageData<FormSupportOnlineChanges>
100
+ }
101
+
102
+ export interface FormPrivacyNoticeUpdatedMessageData
103
+ extends FormMessageDataBase {
104
+ changes: ChangesMessageData<FormPrivacyNoticeChanges>
105
+ }
106
+
107
+ export interface FormNotificationEmailUpdatedMessageData
108
+ extends FormMessageDataBase {
109
+ changes: ChangesMessageData<FormNotificationEmailChanges>
110
+ }
111
+
112
+ export interface FormSubmissionGuidanceUpdatedMessageData
113
+ extends FormMessageDataBase {
114
+ changes: ChangesMessageData<FormSubmissionGuidanceChanges>
115
+ }
116
+
117
+ export interface FormUploadedMessageData extends FormMessageDataBase {
118
+ changes: ChangesMessageData<FormUploadedChanges>
119
+ }
120
+
121
+ export type FormMessageChangesData =
122
+ | FormTitleUpdatedMessageData
123
+ | FormOrganisationUpdatedMessageData
124
+ | FormTeamNameUpdatedMessageData
125
+ | FormTeamEmailUpdatedMessageData
126
+ | FormSupportPhoneUpdatedMessageData
127
+ | FormSupportEmailUpdatedMessageData
128
+ | FormSupportOnlineUpdatedMessageData
129
+ | FormPrivacyNoticeUpdatedMessageData
130
+ | FormNotificationEmailUpdatedMessageData
131
+ | FormSubmissionGuidanceUpdatedMessageData
132
+ | FormUploadedMessageData
133
+
134
+ export type FormMessageActivitiesData =
135
+ | FormCreatedMessageData
136
+ | FormUpdatedMessageData
137
+
138
+ export interface FormUpdatedMessageData extends FormMessageDataBase {
139
+ description: string
31
140
  }
32
141
 
33
142
  export interface AuditUser {
@@ -35,17 +144,16 @@ export interface AuditUser {
35
144
  displayName: string
36
145
  }
37
146
 
38
- export type MessageData =
39
- | FormCreatedMessageData
40
- | SupportEmailUpdatedMessageData
147
+ export type MessageData = FormMessageChangesData | FormMessageActivitiesData
41
148
 
42
149
  export interface MessageBase {
43
150
  schemaVersion: AuditEventMessageSchemaVersion
44
151
  category: AuditEventMessageCategory
45
152
  type: AuditEventMessageType
153
+ entityId: string
46
154
  createdAt: Date
47
155
  createdBy: AuditUser
48
- data: MessageData
156
+ data?: MessageData
49
157
  messageCreatedAt: Date
50
158
  }
51
159
 
@@ -55,13 +163,129 @@ export interface FormCreatedMessage extends MessageBase {
55
163
  data: FormCreatedMessageData
56
164
  }
57
165
 
166
+ export interface FormTitleUpdatedMessage extends MessageBase {
167
+ category: AuditEventMessageCategory.FORM
168
+ type: AuditEventMessageType.FORM_TITLE_UPDATED
169
+ data: FormTitleUpdatedMessageData
170
+ }
171
+
172
+ export interface FormOrganisationUpdatedMessage extends MessageBase {
173
+ category: AuditEventMessageCategory.FORM
174
+ type: AuditEventMessageType.FORM_ORGANISATION_UPDATED
175
+ data: FormOrganisationUpdatedMessageData
176
+ }
177
+
178
+ export interface FormTeamNameUpdatedMessage extends MessageBase {
179
+ category: AuditEventMessageCategory.FORM
180
+ type: AuditEventMessageType.FORM_TEAM_NAME_UPDATED
181
+ data: FormTeamNameUpdatedMessageData
182
+ }
183
+
184
+ export interface FormTeamEmailUpdatedMessage extends MessageBase {
185
+ category: AuditEventMessageCategory.FORM
186
+ type: AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED
187
+ data: FormTeamEmailUpdatedMessageData
188
+ }
189
+
190
+ export interface FormSupportPhoneUpdatedMessage extends MessageBase {
191
+ category: AuditEventMessageCategory.FORM
192
+ type: AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED
193
+ data: FormSupportPhoneUpdatedMessageData
194
+ }
195
+
58
196
  export interface FormSupportEmailUpdatedMessage extends MessageBase {
59
197
  category: AuditEventMessageCategory.FORM
60
198
  type: AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED
61
- data: SupportEmailUpdatedMessageData
199
+ data: FormSupportEmailUpdatedMessageData
62
200
  }
63
201
 
64
- export type AuditMessage = FormCreatedMessage | FormSupportEmailUpdatedMessage
202
+ export interface FormSupportOnlineUpdatedMessage extends MessageBase {
203
+ category: AuditEventMessageCategory.FORM
204
+ type: AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED
205
+ data: FormSupportOnlineUpdatedMessageData
206
+ }
207
+
208
+ export interface FormSupportPrivacyNoticeUpdatedMessage extends MessageBase {
209
+ category: AuditEventMessageCategory.FORM
210
+ type: AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED
211
+ data: FormPrivacyNoticeUpdatedMessageData
212
+ }
213
+
214
+ export interface FormSupportNotificationEmailUpdatedMessage
215
+ extends MessageBase {
216
+ category: AuditEventMessageCategory.FORM
217
+ type: AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED
218
+ data: FormNotificationEmailUpdatedMessageData
219
+ }
220
+
221
+ export interface FormSupportSubmissionGuidanceUpdatedMessage
222
+ extends MessageBase {
223
+ category: AuditEventMessageCategory.FORM
224
+ type: AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED
225
+ data: FormSubmissionGuidanceUpdatedMessageData
226
+ }
227
+
228
+ export interface FormUploadedMessage extends MessageBase {
229
+ category: AuditEventMessageCategory.FORM
230
+ type: AuditEventMessageType.FORM_JSON_UPLOADED
231
+ data: FormUploadedMessageData
232
+ }
233
+
234
+ export interface FormDownloadedMessage extends MessageBase {
235
+ category: AuditEventMessageCategory.FORM
236
+ type: AuditEventMessageType.FORM_JSON_DOWNLOADED
237
+ }
238
+
239
+ export interface FormPublishedMessage extends MessageBase {
240
+ category: AuditEventMessageCategory.FORM
241
+ type: AuditEventMessageType.FORM_PUBLISHED
242
+ }
243
+
244
+ export interface FormDraftCreatedFromLiveMessage extends MessageBase {
245
+ category: AuditEventMessageCategory.FORM
246
+ type: AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE
247
+ }
248
+
249
+ export interface FormLiveCreatedFromDraftMessage extends MessageBase {
250
+ category: AuditEventMessageCategory.FORM
251
+ type: AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT
252
+ }
253
+
254
+ export interface FormDraftDeletedMessage extends MessageBase {
255
+ category: AuditEventMessageCategory.FORM
256
+ type: AuditEventMessageType.FORM_DRAFT_DELETED
257
+ }
258
+
259
+ export interface FormMigratedMessage extends MessageBase {
260
+ category: AuditEventMessageCategory.FORM
261
+ type: AuditEventMessageType.FORM_MIGRATED
262
+ }
263
+
264
+ export interface FormUpdatedMessage extends MessageBase {
265
+ category: AuditEventMessageCategory.FORM
266
+ type: AuditEventMessageType.FORM_UPDATED
267
+ }
268
+
269
+ export type AuditMessage =
270
+ | FormCreatedMessage
271
+ | FormTitleUpdatedMessage
272
+ | FormOrganisationUpdatedMessage
273
+ | FormTeamNameUpdatedMessage
274
+ | FormTeamEmailUpdatedMessage
275
+ | FormSupportPhoneUpdatedMessage
276
+ | FormSupportEmailUpdatedMessage
277
+ | FormSupportOnlineUpdatedMessage
278
+ | FormSupportPrivacyNoticeUpdatedMessage
279
+ | FormSupportNotificationEmailUpdatedMessage
280
+ | FormSupportSubmissionGuidanceUpdatedMessage
281
+ | FormUploadedMessage
282
+ | FormDownloadedMessage
283
+ | FormPublishedMessage
284
+ | FormDraftCreatedFromLiveMessage
285
+ | FormLiveCreatedFromDraftMessage
286
+ | FormDraftDeletedMessage
287
+ | FormMigratedMessage
288
+ | FormUpdatedMessage
65
289
 
66
290
  export interface AuditEvent {
67
291
  message: AuditMessage
@@ -69,7 +293,6 @@ export interface AuditEvent {
69
293
 
70
294
  export type AuditRecord = AuditMessage & {
71
295
  messageId: string
72
- entityId: string
73
296
  recordCreatedAt: Date
74
297
  }
75
298