@defra/forms-engine-plugin 4.0.40 → 4.0.41

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.
@@ -1,6 +1,5 @@
1
1
  import { categoriseData } from "../machine/v2.js";
2
2
  import { FormAdapterSubmissionSchemaVersion } from "../../types/enums.js";
3
- import { FormStatus } from "../../../../routes/types.js";
4
3
  export function format(context, items, model, submitResponse, formStatus, formMetadata) {
5
4
  const csvFiles = extractCsvFiles(submitResponse);
6
5
  const {
@@ -15,7 +14,7 @@ export function format(context, items, model, submitResponse, formStatus, formMe
15
14
  formName: model.name,
16
15
  formId: formMetadata?.id ?? '',
17
16
  formSlug: formMetadata?.slug ?? '',
18
- status: formStatus.isPreview ? FormStatus.Draft : FormStatus.Live,
17
+ status: formStatus.state,
19
18
  isPreview: formStatus.isPreview,
20
19
  notificationEmail: formMetadata?.notificationEmail ?? ''
21
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"v1.js","names":["categoriseData","FormAdapterSubmissionSchemaVersion","FormStatus","format","context","items","model","submitResponse","formStatus","formMetadata","csvFiles","extractCsvFiles","main","v2Main","v2Data","versionMetadata","getVersionMetadata","submittedVersionNumber","meta","schemaVersion","V1","timestamp","Date","referenceNumber","formName","name","formId","id","formSlug","slug","status","isPreview","Draft","Live","notificationEmail","Object","fromEntries","entries","map","key","value","undefined","data","result","files","payload","JSON","stringify","versions","length","submittedVersion","find","v","versionNumber","createdAt","firstVersion","repeaters"],"sources":["../../../../../../src/server/plugins/engine/outputFormatters/adapter/v1.ts"],"sourcesContent":["import {\n type FormMetadata,\n type SubmitResponsePayload\n} from '@defra/forms-model'\n\nimport { type checkFormStatus } from '~/src/server/plugins/engine/helpers.js'\nimport { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'\nimport { type DetailItem } from '~/src/server/plugins/engine/models/types.js'\nimport { categoriseData } from '~/src/server/plugins/engine/outputFormatters/machine/v2.js'\nimport { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/enums.js'\nimport {\n type FormAdapterSubmissionMessageData,\n type FormAdapterSubmissionMessageMeta,\n type FormAdapterSubmissionMessagePayload,\n type FormAdapterSubmissionMessageResult,\n type FormContext\n} from '~/src/server/plugins/engine/types.js'\nimport { FormStatus } from '~/src/server/routes/types.js'\n\nexport function format(\n context: FormContext,\n items: DetailItem[],\n model: FormModel,\n submitResponse: SubmitResponsePayload,\n formStatus: ReturnType<typeof checkFormStatus>,\n formMetadata?: FormMetadata\n): string {\n const csvFiles = extractCsvFiles(submitResponse)\n\n const { main: v2Main, ...v2Data } = categoriseData(items)\n\n const versionMetadata = getVersionMetadata(\n context.submittedVersionNumber,\n formMetadata\n )\n\n const meta: FormAdapterSubmissionMessageMeta = {\n schemaVersion: FormAdapterSubmissionSchemaVersion.V1,\n timestamp: new Date(),\n referenceNumber: context.referenceNumber,\n formName: model.name,\n formId: formMetadata?.id ?? '',\n formSlug: formMetadata?.slug ?? '',\n status: formStatus.isPreview ? FormStatus.Draft : FormStatus.Live,\n isPreview: formStatus.isPreview,\n notificationEmail: formMetadata?.notificationEmail ?? ''\n }\n\n if (versionMetadata) {\n meta.versionMetadata = versionMetadata\n }\n\n const main = Object.fromEntries(\n Object.entries(v2Main).map(([key, value]) => {\n if (value === undefined) {\n return [key, null]\n }\n\n return [key, value]\n })\n )\n\n const data: FormAdapterSubmissionMessageData = {\n main,\n ...v2Data\n }\n\n const result: FormAdapterSubmissionMessageResult = {\n files: csvFiles\n }\n\n const payload: FormAdapterSubmissionMessagePayload = {\n meta,\n data,\n result\n }\n\n return JSON.stringify(payload)\n}\n\nexport function getVersionMetadata(\n submittedVersionNumber: number | undefined,\n formMetadata?: FormMetadata\n): { versionNumber: number; createdAt: Date } | undefined {\n if (!formMetadata?.versions?.length) {\n return undefined\n }\n\n if (submittedVersionNumber !== undefined) {\n const submittedVersion = formMetadata.versions.find(\n (v) => v.versionNumber === submittedVersionNumber\n )\n if (submittedVersion) {\n return {\n versionNumber: submittedVersion.versionNumber,\n createdAt: submittedVersion.createdAt\n }\n }\n }\n\n // fallback to first available version\n const firstVersion = formMetadata.versions[0]\n return {\n versionNumber: firstVersion.versionNumber,\n createdAt: firstVersion.createdAt\n }\n}\n\nfunction extractCsvFiles(\n submitResponse: SubmitResponsePayload\n): FormAdapterSubmissionMessageResult['files'] {\n const result =\n submitResponse.result as Partial<FormAdapterSubmissionMessageResult>\n\n return {\n main: result.files?.main ?? '',\n repeaters: result.files?.repeaters ?? {}\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"v1.js","names":["categoriseData","FormAdapterSubmissionSchemaVersion","format","context","items","model","submitResponse","formStatus","formMetadata","csvFiles","extractCsvFiles","main","v2Main","v2Data","versionMetadata","getVersionMetadata","submittedVersionNumber","meta","schemaVersion","V1","timestamp","Date","referenceNumber","formName","name","formId","id","formSlug","slug","status","state","isPreview","notificationEmail","Object","fromEntries","entries","map","key","value","undefined","data","result","files","payload","JSON","stringify","versions","length","submittedVersion","find","v","versionNumber","createdAt","firstVersion","repeaters"],"sources":["../../../../../../src/server/plugins/engine/outputFormatters/adapter/v1.ts"],"sourcesContent":["import {\n type FormMetadata,\n type SubmitResponsePayload\n} from '@defra/forms-model'\n\nimport { type checkFormStatus } from '~/src/server/plugins/engine/helpers.js'\nimport { type FormModel } from '~/src/server/plugins/engine/models/FormModel.js'\nimport { type DetailItem } from '~/src/server/plugins/engine/models/types.js'\nimport { categoriseData } from '~/src/server/plugins/engine/outputFormatters/machine/v2.js'\nimport { FormAdapterSubmissionSchemaVersion } from '~/src/server/plugins/engine/types/enums.js'\nimport {\n type FormAdapterSubmissionMessageData,\n type FormAdapterSubmissionMessageMeta,\n type FormAdapterSubmissionMessagePayload,\n type FormAdapterSubmissionMessageResult,\n type FormContext\n} from '~/src/server/plugins/engine/types.js'\n\nexport function format(\n context: FormContext,\n items: DetailItem[],\n model: FormModel,\n submitResponse: SubmitResponsePayload,\n formStatus: ReturnType<typeof checkFormStatus>,\n formMetadata?: FormMetadata\n): string {\n const csvFiles = extractCsvFiles(submitResponse)\n\n const { main: v2Main, ...v2Data } = categoriseData(items)\n\n const versionMetadata = getVersionMetadata(\n context.submittedVersionNumber,\n formMetadata\n )\n\n const meta: FormAdapterSubmissionMessageMeta = {\n schemaVersion: FormAdapterSubmissionSchemaVersion.V1,\n timestamp: new Date(),\n referenceNumber: context.referenceNumber,\n formName: model.name,\n formId: formMetadata?.id ?? '',\n formSlug: formMetadata?.slug ?? '',\n status: formStatus.state,\n isPreview: formStatus.isPreview,\n notificationEmail: formMetadata?.notificationEmail ?? ''\n }\n\n if (versionMetadata) {\n meta.versionMetadata = versionMetadata\n }\n\n const main = Object.fromEntries(\n Object.entries(v2Main).map(([key, value]) => {\n if (value === undefined) {\n return [key, null]\n }\n\n return [key, value]\n })\n )\n\n const data: FormAdapterSubmissionMessageData = {\n main,\n ...v2Data\n }\n\n const result: FormAdapterSubmissionMessageResult = {\n files: csvFiles\n }\n\n const payload: FormAdapterSubmissionMessagePayload = {\n meta,\n data,\n result\n }\n\n return JSON.stringify(payload)\n}\n\nexport function getVersionMetadata(\n submittedVersionNumber: number | undefined,\n formMetadata?: FormMetadata\n): { versionNumber: number; createdAt: Date } | undefined {\n if (!formMetadata?.versions?.length) {\n return undefined\n }\n\n if (submittedVersionNumber !== undefined) {\n const submittedVersion = formMetadata.versions.find(\n (v) => v.versionNumber === submittedVersionNumber\n )\n if (submittedVersion) {\n return {\n versionNumber: submittedVersion.versionNumber,\n createdAt: submittedVersion.createdAt\n }\n }\n }\n\n // fallback to first available version\n const firstVersion = formMetadata.versions[0]\n return {\n versionNumber: firstVersion.versionNumber,\n createdAt: firstVersion.createdAt\n }\n}\n\nfunction extractCsvFiles(\n submitResponse: SubmitResponsePayload\n): FormAdapterSubmissionMessageResult['files'] {\n const result =\n submitResponse.result as Partial<FormAdapterSubmissionMessageResult>\n\n return {\n main: result.files?.main ?? '',\n repeaters: result.files?.repeaters ?? {}\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-engine-plugin",
3
- "version": "4.0.40",
3
+ "version": "4.0.41",
4
4
  "description": "Defra forms engine",
5
5
  "type": "module",
6
6
  "files": [
@@ -427,7 +427,7 @@ describe('Adapter v1 formatter', () => {
427
427
  {
428
428
  isPreview: true,
429
429
  state: FormStatus.Live,
430
- expectedStatus: FormStatus.Draft
430
+ expectedStatus: FormStatus.Live
431
431
  }
432
432
  ]
433
433
 
@@ -15,7 +15,6 @@ import {
15
15
  type FormAdapterSubmissionMessageResult,
16
16
  type FormContext
17
17
  } from '~/src/server/plugins/engine/types.js'
18
- import { FormStatus } from '~/src/server/routes/types.js'
19
18
 
20
19
  export function format(
21
20
  context: FormContext,
@@ -41,7 +40,7 @@ export function format(
41
40
  formName: model.name,
42
41
  formId: formMetadata?.id ?? '',
43
42
  formSlug: formMetadata?.slug ?? '',
44
- status: formStatus.isPreview ? FormStatus.Draft : FormStatus.Live,
43
+ status: formStatus.state,
45
44
  isPreview: formStatus.isPreview,
46
45
  notificationEmail: formMetadata?.notificationEmail ?? ''
47
46
  }