@defra/forms-model 3.0.511 → 3.0.513
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.
- package/dist/module/form/form-audit/base-message-schema.json +11 -0
- package/dist/module/form/form-audit/enums.js +33 -0
- package/dist/module/form/form-audit/enums.js.map +1 -0
- package/dist/module/form/form-audit/form-created-message-schema.json +28 -0
- package/dist/module/form/form-audit/index.js +2 -0
- package/dist/module/form/form-audit/index.js.map +1 -0
- package/dist/module/form/form-audit/support-email-updated.json +24 -0
- package/dist/module/form/form-audit/types.js +2 -0
- package/dist/module/form/form-audit/types.js.map +1 -0
- package/dist/module/index.js +2 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/pages/helpers.js +1 -1
- package/dist/module/pages/helpers.js.map +1 -1
- package/dist/module/pages/index.js +1 -1
- package/dist/module/pages/index.js.map +1 -1
- package/dist/types/form/form-audit/enums.d.ts +30 -0
- package/dist/types/form/form-audit/enums.d.ts.map +1 -0
- package/dist/types/form/form-audit/index.d.ts +2 -0
- package/dist/types/form/form-audit/index.d.ts.map +1 -0
- package/dist/types/form/form-audit/types.d.ts +58 -0
- package/dist/types/form/form-audit/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/pages/helpers.d.ts +1 -0
- package/dist/types/pages/helpers.d.ts.map +1 -1
- package/dist/types/pages/index.d.ts +1 -1
- package/dist/types/pages/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/form/form-audit/base-message-schema.json +11 -0
- package/src/form/form-audit/enums.ts +31 -0
- package/src/form/form-audit/form-created-message-schema.json +28 -0
- package/src/form/form-audit/index.ts +0 -0
- package/src/form/form-audit/support-email-updated.json +24 -0
- package/src/form/form-audit/types.ts +69 -0
- package/src/index.ts +3 -0
- package/src/pages/helpers.ts +1 -1
- package/src/pages/index.ts +1 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
export let AuditEventMessageCategory = /*#__PURE__*/function (AuditEventMessageCategory) {
|
2
|
+
AuditEventMessageCategory["FORM"] = "FORM";
|
3
|
+
AuditEventMessageCategory["ENTITLEMENT"] = "ENTITLEMENT";
|
4
|
+
return AuditEventMessageCategory;
|
5
|
+
}({});
|
6
|
+
export let AuditEventMessageSubCategory = /*#__PURE__*/function (AuditEventMessageSubCategory) {
|
7
|
+
AuditEventMessageSubCategory["FORM_METADATA"] = "FORM_METADATA";
|
8
|
+
AuditEventMessageSubCategory["FORM_DEFINITION"] = "FORM_DEFINITION";
|
9
|
+
AuditEventMessageSubCategory["FORM_SUBMISSION"] = "FORM_SUBMISSION";
|
10
|
+
return AuditEventMessageSubCategory;
|
11
|
+
}({});
|
12
|
+
export let AuditEventMessageType = /*#__PURE__*/function (AuditEventMessageType) {
|
13
|
+
AuditEventMessageType["FORM_CREATED"] = "FORM_CREATED";
|
14
|
+
AuditEventMessageType["FORM_PUBLISHED"] = "FORM_PUBLISHED";
|
15
|
+
AuditEventMessageType["FORM_NAME_UPDATED"] = "FORM_NAME_UPDATED";
|
16
|
+
AuditEventMessageType["FORM_ORGANISATION_UPDATED"] = "FORM_ORGANISATION_UPDATED";
|
17
|
+
AuditEventMessageType["FORM_TEAM_NAME_UPDATED"] = "FORM_TEAM_NAME_UPDATED";
|
18
|
+
AuditEventMessageType["FORM_TEAM_EMAIL_UPDATED"] = "FORM_TEAM_EMAIL_UPDATED";
|
19
|
+
AuditEventMessageType["FORM_SUPPORT_PHONE_UPDATED"] = "FORM_SUPPORT_PHONE_UPDATED";
|
20
|
+
AuditEventMessageType["FORM_SUPPORT_EMAIL_UPDATED"] = "FORM_SUPPORT_EMAIL_UPDATED";
|
21
|
+
AuditEventMessageType["FORM_SUPPORT_LINK_UPDATED"] = "FORM_SUPPORT_LINK_UPDATED";
|
22
|
+
AuditEventMessageType["FORM_PRIVACY_POLICY_LINK_UPDATED"] = "FORM_PRIVACY_POLICY_LINK_UPDATED";
|
23
|
+
AuditEventMessageType["FORM_NOTIFICATION_EMAIL_UPDATED"] = "FORM_NOTIFICATION_EMAIL_UPDATED";
|
24
|
+
AuditEventMessageType["FORM_SUBMISSION_GUIDANCE_UPDATED"] = "FORM_SUBMISSION_GUIDANCE_UPDATED";
|
25
|
+
AuditEventMessageType["FORM_JSON_UPLOADED"] = "FORM_JSON_UPLOADED";
|
26
|
+
AuditEventMessageType["FORM_JSON_DOWNLOADED"] = "FORM_JSON_DOWNLOADED";
|
27
|
+
AuditEventMessageType["FORM_DRAFT_CREATED_FROM_LIVE"] = "FORM_DRAFT_CREATED_FROM_LIVE";
|
28
|
+
AuditEventMessageType["FORM_DRAFT_DELETED"] = "FORM_DRAFT_DELETED";
|
29
|
+
AuditEventMessageType["FORM_MIGRATED"] = "FORM_MIGRATED";
|
30
|
+
AuditEventMessageType["FORM_UPDATED"] = "FORM_UPDATED";
|
31
|
+
return AuditEventMessageType;
|
32
|
+
}({});
|
33
|
+
//# sourceMappingURL=enums.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"enums.js","names":["AuditEventMessageCategory","AuditEventMessageSubCategory","AuditEventMessageType"],"sources":["../../../../src/form/form-audit/enums.ts"],"sourcesContent":["export 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,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":[]}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"schemaVersion": "string",
|
3
|
+
"category": "FORM",
|
4
|
+
"type": "FORM_CREATED",
|
5
|
+
"createdAt": "Date",
|
6
|
+
"createdBy": {
|
7
|
+
"id": "string",
|
8
|
+
"displayName": "string"
|
9
|
+
},
|
10
|
+
"data": {
|
11
|
+
"formId": "string",
|
12
|
+
"title": "string",
|
13
|
+
"organisation": "string",
|
14
|
+
"teamName": "string",
|
15
|
+
"teamEmail": "string",
|
16
|
+
"slug": "string",
|
17
|
+
"createdAt": "Date",
|
18
|
+
"createdBy": {
|
19
|
+
"id": "string",
|
20
|
+
"displayName": "string"
|
21
|
+
},
|
22
|
+
"updatedAt": "Date",
|
23
|
+
"updatedBy": {
|
24
|
+
"id": "string",
|
25
|
+
"displayName": "string"
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/form/form-audit/index.ts"],"sourcesContent":[""],"mappings":"","ignoreList":[]}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"schemaVersion": "string",
|
3
|
+
"category": "string",
|
4
|
+
"type": "string",
|
5
|
+
"createdAt": "Date",
|
6
|
+
"createdBy": {
|
7
|
+
"id": "string",
|
8
|
+
"displayName": "string"
|
9
|
+
},
|
10
|
+
"data": {
|
11
|
+
"formId": "string",
|
12
|
+
"slug": "string",
|
13
|
+
"changes": {
|
14
|
+
"previous": {
|
15
|
+
"supportEmail": "string",
|
16
|
+
"responseTime": "string"
|
17
|
+
},
|
18
|
+
"new": {
|
19
|
+
"supportEmail": "string",
|
20
|
+
"responseTime": "string"
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/form/form-audit/types.ts"],"sourcesContent":["import {\n type AuditEventMessageCategory,\n type AuditEventMessageType\n} from '~/src/form/form-audit/enums.js'\n\nexport interface FormMessageData {\n formId: string\n slug: string\n}\n\nexport interface ChangesMessageData<T> {\n previous: T\n new: T\n}\n\nexport interface FormCreatedMessageData extends FormMessageData {\n title: string\n organisation: string\n teamName: string\n teamEmail: string\n createdAt: Date\n createdBy: {\n id: string\n displayName: string\n }\n updatedAt: Date\n updatedBy: {\n id: string\n displayName: string\n }\n}\n\nexport interface SupportEmailUpdatedMessageData extends FormMessageData {\n changes: ChangesMessageData<{ supportEmail: string; responseTime: string }>\n}\n\nexport type MessageData =\n | FormCreatedMessageData\n | SupportEmailUpdatedMessageData\n\nexport interface BaseMessage {\n schemaVersion: string\n category: AuditEventMessageCategory\n type: AuditEventMessageType\n createdAt: Date\n createdBy: {\n id: string\n displayName: string\n }\n data: MessageData\n}\n\nexport interface FormCreatedMessage extends BaseMessage {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_CREATED\n data: FormCreatedMessageData\n}\n\nexport interface SupportEmailUpdatedMessage extends BaseMessage {\n category: AuditEventMessageCategory.FORM\n type: AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED\n data: SupportEmailUpdatedMessageData\n}\n\nexport type Message = FormCreatedMessage | SupportEmailUpdatedMessage\n\nexport interface AuditEvent {\n message: Message\n}\n"],"mappings":"","ignoreList":[]}
|
package/dist/module/index.js
CHANGED
@@ -18,4 +18,6 @@ export * from "./form/form-manager/errors.js";
|
|
18
18
|
export * from "./pages/index.js";
|
19
19
|
export * from "./utils/helpers.js";
|
20
20
|
export * from "./utils/markdown.js";
|
21
|
+
export * from "./form/form-audit/index.js";
|
22
|
+
export * from "./form/form-audit/enums.js";
|
21
23
|
//# sourceMappingURL=index.js.map
|
package/dist/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from '~/src/common/enums.js'\nexport * from '~/src/common/random-id.js'\nexport * from '~/src/common/schema.js'\nexport * from '~/src/common/pagination/index.js'\nexport * from '~/src/common/search/index.js'\nexport * from '~/src/common/sorting/index.js'\nexport * from '~/src/components/index.js'\nexport * from '~/src/conditions/index.js'\nexport * from '~/src/form/form-definition/index.js'\nexport * from '~/src/form/form-definition/types.js'\nexport * from '~/src/form/form-metadata/index.js'\nexport * from '~/src/form/form-submission/index.js'\nexport * from '~/src/form/utils/index.js'\nexport * from '~/src/form/form-editor/index.js'\nexport * from '~/src/form/form-editor/preview/index.js'\nexport * from '~/src/form/form-manager/types.js'\nexport * from '~/src/form/form-manager/errors.js'\nexport * from '~/src/pages/index.js'\nexport * from '~/src/utils/helpers.js'\nexport * from '~/src/utils/markdown.js'\n\nexport type * from '~/src/common/types.js'\nexport type * from '~/src/common/pagination/types.js'\nexport type * from '~/src/common/search/types.js'\nexport type * from '~/src/common/sorting/types.js'\nexport type * from '~/src/components/types.js'\nexport type * from '~/src/conditions/types.js'\nexport type * from '~/src/form/form-definition/types.js'\nexport type * from '~/src/form/form-metadata/types.js'\nexport type * from '~/src/form/form-submission/types.js'\nexport type * from '~/src/form/form-editor/preview/types.js'\nexport type * from '~/src/form/form-editor/types.js'\nexport type * from '~/src/form/form-editor/macros/types.js'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export * from '~/src/common/enums.js'\nexport * from '~/src/common/random-id.js'\nexport * from '~/src/common/schema.js'\nexport * from '~/src/common/pagination/index.js'\nexport * from '~/src/common/search/index.js'\nexport * from '~/src/common/sorting/index.js'\nexport * from '~/src/components/index.js'\nexport * from '~/src/conditions/index.js'\nexport * from '~/src/form/form-definition/index.js'\nexport * from '~/src/form/form-definition/types.js'\nexport * from '~/src/form/form-metadata/index.js'\nexport * from '~/src/form/form-submission/index.js'\nexport * from '~/src/form/utils/index.js'\nexport * from '~/src/form/form-editor/index.js'\nexport * from '~/src/form/form-editor/preview/index.js'\nexport * from '~/src/form/form-manager/types.js'\nexport * from '~/src/form/form-manager/errors.js'\nexport * from '~/src/pages/index.js'\nexport * from '~/src/utils/helpers.js'\nexport * from '~/src/utils/markdown.js'\nexport * from '~/src/form/form-audit/index.js'\nexport * from '~/src/form/form-audit/enums.js'\n\nexport type * from '~/src/common/types.js'\nexport type * from '~/src/common/pagination/types.js'\nexport type * from '~/src/common/search/types.js'\nexport type * from '~/src/common/sorting/types.js'\nexport type * from '~/src/components/types.js'\nexport type * from '~/src/conditions/types.js'\nexport type * from '~/src/form/form-definition/types.js'\nexport type * from '~/src/form/form-metadata/types.js'\nexport type * from '~/src/form/form-submission/types.js'\nexport type * from '~/src/form/form-editor/preview/types.js'\nexport type * from '~/src/form/form-editor/types.js'\nexport type * from '~/src/form/form-editor/macros/types.js'\nexport type * from '~/src/form/form-audit/types.js'\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
@@ -77,7 +77,7 @@ export function controllerNameFromPath(nameOrPath) {
|
|
77
77
|
}) => path === nameOrPath);
|
78
78
|
return options?.name;
|
79
79
|
}
|
80
|
-
function includesFileUploadField(components) {
|
80
|
+
export function includesFileUploadField(components) {
|
81
81
|
return components.some(component => component.type === ComponentType.FileUploadField);
|
82
82
|
}
|
83
83
|
const SHOW_REPEATER_CONTROLLERS = [ControllerType.Page, ControllerType.Repeat];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["ComponentType","hasFormField","ControllerNames","ControllerTypes","ControllerType","PageTypes","getPageDefaults","page","nameOrPath","controller","Page","controllerNameFromPath","defaults","find","pageType","Error","structuredClone","hasComponents","hasNext","Array","isArray","components","hasComponentsEvenIfNoNext","undefined","hasFormComponents","Start","hasRepeater","Repeat","isControllerName","map","String","includes","Terminal","FileUpload","options","path","name","includesFileUploadField","some","component","type","FileUploadField","SHOW_REPEATER_CONTROLLERS","showRepeaterSettings","omitFileUploadComponent","length","getPageTitle","title","firstComp","getPageFromDefinition","definition","pageId","pages","x","id"],"sources":["../../../src/pages/helpers.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { hasFormField } from '~/src/components/helpers.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type Link,\n type Page,\n type PageFileUpload,\n type PageQuestion,\n type PageRepeat\n} from '~/src/form/form-definition/types.js'\nimport { type FormDefinition } from '~/src/index.js'\nimport {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport { PageTypes } from '~/src/pages/page-types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getPageDefaults<PageType extends Page>(\n page?: Pick<PageType, 'controller'>\n) {\n const nameOrPath = page?.controller ?? ControllerType.Page\n const controller = controllerNameFromPath(nameOrPath)\n\n const defaults = PageTypes.find(\n (pageType) => pageType.controller === controller\n )\n\n if (!defaults) {\n throw new Error(`Defaults not found for page type '${nameOrPath}'`)\n }\n\n return structuredClone(defaults) as PageType\n}\n\n/**\n * Check page has components\n */\nexport function hasComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return hasNext(page) && Array.isArray(page.components)\n}\n\n/**\n * Check if the page has components (the page can be any page type e.g. SummaryPage)\n */\nexport function hasComponentsEvenIfNoNext(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return (\n page !== undefined && 'components' in page && Array.isArray(page.components)\n )\n}\n\n/**\n * Check page has form components\n */\nexport function hasFormComponents(\n page?: Partial<Page>\n): page is PageQuestion | PageFileUpload {\n const controller = controllerNameFromPath(page?.controller)\n return hasComponents(page) && controller !== ControllerType.Start\n}\n\n/**\n * Check page has repeater\n */\nexport function hasRepeater(page?: Partial<Page>): page is PageRepeat {\n return controllerNameFromPath(page?.controller) === ControllerType.Repeat\n}\n\n/**\n * Check for known page controller names\n */\nexport function isControllerName(\n nameOrPath?: ControllerType | string\n): nameOrPath is ControllerType {\n return !!nameOrPath && ControllerNames.map(String).includes(nameOrPath)\n}\n\n/**\n * Check page has next link\n */\nexport function hasNext(\n page?: Partial<Page>\n): page is Extract<Page, { next: Link[] }> {\n if (!page || !('next' in page)) {\n return false\n }\n\n const controller = controllerNameFromPath(page.controller)\n\n return (\n !controller ||\n controller === ControllerType.Start ||\n controller === ControllerType.Page ||\n controller === ControllerType.Terminal ||\n controller === ControllerType.FileUpload ||\n controller === ControllerType.Repeat\n )\n}\n\n/**\n * Check and optionally replace legacy path with controller name\n * @param {string} [nameOrPath] - Controller name or legacy controller path\n */\nexport function controllerNameFromPath(nameOrPath?: ControllerType | string) {\n if (isControllerName(nameOrPath)) {\n return nameOrPath\n }\n\n const options = ControllerTypes.find(({ path }) => path === nameOrPath)\n return options?.name\n}\n\
|
1
|
+
{"version":3,"file":"helpers.js","names":["ComponentType","hasFormField","ControllerNames","ControllerTypes","ControllerType","PageTypes","getPageDefaults","page","nameOrPath","controller","Page","controllerNameFromPath","defaults","find","pageType","Error","structuredClone","hasComponents","hasNext","Array","isArray","components","hasComponentsEvenIfNoNext","undefined","hasFormComponents","Start","hasRepeater","Repeat","isControllerName","map","String","includes","Terminal","FileUpload","options","path","name","includesFileUploadField","some","component","type","FileUploadField","SHOW_REPEATER_CONTROLLERS","showRepeaterSettings","omitFileUploadComponent","length","getPageTitle","title","firstComp","getPageFromDefinition","definition","pageId","pages","x","id"],"sources":["../../../src/pages/helpers.ts"],"sourcesContent":["import { ComponentType } from '~/src/components/enums.js'\nimport { hasFormField } from '~/src/components/helpers.js'\nimport { type ComponentDef } from '~/src/components/types.js'\nimport {\n type Link,\n type Page,\n type PageFileUpload,\n type PageQuestion,\n type PageRepeat\n} from '~/src/form/form-definition/types.js'\nimport { type FormDefinition } from '~/src/index.js'\nimport {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\nimport { ControllerType } from '~/src/pages/enums.js'\nimport { PageTypes } from '~/src/pages/page-types.js'\n\n/**\n * Return component defaults by type\n */\nexport function getPageDefaults<PageType extends Page>(\n page?: Pick<PageType, 'controller'>\n) {\n const nameOrPath = page?.controller ?? ControllerType.Page\n const controller = controllerNameFromPath(nameOrPath)\n\n const defaults = PageTypes.find(\n (pageType) => pageType.controller === controller\n )\n\n if (!defaults) {\n throw new Error(`Defaults not found for page type '${nameOrPath}'`)\n }\n\n return structuredClone(defaults) as PageType\n}\n\n/**\n * Check page has components\n */\nexport function hasComponents(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return hasNext(page) && Array.isArray(page.components)\n}\n\n/**\n * Check if the page has components (the page can be any page type e.g. SummaryPage)\n */\nexport function hasComponentsEvenIfNoNext(\n page?: Partial<Page>\n): page is Extract<Page, { components: ComponentDef[] }> {\n return (\n page !== undefined && 'components' in page && Array.isArray(page.components)\n )\n}\n\n/**\n * Check page has form components\n */\nexport function hasFormComponents(\n page?: Partial<Page>\n): page is PageQuestion | PageFileUpload {\n const controller = controllerNameFromPath(page?.controller)\n return hasComponents(page) && controller !== ControllerType.Start\n}\n\n/**\n * Check page has repeater\n */\nexport function hasRepeater(page?: Partial<Page>): page is PageRepeat {\n return controllerNameFromPath(page?.controller) === ControllerType.Repeat\n}\n\n/**\n * Check for known page controller names\n */\nexport function isControllerName(\n nameOrPath?: ControllerType | string\n): nameOrPath is ControllerType {\n return !!nameOrPath && ControllerNames.map(String).includes(nameOrPath)\n}\n\n/**\n * Check page has next link\n */\nexport function hasNext(\n page?: Partial<Page>\n): page is Extract<Page, { next: Link[] }> {\n if (!page || !('next' in page)) {\n return false\n }\n\n const controller = controllerNameFromPath(page.controller)\n\n return (\n !controller ||\n controller === ControllerType.Start ||\n controller === ControllerType.Page ||\n controller === ControllerType.Terminal ||\n controller === ControllerType.FileUpload ||\n controller === ControllerType.Repeat\n )\n}\n\n/**\n * Check and optionally replace legacy path with controller name\n * @param {string} [nameOrPath] - Controller name or legacy controller path\n */\nexport function controllerNameFromPath(nameOrPath?: ControllerType | string) {\n if (isControllerName(nameOrPath)) {\n return nameOrPath\n }\n\n const options = ControllerTypes.find(({ path }) => path === nameOrPath)\n return options?.name\n}\n\nexport function includesFileUploadField(components: ComponentDef[]): boolean {\n return components.some(\n (component) => component.type === ComponentType.FileUploadField\n )\n}\n\nconst SHOW_REPEATER_CONTROLLERS = [ControllerType.Page, ControllerType.Repeat]\n\nexport function showRepeaterSettings(page: Page): boolean {\n if (page.controller && !SHOW_REPEATER_CONTROLLERS.includes(page.controller)) {\n return false\n }\n if (hasComponents(page) && includesFileUploadField(page.components)) {\n return false\n }\n return true\n}\n\n/**\n * High level check for whether file upload component should be omitted\n * @param { Page | undefined } page\n * @returns {boolean}\n */\nexport function omitFileUploadComponent(page: Page | undefined): boolean {\n if (page?.controller === ControllerType.Repeat) {\n return true\n }\n if (!hasComponents(page)) {\n return false\n }\n if (page.components.length > 1) {\n return true\n }\n if (includesFileUploadField(page.components)) {\n return true\n }\n return false\n}\n\n/**\n * Gets page title, or title of first question (if no page title set)\n * @param {Page} page\n * @returns {string}\n */\nexport function getPageTitle(page: Page) {\n if (page.title !== '') {\n return page.title\n }\n\n if (hasComponentsEvenIfNoNext(page)) {\n const firstComp = page.components.find(hasFormField)\n if (firstComp) {\n return firstComp.title\n }\n }\n return 'Page title unknown'\n}\n\n/**\n *\n * @param {FormDefinition} definition\n * @param {string} pageId\n * @returns { Page | undefined }\n */\nexport function getPageFromDefinition(\n definition: FormDefinition,\n pageId: string\n): Page | undefined {\n return definition.pages.find((x) => x.id === pageId)\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export { ControllerNames, ControllerTypes } from "./controller-types.js";
|
2
2
|
export { PageTypes } from "./page-types.js";
|
3
|
-
export { controllerNameFromPath, getPageDefaults, getPageFromDefinition, getPageTitle, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, isControllerName, omitFileUploadComponent, showRepeaterSettings } from "./helpers.js";
|
3
|
+
export { controllerNameFromPath, getPageDefaults, getPageFromDefinition, getPageTitle, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, includesFileUploadField, isControllerName, omitFileUploadComponent, showRepeaterSettings } from "./helpers.js";
|
4
4
|
export { ControllerPath, ControllerType } from "./enums.js";
|
5
5
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["ControllerNames","ControllerTypes","PageTypes","controllerNameFromPath","getPageDefaults","getPageFromDefinition","getPageTitle","hasComponents","hasComponentsEvenIfNoNext","hasFormComponents","hasNext","hasRepeater","isControllerName","omitFileUploadComponent","showRepeaterSettings","ControllerPath","ControllerType"],"sources":["../../../src/pages/index.ts"],"sourcesContent":["export {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\n\nexport { PageTypes } from '~/src/pages/page-types.js'\n\nexport {\n controllerNameFromPath,\n getPageDefaults,\n getPageFromDefinition,\n getPageTitle,\n hasComponents,\n hasComponentsEvenIfNoNext,\n hasFormComponents,\n hasNext,\n hasRepeater,\n isControllerName,\n omitFileUploadComponent,\n showRepeaterSettings\n} from '~/src/pages/helpers.js'\n\nexport { ControllerPath, ControllerType } from '~/src/pages/enums.js'\n"],"mappings":"AAAA,SACEA,eAAe,EACfC,eAAe;AAGjB,SAASC,SAAS;AAElB,SACEC,sBAAsB,EACtBC,eAAe,EACfC,qBAAqB,EACrBC,YAAY,EACZC,aAAa,EACbC,yBAAyB,EACzBC,iBAAiB,EACjBC,OAAO,EACPC,WAAW,EACXC,gBAAgB,EAChBC,uBAAuB,EACvBC,oBAAoB;AAGtB,SAASC,cAAc,EAAEC,cAAc","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["ControllerNames","ControllerTypes","PageTypes","controllerNameFromPath","getPageDefaults","getPageFromDefinition","getPageTitle","hasComponents","hasComponentsEvenIfNoNext","hasFormComponents","hasNext","hasRepeater","includesFileUploadField","isControllerName","omitFileUploadComponent","showRepeaterSettings","ControllerPath","ControllerType"],"sources":["../../../src/pages/index.ts"],"sourcesContent":["export {\n ControllerNames,\n ControllerTypes\n} from '~/src/pages/controller-types.js'\n\nexport { PageTypes } from '~/src/pages/page-types.js'\n\nexport {\n controllerNameFromPath,\n getPageDefaults,\n getPageFromDefinition,\n getPageTitle,\n hasComponents,\n hasComponentsEvenIfNoNext,\n hasFormComponents,\n hasNext,\n hasRepeater,\n includesFileUploadField,\n isControllerName,\n omitFileUploadComponent,\n showRepeaterSettings\n} from '~/src/pages/helpers.js'\n\nexport { ControllerPath, ControllerType } from '~/src/pages/enums.js'\n"],"mappings":"AAAA,SACEA,eAAe,EACfC,eAAe;AAGjB,SAASC,SAAS;AAElB,SACEC,sBAAsB,EACtBC,eAAe,EACfC,qBAAqB,EACrBC,YAAY,EACZC,aAAa,EACbC,yBAAyB,EACzBC,iBAAiB,EACjBC,OAAO,EACPC,WAAW,EACXC,uBAAuB,EACvBC,gBAAgB,EAChBC,uBAAuB,EACvBC,oBAAoB;AAGtB,SAASC,cAAc,EAAEC,cAAc","ignoreList":[]}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
export declare enum AuditEventMessageCategory {
|
2
|
+
FORM = "FORM",
|
3
|
+
ENTITLEMENT = "ENTITLEMENT"
|
4
|
+
}
|
5
|
+
export declare enum AuditEventMessageSubCategory {
|
6
|
+
FORM_METADATA = "FORM_METADATA",
|
7
|
+
FORM_DEFINITION = "FORM_DEFINITION",
|
8
|
+
FORM_SUBMISSION = "FORM_SUBMISSION"
|
9
|
+
}
|
10
|
+
export declare enum AuditEventMessageType {
|
11
|
+
FORM_CREATED = "FORM_CREATED",
|
12
|
+
FORM_PUBLISHED = "FORM_PUBLISHED",
|
13
|
+
FORM_NAME_UPDATED = "FORM_NAME_UPDATED",
|
14
|
+
FORM_ORGANISATION_UPDATED = "FORM_ORGANISATION_UPDATED",
|
15
|
+
FORM_TEAM_NAME_UPDATED = "FORM_TEAM_NAME_UPDATED",
|
16
|
+
FORM_TEAM_EMAIL_UPDATED = "FORM_TEAM_EMAIL_UPDATED",
|
17
|
+
FORM_SUPPORT_PHONE_UPDATED = "FORM_SUPPORT_PHONE_UPDATED",
|
18
|
+
FORM_SUPPORT_EMAIL_UPDATED = "FORM_SUPPORT_EMAIL_UPDATED",
|
19
|
+
FORM_SUPPORT_LINK_UPDATED = "FORM_SUPPORT_LINK_UPDATED",
|
20
|
+
FORM_PRIVACY_POLICY_LINK_UPDATED = "FORM_PRIVACY_POLICY_LINK_UPDATED",
|
21
|
+
FORM_NOTIFICATION_EMAIL_UPDATED = "FORM_NOTIFICATION_EMAIL_UPDATED",
|
22
|
+
FORM_SUBMISSION_GUIDANCE_UPDATED = "FORM_SUBMISSION_GUIDANCE_UPDATED",
|
23
|
+
FORM_JSON_UPLOADED = "FORM_JSON_UPLOADED",
|
24
|
+
FORM_JSON_DOWNLOADED = "FORM_JSON_DOWNLOADED",
|
25
|
+
FORM_DRAFT_CREATED_FROM_LIVE = "FORM_DRAFT_CREATED_FROM_LIVE",
|
26
|
+
FORM_DRAFT_DELETED = "FORM_DRAFT_DELETED",
|
27
|
+
FORM_MIGRATED = "FORM_MIGRATED",
|
28
|
+
FORM_UPDATED = "FORM_UPDATED"
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=enums.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/enums.ts"],"names":[],"mappings":"AAAA,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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/form/form-audit/index.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
import { type AuditEventMessageCategory, type AuditEventMessageType } from '../../form/form-audit/enums.js';
|
2
|
+
export interface FormMessageData {
|
3
|
+
formId: string;
|
4
|
+
slug: string;
|
5
|
+
}
|
6
|
+
export interface ChangesMessageData<T> {
|
7
|
+
previous: T;
|
8
|
+
new: T;
|
9
|
+
}
|
10
|
+
export interface FormCreatedMessageData extends FormMessageData {
|
11
|
+
title: string;
|
12
|
+
organisation: string;
|
13
|
+
teamName: string;
|
14
|
+
teamEmail: string;
|
15
|
+
createdAt: Date;
|
16
|
+
createdBy: {
|
17
|
+
id: string;
|
18
|
+
displayName: string;
|
19
|
+
};
|
20
|
+
updatedAt: Date;
|
21
|
+
updatedBy: {
|
22
|
+
id: string;
|
23
|
+
displayName: string;
|
24
|
+
};
|
25
|
+
}
|
26
|
+
export interface SupportEmailUpdatedMessageData extends FormMessageData {
|
27
|
+
changes: ChangesMessageData<{
|
28
|
+
supportEmail: string;
|
29
|
+
responseTime: string;
|
30
|
+
}>;
|
31
|
+
}
|
32
|
+
export type MessageData = FormCreatedMessageData | SupportEmailUpdatedMessageData;
|
33
|
+
export interface BaseMessage {
|
34
|
+
schemaVersion: string;
|
35
|
+
category: AuditEventMessageCategory;
|
36
|
+
type: AuditEventMessageType;
|
37
|
+
createdAt: Date;
|
38
|
+
createdBy: {
|
39
|
+
id: string;
|
40
|
+
displayName: string;
|
41
|
+
};
|
42
|
+
data: MessageData;
|
43
|
+
}
|
44
|
+
export interface FormCreatedMessage extends BaseMessage {
|
45
|
+
category: AuditEventMessageCategory.FORM;
|
46
|
+
type: AuditEventMessageType.FORM_CREATED;
|
47
|
+
data: FormCreatedMessageData;
|
48
|
+
}
|
49
|
+
export interface SupportEmailUpdatedMessage extends BaseMessage {
|
50
|
+
category: AuditEventMessageCategory.FORM;
|
51
|
+
type: AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED;
|
52
|
+
data: SupportEmailUpdatedMessageData;
|
53
|
+
}
|
54
|
+
export type Message = FormCreatedMessage | SupportEmailUpdatedMessage;
|
55
|
+
export interface AuditEvent {
|
56
|
+
message: Message;
|
57
|
+
}
|
58
|
+
//# sourceMappingURL=types.d.ts.map
|
@@ -0,0 +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,qBAAqB,EAC3B,MAAM,gCAAgC,CAAA;AAEvC,MAAM,WAAW,eAAe;IAC9B,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,eAAe;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAED,MAAM,WAAW,8BAA+B,SAAQ,eAAe;IACrE,OAAO,EAAE,kBAAkB,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5E;AAED,MAAM,MAAM,WAAW,GACnB,sBAAsB,GACtB,8BAA8B,CAAA;AAElC,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,yBAAyB,CAAA;IACnC,IAAI,EAAE,qBAAqB,CAAA;IAC3B,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAA;QACV,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,IAAI,EAAE,WAAW,CAAA;CAClB;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,0BAA2B,SAAQ,WAAW;IAC7D,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAA;IACxC,IAAI,EAAE,qBAAqB,CAAC,0BAA0B,CAAA;IACtD,IAAI,EAAE,8BAA8B,CAAA;CACrC;AAED,MAAM,MAAM,OAAO,GAAG,kBAAkB,GAAG,0BAA0B,CAAA;AAErE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;CACjB"}
|
package/dist/types/index.d.ts
CHANGED
@@ -18,6 +18,8 @@ export * from './form/form-manager/errors.js';
|
|
18
18
|
export * from './pages/index.js';
|
19
19
|
export * from './utils/helpers.js';
|
20
20
|
export * from './utils/markdown.js';
|
21
|
+
export * from './form/form-audit/index.js';
|
22
|
+
export * from './form/form-audit/enums.js';
|
21
23
|
export type * from './common/types.js';
|
22
24
|
export type * from './common/pagination/types.js';
|
23
25
|
export type * from './common/search/types.js';
|
@@ -30,4 +32,5 @@ export type * from './form/form-submission/types.js';
|
|
30
32
|
export type * from './form/form-editor/preview/types.js';
|
31
33
|
export type * from './form/form-editor/types.js';
|
32
34
|
export type * from './form/form-editor/macros/types.js';
|
35
|
+
export type * from './form/form-audit/types.js';
|
33
36
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA;AACnD,cAAc,qCAAqC,CAAA;AACnD,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,2BAA2B,CAAA;AACzC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AACjD,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAE9C,mBAAmB,uBAAuB,CAAA;AAC1C,mBAAmB,kCAAkC,CAAA;AACrD,mBAAmB,8BAA8B,CAAA;AACjD,mBAAmB,+BAA+B,CAAA;AAClD,mBAAmB,2BAA2B,CAAA;AAC9C,mBAAmB,2BAA2B,CAAA;AAC9C,mBAAmB,qCAAqC,CAAA;AACxD,mBAAmB,mCAAmC,CAAA;AACtD,mBAAmB,qCAAqC,CAAA;AACxD,mBAAmB,yCAAyC,CAAA;AAC5D,mBAAmB,iCAAiC,CAAA;AACpD,mBAAmB,wCAAwC,CAAA;AAC3D,mBAAmB,gCAAgC,CAAA"}
|
@@ -41,6 +41,7 @@ export declare function hasNext(page?: Partial<Page>): page is Extract<Page, {
|
|
41
41
|
* @param {string} [nameOrPath] - Controller name or legacy controller path
|
42
42
|
*/
|
43
43
|
export declare function controllerNameFromPath(nameOrPath?: ControllerType | string): ControllerType | undefined;
|
44
|
+
export declare function includesFileUploadField(components: ComponentDef[]): boolean;
|
44
45
|
export declare function showRepeaterSettings(page: Page): boolean;
|
45
46
|
/**
|
46
47
|
* High level check for whether file upload component should be omitted
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,IAAI,EACnD,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAaC,QAAQ,CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAIvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,YAAY,GAAG,cAAc,CAGvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,GACnC,UAAU,IAAI,cAAc,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAezC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,8BAO1E;
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/pages/helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EACL,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,SAAS,IAAI,EACnD,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAaC,QAAQ,CAC7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAIvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,YAAY,GAAG,cAAc,CAGvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,UAAU,CAEpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,GACnC,UAAU,IAAI,cAAc,CAE9B;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GACnB,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAezC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,8BAO1E;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAI3E;AAID,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAcvE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,UAYtC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,MAAM,GACb,IAAI,GAAG,SAAS,CAElB"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
export { ControllerNames, ControllerTypes } from '../pages/controller-types.js';
|
2
2
|
export { PageTypes } from '../pages/page-types.js';
|
3
|
-
export { controllerNameFromPath, getPageDefaults, getPageFromDefinition, getPageTitle, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, isControllerName, omitFileUploadComponent, showRepeaterSettings } from '../pages/helpers.js';
|
3
|
+
export { controllerNameFromPath, getPageDefaults, getPageFromDefinition, getPageTitle, hasComponents, hasComponentsEvenIfNoNext, hasFormComponents, hasNext, hasRepeater, includesFileUploadField, isControllerName, omitFileUploadComponent, showRepeaterSettings } from '../pages/helpers.js';
|
4
4
|
export { ControllerPath, ControllerType } from '../pages/enums.js';
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAChB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EAChB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
|
package/package.json
CHANGED
@@ -0,0 +1,31 @@
|
|
1
|
+
export enum AuditEventMessageCategory {
|
2
|
+
FORM = 'FORM',
|
3
|
+
ENTITLEMENT = 'ENTITLEMENT'
|
4
|
+
}
|
5
|
+
|
6
|
+
export enum AuditEventMessageSubCategory {
|
7
|
+
FORM_METADATA = 'FORM_METADATA',
|
8
|
+
FORM_DEFINITION = 'FORM_DEFINITION',
|
9
|
+
FORM_SUBMISSION = 'FORM_SUBMISSION'
|
10
|
+
}
|
11
|
+
|
12
|
+
export enum AuditEventMessageType {
|
13
|
+
FORM_CREATED = 'FORM_CREATED',
|
14
|
+
FORM_PUBLISHED = 'FORM_PUBLISHED',
|
15
|
+
FORM_NAME_UPDATED = 'FORM_NAME_UPDATED',
|
16
|
+
FORM_ORGANISATION_UPDATED = 'FORM_ORGANISATION_UPDATED',
|
17
|
+
FORM_TEAM_NAME_UPDATED = 'FORM_TEAM_NAME_UPDATED',
|
18
|
+
FORM_TEAM_EMAIL_UPDATED = 'FORM_TEAM_EMAIL_UPDATED',
|
19
|
+
FORM_SUPPORT_PHONE_UPDATED = 'FORM_SUPPORT_PHONE_UPDATED',
|
20
|
+
FORM_SUPPORT_EMAIL_UPDATED = 'FORM_SUPPORT_EMAIL_UPDATED',
|
21
|
+
FORM_SUPPORT_LINK_UPDATED = 'FORM_SUPPORT_LINK_UPDATED',
|
22
|
+
FORM_PRIVACY_POLICY_LINK_UPDATED = 'FORM_PRIVACY_POLICY_LINK_UPDATED',
|
23
|
+
FORM_NOTIFICATION_EMAIL_UPDATED = 'FORM_NOTIFICATION_EMAIL_UPDATED',
|
24
|
+
FORM_SUBMISSION_GUIDANCE_UPDATED = 'FORM_SUBMISSION_GUIDANCE_UPDATED',
|
25
|
+
FORM_JSON_UPLOADED = 'FORM_JSON_UPLOADED',
|
26
|
+
FORM_JSON_DOWNLOADED = 'FORM_JSON_DOWNLOADED',
|
27
|
+
FORM_DRAFT_CREATED_FROM_LIVE = 'FORM_DRAFT_CREATED_FROM_LIVE',
|
28
|
+
FORM_DRAFT_DELETED = 'FORM_DRAFT_DELETED',
|
29
|
+
FORM_MIGRATED = 'FORM_MIGRATED',
|
30
|
+
FORM_UPDATED = 'FORM_UPDATED'
|
31
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"schemaVersion": "string",
|
3
|
+
"category": "FORM",
|
4
|
+
"type": "FORM_CREATED",
|
5
|
+
"createdAt": "Date",
|
6
|
+
"createdBy": {
|
7
|
+
"id": "string",
|
8
|
+
"displayName": "string"
|
9
|
+
},
|
10
|
+
"data": {
|
11
|
+
"formId": "string",
|
12
|
+
"title": "string",
|
13
|
+
"organisation": "string",
|
14
|
+
"teamName": "string",
|
15
|
+
"teamEmail": "string",
|
16
|
+
"slug": "string",
|
17
|
+
"createdAt": "Date",
|
18
|
+
"createdBy": {
|
19
|
+
"id": "string",
|
20
|
+
"displayName": "string"
|
21
|
+
},
|
22
|
+
"updatedAt": "Date",
|
23
|
+
"updatedBy": {
|
24
|
+
"id": "string",
|
25
|
+
"displayName": "string"
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"schemaVersion": "string",
|
3
|
+
"category": "string",
|
4
|
+
"type": "string",
|
5
|
+
"createdAt": "Date",
|
6
|
+
"createdBy": {
|
7
|
+
"id": "string",
|
8
|
+
"displayName": "string"
|
9
|
+
},
|
10
|
+
"data": {
|
11
|
+
"formId": "string",
|
12
|
+
"slug": "string",
|
13
|
+
"changes": {
|
14
|
+
"previous": {
|
15
|
+
"supportEmail": "string",
|
16
|
+
"responseTime": "string"
|
17
|
+
},
|
18
|
+
"new": {
|
19
|
+
"supportEmail": "string",
|
20
|
+
"responseTime": "string"
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import {
|
2
|
+
type AuditEventMessageCategory,
|
3
|
+
type AuditEventMessageType
|
4
|
+
} from '~/src/form/form-audit/enums.js'
|
5
|
+
|
6
|
+
export interface FormMessageData {
|
7
|
+
formId: string
|
8
|
+
slug: string
|
9
|
+
}
|
10
|
+
|
11
|
+
export interface ChangesMessageData<T> {
|
12
|
+
previous: T
|
13
|
+
new: T
|
14
|
+
}
|
15
|
+
|
16
|
+
export interface FormCreatedMessageData extends FormMessageData {
|
17
|
+
title: string
|
18
|
+
organisation: string
|
19
|
+
teamName: string
|
20
|
+
teamEmail: string
|
21
|
+
createdAt: Date
|
22
|
+
createdBy: {
|
23
|
+
id: string
|
24
|
+
displayName: string
|
25
|
+
}
|
26
|
+
updatedAt: Date
|
27
|
+
updatedBy: {
|
28
|
+
id: string
|
29
|
+
displayName: string
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
export interface SupportEmailUpdatedMessageData extends FormMessageData {
|
34
|
+
changes: ChangesMessageData<{ supportEmail: string; responseTime: string }>
|
35
|
+
}
|
36
|
+
|
37
|
+
export type MessageData =
|
38
|
+
| FormCreatedMessageData
|
39
|
+
| SupportEmailUpdatedMessageData
|
40
|
+
|
41
|
+
export interface BaseMessage {
|
42
|
+
schemaVersion: string
|
43
|
+
category: AuditEventMessageCategory
|
44
|
+
type: AuditEventMessageType
|
45
|
+
createdAt: Date
|
46
|
+
createdBy: {
|
47
|
+
id: string
|
48
|
+
displayName: string
|
49
|
+
}
|
50
|
+
data: MessageData
|
51
|
+
}
|
52
|
+
|
53
|
+
export interface FormCreatedMessage extends BaseMessage {
|
54
|
+
category: AuditEventMessageCategory.FORM
|
55
|
+
type: AuditEventMessageType.FORM_CREATED
|
56
|
+
data: FormCreatedMessageData
|
57
|
+
}
|
58
|
+
|
59
|
+
export interface SupportEmailUpdatedMessage extends BaseMessage {
|
60
|
+
category: AuditEventMessageCategory.FORM
|
61
|
+
type: AuditEventMessageType.FORM_SUPPORT_EMAIL_UPDATED
|
62
|
+
data: SupportEmailUpdatedMessageData
|
63
|
+
}
|
64
|
+
|
65
|
+
export type Message = FormCreatedMessage | SupportEmailUpdatedMessage
|
66
|
+
|
67
|
+
export interface AuditEvent {
|
68
|
+
message: Message
|
69
|
+
}
|
package/src/index.ts
CHANGED
@@ -18,6 +18,8 @@ export * from '~/src/form/form-manager/errors.js'
|
|
18
18
|
export * from '~/src/pages/index.js'
|
19
19
|
export * from '~/src/utils/helpers.js'
|
20
20
|
export * from '~/src/utils/markdown.js'
|
21
|
+
export * from '~/src/form/form-audit/index.js'
|
22
|
+
export * from '~/src/form/form-audit/enums.js'
|
21
23
|
|
22
24
|
export type * from '~/src/common/types.js'
|
23
25
|
export type * from '~/src/common/pagination/types.js'
|
@@ -31,3 +33,4 @@ export type * from '~/src/form/form-submission/types.js'
|
|
31
33
|
export type * from '~/src/form/form-editor/preview/types.js'
|
32
34
|
export type * from '~/src/form/form-editor/types.js'
|
33
35
|
export type * from '~/src/form/form-editor/macros/types.js'
|
36
|
+
export type * from '~/src/form/form-audit/types.js'
|
package/src/pages/helpers.ts
CHANGED
@@ -117,7 +117,7 @@ export function controllerNameFromPath(nameOrPath?: ControllerType | string) {
|
|
117
117
|
return options?.name
|
118
118
|
}
|
119
119
|
|
120
|
-
function includesFileUploadField(components: ComponentDef[]): boolean {
|
120
|
+
export function includesFileUploadField(components: ComponentDef[]): boolean {
|
121
121
|
return components.some(
|
122
122
|
(component) => component.type === ComponentType.FileUploadField
|
123
123
|
)
|