diff --git a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package-lock.json b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package-lock.json index 3c37d5d7d41..2ec7696c137 100644 --- a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package-lock.json +++ b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package-lock.json @@ -1,6 +1,6 @@ { "name": "altinn-app-frontend", - "version": "2.1.16", + "version": "2.1.17", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1596,9 +1596,9 @@ } }, "@types/jest": { - "version": "26.0.10", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.10.tgz", - "integrity": "sha512-i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q==", + "version": "26.0.13", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.13.tgz", + "integrity": "sha512-sCzjKow4z9LILc6DhBvn5AkIfmQzDZkgtVVKmGwVrs5tuid38ws281D4l+7x1kP487+FlKDh5kfMZ8WSPAdmdA==", "dev": true, "requires": { "jest-diff": "^25.2.1", @@ -9284,14 +9284,6 @@ "integrity": "sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q==", "dev": true }, - "json-ptr": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-1.3.2.tgz", - "integrity": "sha512-tFH40YQ+lG7mgYYM1kGZOhQngO4SbOEHZJlA4W+NtetWZ20EUU3BPU+30uWRKumuAJoSo5eqrsXD2h72ioS8ew==", - "requires": { - "tslib": "^2.0.0" - } - }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -9330,6 +9322,11 @@ "minimist": "^1.2.0" } }, + "jsonpointer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz", + "integrity": "sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==" + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -14507,7 +14504,8 @@ "tslib": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==" + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true }, "tty-browserify": { "version": "0.0.0", diff --git a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package.json b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package.json index 8879c9eb6c7..56b798b0d11 100644 --- a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package.json +++ b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/package.json @@ -1,6 +1,6 @@ { "name": "altinn-app-frontend", - "version": "2.1.16", + "version": "2.1.17", "description": "", "main": "index.js", "scripts": { @@ -31,7 +31,7 @@ "axios": "~0.20.0", "dot-object": "~2.1.3", "immutability-helper": "2.7.0", - "json-ptr": "~1.3.2", + "jsonpointer": "4.1.0", "lodash.isequal": "~4.5.0", "moment": "~2.27.0", "react": "~16.13.1", diff --git a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/databindings.ts b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/databindings.ts index da4e2a9d515..6dffa44d189 100644 --- a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/databindings.ts +++ b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/databindings.ts @@ -1,7 +1,7 @@ import { object } from 'dot-object'; import { ILayout, ILayoutGroup } from 'src/features/form/layout'; -const jsonPtr = require('json-ptr'); +const JsonPointer = require('jsonpointer'); /** * Converts the formdata in store (that is flat) to a JSON @@ -41,8 +41,8 @@ export const filterFormData = (data: any, model: any): any => { const filteredResult: any = {}; const rootKey = Object.keys(model.properties)[0]; const modelPath = model.properties[rootKey].$ref.slice(1); - const pointer = jsonPtr.create(modelPath); - const root = pointer.get(model); + const pointer = JsonPointer.compile(modelPath); + const root: any = pointer.get(model); Object.keys(data).forEach((key: string) => { const formDataKey = getKeyWithoutIndex(key); const formDataRoot = formDataKey.split('.')[0]; diff --git a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/validation.ts b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/validation.ts index dda3835dcfb..88e7af0a308 100644 --- a/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/validation.ts +++ b/src/Altinn.Apps/AppFrontend/react/altinn-app-frontend/src/utils/validation.ts @@ -1,7 +1,6 @@ import { getLanguageFromKey, getParsedLanguageFromKey } from 'altinn-shared/utils'; import moment from 'moment'; import Ajv from 'ajv'; -import { JsonPointer } from 'json-ptr'; import { IComponentValidations, IValidations, IComponentBindingValidation, ITextResource, IValidationResult, ISchemaValidator, IRepeatingGroups } from 'src/types'; import { ILayout, ILayoutComponent, ILayoutGroup } from '../features/form/layout'; import { IValidationIssue, Severity } from '../types'; @@ -13,13 +12,15 @@ import { getKeyWithoutIndex } from './databindings'; // eslint-disable-next-line import/no-cycle import { matchLayoutComponent } from './layout'; +const JsonPointer = require('jsonpointer'); + export function createValidator(schema: any): ISchemaValidator { const ajv = new Ajv({ allErrors: true, coerceTypes: true }); ajv.addFormat('year', /^[0-9]{4}$/); ajv.addSchema(schema, 'schema'); const rootKey = Object.keys(schema.properties)[0]; const rootElementPath = schema.properties[rootKey].$ref; - const rootPtr = JsonPointer.create(rootElementPath); + const rootPtr = JsonPointer.compile(rootElementPath.substr(1)); const rootElement = rootPtr.get(schema); const schemaValidator: ISchemaValidator = { validator: ajv, @@ -335,18 +336,18 @@ export function getSchemaPart(dataModelPath: string[], subSchema: any, mainSchem if (subSchema.properties && subSchema.properties[dataModelRoot] && dataModelPath && dataModelPath.length !== 0) { const localRootElement = subSchema.properties[dataModelRoot]; if (localRootElement.$ref) { - const childSchemaPtr = JsonPointer.create(localRootElement.$ref); + const childSchemaPtr = JsonPointer.compile(localRootElement.$ref.substr(1)); return getSchemaPart(dataModelPath.slice(1), childSchemaPtr.get(mainSchema), mainSchema); } if (localRootElement.items && localRootElement.items.$ref) { - const childSchemaPtr = JsonPointer.create(localRootElement.items.$ref); + const childSchemaPtr = JsonPointer.compile(localRootElement.items.$ref.substr(1)); return getSchemaPart(dataModelPath.slice(1), childSchemaPtr.get(mainSchema), mainSchema); } return localRootElement; } if (subSchema.$ref) { - const ptr = JsonPointer.create(subSchema.$ref); + const ptr = JsonPointer.compile(subSchema.$ref.substr(1)); return getSchemaPart(dataModelPath.slice(1), ptr.get(mainSchema), mainSchema); }