@defra/forms-model 3.0.604 → 3.0.605

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.
@@ -53,7 +53,7 @@ export const fieldConfigs = {
53
53
  * Support contact field configurations for change detection.
54
54
  * Used when checking FORM_SUPPORT_CONTACT_UPDATED events.
55
55
  */
56
- export const supportContactFields = [createSupportContactField('phone number', 'phone'), createSupportContactField('email address', 'email.address'), createSupportContactField('online contact link', 'online.url')];
56
+ export const supportContactFields = [createSupportContactField('phone number', 'phone'), createSupportContactField('email address', 'email.address'), createSupportContactField('email response time', 'email.responseTime'), createSupportContactField('online contact link', 'online.url'), createSupportContactField('online contact text', 'online.text')];
57
57
 
58
58
  /**
59
59
  * Event types that are always considered valid (don't need change comparison).
@@ -64,9 +64,9 @@ export const alwaysValidEvents = new Set([AuditEventMessageType.FORM_CREATED, Au
64
64
  /**
65
65
  * Type guard to check if an audit record is consolidated.
66
66
  * @param record - The audit record to check
67
- * @returns True if the record has consolidation metadata
67
+ * @returns True if the record has consolidation metadata with count > 1
68
68
  */
69
69
  export function isConsolidatedRecord(record) {
70
- return 'consolidatedCount' in record && record.consolidatedCount > 1;
70
+ return 'consolidatedCount' in record && typeof record.consolidatedCount === 'number' && record.consolidatedCount > 1;
71
71
  }
72
72
  //# sourceMappingURL=consolidation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consolidation.js","names":["AuditEventMessageType","createFieldConfig","label","verb","fieldName","prevPath","newPath","createSupportContactField","contactPath","fieldConfigs","FORM_TITLE_UPDATED","FORM_ORGANISATION_UPDATED","FORM_TEAM_NAME_UPDATED","FORM_TEAM_EMAIL_UPDATED","FORM_NOTIFICATION_EMAIL_UPDATED","FORM_PRIVACY_NOTICE_UPDATED","FORM_SUBMISSION_GUIDANCE_UPDATED","FORM_SUPPORT_PHONE_UPDATED","FORM_SUPPORT_EMAIL_UPDATED","FORM_SUPPORT_ONLINE_UPDATED","supportContactFields","alwaysValidEvents","Set","FORM_CREATED","FORM_UPDATED","FORM_LIVE_CREATED_FROM_DRAFT","FORM_DRAFT_CREATED_FROM_LIVE","FORM_DRAFT_DELETED","FORM_MIGRATED","FORM_JSON_UPLOADED","FORM_JSON_DOWNLOADED","FORM_SUBMISSION_EXCEL_REQUESTED","FORM_CSAT_EXCEL_REQUESTED","isConsolidatedRecord","record","consolidatedCount"],"sources":["../../../../src/form/form-audit/consolidation.ts"],"sourcesContent":["import { AuditEventMessageType } from '~/src/form/form-audit/enums.js'\nimport {\n type AuditRecord,\n type ConsolidatedAuditRecord\n} from '~/src/form/form-audit/types.js'\n\n/**\n * Field configuration for audit events with change tracking.\n * Used by change detection logic to compare previous and new values.\n */\nexport interface FieldConfig {\n label: string\n verb: 'Updated' | 'Changed'\n prevPath: string\n newPath: string\n}\n\n/**\n * Support contact field configuration for change detection.\n */\nexport interface SupportContactFieldConfig {\n label: string\n prevPath: string\n newPath: string\n}\n\n/**\n * Creates a field configuration for audit events.\n */\nfunction createFieldConfig(\n label: string,\n verb: 'Updated' | 'Changed',\n fieldName: string\n): FieldConfig {\n return {\n label,\n verb,\n prevPath: `changes.previous.${fieldName}`,\n newPath: `changes.new.${fieldName}`\n }\n}\n\n/**\n * Creates a support contact field configuration.\n */\nfunction createSupportContactField(\n label: string,\n contactPath: string\n): SupportContactFieldConfig {\n return {\n label,\n prevPath: `changes.previous.contact.${contactPath}`,\n newPath: `changes.new.contact.${contactPath}`\n }\n}\n\n/**\n * Field configurations for audit events with change tracking.\n * Maps event types to their data paths and display labels.\n */\nexport const fieldConfigs: Record<string, FieldConfig> = {\n [AuditEventMessageType.FORM_TITLE_UPDATED]: createFieldConfig(\n 'the form name',\n 'Updated',\n 'title'\n ),\n [AuditEventMessageType.FORM_ORGANISATION_UPDATED]: createFieldConfig(\n 'the lead organisation',\n 'Changed',\n 'organisation'\n ),\n [AuditEventMessageType.FORM_TEAM_NAME_UPDATED]: createFieldConfig(\n 'the team name',\n 'Changed',\n 'teamName'\n ),\n [AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED]: createFieldConfig(\n 'the shared team address',\n 'Updated',\n 'teamEmail'\n ),\n [AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED]: createFieldConfig(\n 'where submitted forms are sent',\n 'Updated',\n 'notificationEmail'\n ),\n [AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED]: createFieldConfig(\n 'the privacy notice link',\n 'Updated',\n 'privacyNoticeUrl'\n ),\n [AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED]: createFieldConfig(\n 'the next steps guidance',\n 'Updated',\n 'submissionGuidance'\n ),\n [AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED]: createFieldConfig(\n 'the support phone number',\n 'Updated',\n 'phone'\n ),\n [AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED]: createFieldConfig(\n 'the support email address',\n 'Updated',\n 'address'\n ),\n [AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED]: createFieldConfig(\n 'the support contact link',\n 'Updated',\n 'url'\n )\n}\n\n/**\n * Support contact field configurations for change detection.\n * Used when checking FORM_SUPPORT_CONTACT_UPDATED events.\n */\nexport const supportContactFields: SupportContactFieldConfig[] = [\n createSupportContactField('phone number', 'phone'),\n createSupportContactField('email address', 'email.address'),\n createSupportContactField('online contact link', 'online.url')\n]\n\n/**\n * Event types that are always considered valid (don't need change comparison).\n * These events represent actions rather than field updates.\n */\nexport const alwaysValidEvents = new Set<string>([\n AuditEventMessageType.FORM_CREATED,\n AuditEventMessageType.FORM_UPDATED,\n AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT,\n AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE,\n AuditEventMessageType.FORM_DRAFT_DELETED,\n AuditEventMessageType.FORM_MIGRATED,\n AuditEventMessageType.FORM_JSON_UPLOADED,\n AuditEventMessageType.FORM_JSON_DOWNLOADED,\n AuditEventMessageType.FORM_SUBMISSION_EXCEL_REQUESTED,\n AuditEventMessageType.FORM_CSAT_EXCEL_REQUESTED\n])\n\n/**\n * Type guard to check if an audit record is consolidated.\n * @param record - The audit record to check\n * @returns True if the record has consolidation metadata\n */\nexport function isConsolidatedRecord(\n record: AuditRecord | ConsolidatedAuditRecord\n): record is ConsolidatedAuditRecord {\n return 'consolidatedCount' in record && record.consolidatedCount > 1\n}\n"],"mappings":"AAAA,SAASA,qBAAqB;;AAM9B;AACA;AACA;AACA;;AAQA;AACA;AACA;;AAOA;AACA;AACA;AACA,SAASC,iBAAiBA,CACxBC,KAAa,EACbC,IAA2B,EAC3BC,SAAiB,EACJ;EACb,OAAO;IACLF,KAAK;IACLC,IAAI;IACJE,QAAQ,EAAE,oBAAoBD,SAAS,EAAE;IACzCE,OAAO,EAAE,eAAeF,SAAS;EACnC,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASG,yBAAyBA,CAChCL,KAAa,EACbM,WAAmB,EACQ;EAC3B,OAAO;IACLN,KAAK;IACLG,QAAQ,EAAE,4BAA4BG,WAAW,EAAE;IACnDF,OAAO,EAAE,uBAAuBE,WAAW;EAC7C,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAyC,GAAG;EACvD,CAACT,qBAAqB,CAACU,kBAAkB,GAAGT,iBAAiB,CAC3D,eAAe,EACf,SAAS,EACT,OACF,CAAC;EACD,CAACD,qBAAqB,CAACW,yBAAyB,GAAGV,iBAAiB,CAClE,uBAAuB,EACvB,SAAS,EACT,cACF,CAAC;EACD,CAACD,qBAAqB,CAACY,sBAAsB,GAAGX,iBAAiB,CAC/D,eAAe,EACf,SAAS,EACT,UACF,CAAC;EACD,CAACD,qBAAqB,CAACa,uBAAuB,GAAGZ,iBAAiB,CAChE,yBAAyB,EACzB,SAAS,EACT,WACF,CAAC;EACD,CAACD,qBAAqB,CAACc,+BAA+B,GAAGb,iBAAiB,CACxE,gCAAgC,EAChC,SAAS,EACT,mBACF,CAAC;EACD,CAACD,qBAAqB,CAACe,2BAA2B,GAAGd,iBAAiB,CACpE,yBAAyB,EACzB,SAAS,EACT,kBACF,CAAC;EACD,CAACD,qBAAqB,CAACgB,gCAAgC,GAAGf,iBAAiB,CACzE,yBAAyB,EACzB,SAAS,EACT,oBACF,CAAC;EACD,CAACD,qBAAqB,CAACiB,0BAA0B,GAAGhB,iBAAiB,CACnE,0BAA0B,EAC1B,SAAS,EACT,OACF,CAAC;EACD,CAACD,qBAAqB,CAACkB,0BAA0B,GAAGjB,iBAAiB,CACnE,2BAA2B,EAC3B,SAAS,EACT,SACF,CAAC;EACD,CAACD,qBAAqB,CAACmB,2BAA2B,GAAGlB,iBAAiB,CACpE,0BAA0B,EAC1B,SAAS,EACT,KACF;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMmB,oBAAiD,GAAG,CAC/Db,yBAAyB,CAAC,cAAc,EAAE,OAAO,CAAC,EAClDA,yBAAyB,CAAC,eAAe,EAAE,eAAe,CAAC,EAC3DA,yBAAyB,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAC/D;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMc,iBAAiB,GAAG,IAAIC,GAAG,CAAS,CAC/CtB,qBAAqB,CAACuB,YAAY,EAClCvB,qBAAqB,CAACwB,YAAY,EAClCxB,qBAAqB,CAACyB,4BAA4B,EAClDzB,qBAAqB,CAAC0B,4BAA4B,EAClD1B,qBAAqB,CAAC2B,kBAAkB,EACxC3B,qBAAqB,CAAC4B,aAAa,EACnC5B,qBAAqB,CAAC6B,kBAAkB,EACxC7B,qBAAqB,CAAC8B,oBAAoB,EAC1C9B,qBAAqB,CAAC+B,+BAA+B,EACrD/B,qBAAqB,CAACgC,yBAAyB,CAChD,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAClCC,MAA6C,EACV;EACnC,OAAO,mBAAmB,IAAIA,MAAM,IAAIA,MAAM,CAACC,iBAAiB,GAAG,CAAC;AACtE","ignoreList":[]}
1
+ {"version":3,"file":"consolidation.js","names":["AuditEventMessageType","createFieldConfig","label","verb","fieldName","prevPath","newPath","createSupportContactField","contactPath","fieldConfigs","FORM_TITLE_UPDATED","FORM_ORGANISATION_UPDATED","FORM_TEAM_NAME_UPDATED","FORM_TEAM_EMAIL_UPDATED","FORM_NOTIFICATION_EMAIL_UPDATED","FORM_PRIVACY_NOTICE_UPDATED","FORM_SUBMISSION_GUIDANCE_UPDATED","FORM_SUPPORT_PHONE_UPDATED","FORM_SUPPORT_EMAIL_UPDATED","FORM_SUPPORT_ONLINE_UPDATED","supportContactFields","alwaysValidEvents","Set","FORM_CREATED","FORM_UPDATED","FORM_LIVE_CREATED_FROM_DRAFT","FORM_DRAFT_CREATED_FROM_LIVE","FORM_DRAFT_DELETED","FORM_MIGRATED","FORM_JSON_UPLOADED","FORM_JSON_DOWNLOADED","FORM_SUBMISSION_EXCEL_REQUESTED","FORM_CSAT_EXCEL_REQUESTED","isConsolidatedRecord","record","consolidatedCount"],"sources":["../../../../src/form/form-audit/consolidation.ts"],"sourcesContent":["import { AuditEventMessageType } from '~/src/form/form-audit/enums.js'\nimport {\n type AuditRecord,\n type ConsolidatedAuditRecord\n} from '~/src/form/form-audit/types.js'\n\n/**\n * Field configuration for audit events with change tracking.\n * Used by change detection logic to compare previous and new values.\n */\nexport interface FieldConfig {\n label: string\n verb: 'Updated' | 'Changed'\n prevPath: string\n newPath: string\n}\n\n/**\n * Support contact field configuration for change detection.\n */\nexport interface SupportContactFieldConfig {\n label: string\n prevPath: string\n newPath: string\n}\n\n/**\n * Creates a field configuration for audit events.\n */\nfunction createFieldConfig(\n label: string,\n verb: 'Updated' | 'Changed',\n fieldName: string\n): FieldConfig {\n return {\n label,\n verb,\n prevPath: `changes.previous.${fieldName}`,\n newPath: `changes.new.${fieldName}`\n }\n}\n\n/**\n * Creates a support contact field configuration.\n */\nfunction createSupportContactField(\n label: string,\n contactPath: string\n): SupportContactFieldConfig {\n return {\n label,\n prevPath: `changes.previous.contact.${contactPath}`,\n newPath: `changes.new.contact.${contactPath}`\n }\n}\n\n/**\n * Field configurations for audit events with change tracking.\n * Maps event types to their data paths and display labels.\n */\nexport const fieldConfigs: Record<string, FieldConfig> = {\n [AuditEventMessageType.FORM_TITLE_UPDATED]: createFieldConfig(\n 'the form name',\n 'Updated',\n 'title'\n ),\n [AuditEventMessageType.FORM_ORGANISATION_UPDATED]: createFieldConfig(\n 'the lead organisation',\n 'Changed',\n 'organisation'\n ),\n [AuditEventMessageType.FORM_TEAM_NAME_UPDATED]: createFieldConfig(\n 'the team name',\n 'Changed',\n 'teamName'\n ),\n [AuditEventMessageType.FORM_TEAM_EMAIL_UPDATED]: createFieldConfig(\n 'the shared team address',\n 'Updated',\n 'teamEmail'\n ),\n [AuditEventMessageType.FORM_NOTIFICATION_EMAIL_UPDATED]: createFieldConfig(\n 'where submitted forms are sent',\n 'Updated',\n 'notificationEmail'\n ),\n [AuditEventMessageType.FORM_PRIVACY_NOTICE_UPDATED]: createFieldConfig(\n 'the privacy notice link',\n 'Updated',\n 'privacyNoticeUrl'\n ),\n [AuditEventMessageType.FORM_SUBMISSION_GUIDANCE_UPDATED]: createFieldConfig(\n 'the next steps guidance',\n 'Updated',\n 'submissionGuidance'\n ),\n [AuditEventMessageType.FORM_SUPPORT_PHONE_UPDATED]: createFieldConfig(\n 'the support phone number',\n 'Updated',\n 'phone'\n ),\n [AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED]: createFieldConfig(\n 'the support email address',\n 'Updated',\n 'address'\n ),\n [AuditEventMessageType.FORM_SUPPORT_ONLINE_UPDATED]: createFieldConfig(\n 'the support contact link',\n 'Updated',\n 'url'\n )\n}\n\n/**\n * Support contact field configurations for change detection.\n * Used when checking FORM_SUPPORT_CONTACT_UPDATED events.\n */\nexport const supportContactFields: SupportContactFieldConfig[] = [\n createSupportContactField('phone number', 'phone'),\n createSupportContactField('email address', 'email.address'),\n createSupportContactField('email response time', 'email.responseTime'),\n createSupportContactField('online contact link', 'online.url'),\n createSupportContactField('online contact text', 'online.text')\n]\n\n/**\n * Event types that are always considered valid (don't need change comparison).\n * These events represent actions rather than field updates.\n */\nexport const alwaysValidEvents = new Set<string>([\n AuditEventMessageType.FORM_CREATED,\n AuditEventMessageType.FORM_UPDATED,\n AuditEventMessageType.FORM_LIVE_CREATED_FROM_DRAFT,\n AuditEventMessageType.FORM_DRAFT_CREATED_FROM_LIVE,\n AuditEventMessageType.FORM_DRAFT_DELETED,\n AuditEventMessageType.FORM_MIGRATED,\n AuditEventMessageType.FORM_JSON_UPLOADED,\n AuditEventMessageType.FORM_JSON_DOWNLOADED,\n AuditEventMessageType.FORM_SUBMISSION_EXCEL_REQUESTED,\n AuditEventMessageType.FORM_CSAT_EXCEL_REQUESTED\n])\n\n/**\n * Type guard to check if an audit record is consolidated.\n * @param record - The audit record to check\n * @returns True if the record has consolidation metadata with count > 1\n */\nexport function isConsolidatedRecord(\n record: AuditRecord | ConsolidatedAuditRecord\n): record is ConsolidatedAuditRecord {\n return (\n 'consolidatedCount' in record &&\n typeof record.consolidatedCount === 'number' &&\n record.consolidatedCount > 1\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -35,7 +35,7 @@ export declare const alwaysValidEvents: Set<string>;
35
35
  /**
36
36
  * Type guard to check if an audit record is consolidated.
37
37
  * @param record - The audit record to check
38
- * @returns True if the record has consolidation metadata
38
+ * @returns True if the record has consolidation metadata with count > 1
39
39
  */
40
40
  export declare function isConsolidatedRecord(record: AuditRecord | ConsolidatedAuditRecord): record is ConsolidatedAuditRecord;
41
41
  //# sourceMappingURL=consolidation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/consolidation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAA;AAEvC;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAgCD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAmDpD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,yBAAyB,EAI3D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAW5B,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,GAAG,uBAAuB,GAC5C,MAAM,IAAI,uBAAuB,CAEnC"}
1
+ {"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/consolidation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAA;AAEvC;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB;AAgCD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAmDpD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,yBAAyB,EAM3D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,aAW5B,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,GAAG,uBAAuB,GAC5C,MAAM,IAAI,uBAAuB,CAMnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.604",
3
+ "version": "3.0.605",
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",
@@ -118,7 +118,9 @@ export const fieldConfigs: Record<string, FieldConfig> = {
118
118
  export const supportContactFields: SupportContactFieldConfig[] = [
119
119
  createSupportContactField('phone number', 'phone'),
120
120
  createSupportContactField('email address', 'email.address'),
121
- createSupportContactField('online contact link', 'online.url')
121
+ createSupportContactField('email response time', 'email.responseTime'),
122
+ createSupportContactField('online contact link', 'online.url'),
123
+ createSupportContactField('online contact text', 'online.text')
122
124
  ]
123
125
 
124
126
  /**
@@ -141,10 +143,14 @@ export const alwaysValidEvents = new Set<string>([
141
143
  /**
142
144
  * Type guard to check if an audit record is consolidated.
143
145
  * @param record - The audit record to check
144
- * @returns True if the record has consolidation metadata
146
+ * @returns True if the record has consolidation metadata with count > 1
145
147
  */
146
148
  export function isConsolidatedRecord(
147
149
  record: AuditRecord | ConsolidatedAuditRecord
148
150
  ): record is ConsolidatedAuditRecord {
149
- return 'consolidatedCount' in record && record.consolidatedCount > 1
151
+ return (
152
+ 'consolidatedCount' in record &&
153
+ typeof record.consolidatedCount === 'number' &&
154
+ record.consolidatedCount > 1
155
+ )
150
156
  }