diff --git a/package-lock.json b/package-lock.json index ea633b364..5878cee6d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@typescript-eslint/parser": "8.58.2", "copyfiles": "^2.4.1", "cross-env": "^7.0.3", - "esbuild": "^0.28.0", + "esbuild": "^0.28.1", "eslint": "8.57.1", "eslint-config-airbnb-base": "15.0.0", "eslint-config-prettier": "8.5.0", @@ -289,9 +289,9 @@ } }, "node_modules/@azure/identity": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.0.tgz", - "integrity": "sha512-uWC0fssc+hs1TGGVkkghiaFkkS7NkTxfnCH+Hdg+yTehTpMcehpok4PgUKKdyCH+9ldu6FhiHRv84Ntqj1vVcw==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.1.tgz", + "integrity": "sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==", "dev": true, "license": "MIT", "dependencies": { @@ -302,8 +302,8 @@ "@azure/core-tracing": "^1.0.0", "@azure/core-util": "^1.11.0", "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^4.2.0", - "@azure/msal-node": "^3.5.0", + "@azure/msal-browser": "^5.5.0", + "@azure/msal-node": "^5.1.0", "open": "^10.1.0", "tslib": "^2.2.0" }, @@ -402,22 +402,22 @@ } }, "node_modules/@azure/msal-browser": { - "version": "4.29.1", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.29.1.tgz", - "integrity": "sha512-1Vrt27du1cl4QHkzLc6L4aeXqliPIDIs5l/1I4hWWMXkXccY/EznJT1+pBdoVze0azTAI8sCyq5B4cBVYG1t9w==", + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.16.0.tgz", + "integrity": "sha512-Wc75FGnQgYpsm5jsOqn1H8AXsh8vXruA6vwip1nhjrJxwby7juxKAIVLr7csepmHiwdZGr6EwI5BlSc3PizEtQ==", "dev": true, "license": "MIT", "dependencies": { - "@azure/msal-common": "15.16.1" + "@azure/msal-common": "16.11.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/@azure/msal-common": { - "version": "15.16.1", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.16.1.tgz", - "integrity": "sha512-qxUG9TCl+TVSSX58onVDHDWrvT5CE0+NeeUAbkQqaESpSm79u5IePLnPWMMjCUnUR2zJd4+Bt9vioVRzLmJb2g==", + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.11.0.tgz", + "integrity": "sha512-UikJOtMwkFpZNzTH6Dqk8UTUPbow15zH3e0UjGYZy69lYENW/S05gMLhbxI2eonz66uALhIljvhsSMEb6+O30g==", "dev": true, "license": "MIT", "engines": { @@ -425,28 +425,27 @@ } }, "node_modules/@azure/msal-node": { - "version": "3.8.9", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-3.8.9.tgz", - "integrity": "sha512-jZ0pw/BbdEUWGhomCaAiVDfXRI/9K56m5hTNqB/CzcbZEYhXm5qpK1cDngN1iXfwSfmUMorOUQ2FC0dyuQ9uRg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.3.1.tgz", + "integrity": "sha512-sqqv3L1UOI4KDXonNtbxPYUgbSWVXqxvmmb6BUw9n4P/UXgG+cVur3dLWQN4Cz7qQ+UJROCCxMXlksm7gIq0Sw==", "dev": true, "license": "MIT", "dependencies": { - "@azure/msal-common": "15.16.1", - "jsonwebtoken": "^9.0.0", - "uuid": "^8.3.0" + "@azure/msal-common": "16.11.0", + "jsonwebtoken": "^9.0.0" }, "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -455,9 +454,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", "dev": true, "license": "MIT", "engines": { @@ -465,21 +464,21 @@ } }, "node_modules/@babel/core": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", - "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -506,14 +505,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -523,14 +522,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -550,9 +549,9 @@ } }, "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "dev": true, "license": "MIT", "engines": { @@ -560,29 +559,29 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -602,9 +601,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", "engines": { @@ -612,9 +611,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "dev": true, "license": "MIT", "engines": { @@ -622,9 +621,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", "dev": true, "license": "MIT", "engines": { @@ -632,27 +631,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", - "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", - "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -901,33 +900,33 @@ } }, "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", "debug": "^4.3.1" }, "engines": { @@ -935,14 +934,14 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1174,9 +1173,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", - "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", + "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", "cpu": [ "ppc64" ], @@ -1191,9 +1190,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", - "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", + "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", "cpu": [ "arm" ], @@ -1208,9 +1207,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", - "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", + "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", "cpu": [ "arm64" ], @@ -1225,9 +1224,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", - "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", + "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", "cpu": [ "x64" ], @@ -1242,9 +1241,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", - "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", + "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", "cpu": [ "arm64" ], @@ -1259,9 +1258,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", - "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", + "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", "cpu": [ "x64" ], @@ -1276,9 +1275,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", - "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", + "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", "cpu": [ "arm64" ], @@ -1293,9 +1292,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", - "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", + "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", "cpu": [ "x64" ], @@ -1310,9 +1309,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", - "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", + "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", "cpu": [ "arm" ], @@ -1327,9 +1326,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", - "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", + "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", "cpu": [ "arm64" ], @@ -1344,9 +1343,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", - "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", + "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", "cpu": [ "ia32" ], @@ -1361,9 +1360,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", - "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", + "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", "cpu": [ "loong64" ], @@ -1378,9 +1377,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", - "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", + "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", "cpu": [ "mips64el" ], @@ -1395,9 +1394,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", - "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", + "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", "cpu": [ "ppc64" ], @@ -1412,9 +1411,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", - "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", + "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", "cpu": [ "riscv64" ], @@ -1429,9 +1428,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", - "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", + "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", "cpu": [ "s390x" ], @@ -1446,9 +1445,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", - "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", + "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", "cpu": [ "x64" ], @@ -1463,9 +1462,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", - "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", + "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", "cpu": [ "arm64" ], @@ -1480,9 +1479,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", - "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", + "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", "cpu": [ "x64" ], @@ -1497,9 +1496,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", - "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", + "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", "cpu": [ "arm64" ], @@ -1514,9 +1513,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", - "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", + "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", "cpu": [ "x64" ], @@ -1531,9 +1530,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", - "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", + "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", "cpu": [ "arm64" ], @@ -1548,9 +1547,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", - "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", + "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", "cpu": [ "x64" ], @@ -1565,9 +1564,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", - "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", + "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", "cpu": [ "arm64" ], @@ -1582,9 +1581,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", - "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", + "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", "cpu": [ "ia32" ], @@ -1599,9 +1598,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", - "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", + "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", "cpu": [ "x64" ], @@ -1676,9 +1675,9 @@ "license": "MIT" }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -1801,9 +1800,9 @@ "license": "MIT" }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -2377,9 +2376,9 @@ } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz", + "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==", "dev": true, "license": "MIT", "dependencies": { @@ -2679,9 +2678,9 @@ "license": "MIT" }, "node_modules/@jest/reporters/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -3625,16 +3624,16 @@ } }, "node_modules/@nx/devkit": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-22.6.5.tgz", - "integrity": "sha512-9kvAI+kk2pfEXLqS8OyjI9XvWmp+Gdn7jPfxDAz8BOqxMyPy3p5hYl+jc4TIsLOWunAFl8azqrcYsHzEpaWCIA==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-22.7.6.tgz", + "integrity": "sha512-EXY+3o1Y6dmg49Wte3cfjsV8jR//1XJ+HVYWF7zarbsbhcrjtuh1eYDrhOkAiVbLMhOfkpf/PfGwBr5yL+6kPQ==", "dev": true, "license": "MIT", "dependencies": { "@zkochan/js-yaml": "0.0.7", "ejs": "5.0.1", "enquirer": "~2.3.6", - "minimatch": "10.2.4", + "minimatch": "10.2.5", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" @@ -3644,9 +3643,9 @@ } }, "node_modules/@nx/nx-darwin-arm64": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-22.6.5.tgz", - "integrity": "sha512-qT77Omkg5xQuL2+pDbneX2tI+XW5ZeayMylu7UUgK8OhTrAkJLKjpuYRH4xT5XBipxbDtlxmO3aLS3Ib1pKzJQ==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-22.7.6.tgz", + "integrity": "sha512-FBKG9Tqrl8H0A4oIekVTJNNq+tRMrkyF0fLBV4Cpi9Hm1ejA8dl5gpEG/o5V7MwiClVddDwtXp1ymdCa2qSoyg==", "cpu": [ "arm64" ], @@ -3658,9 +3657,9 @@ ] }, "node_modules/@nx/nx-darwin-x64": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-22.6.5.tgz", - "integrity": "sha512-9jICxb7vfJ56y/7Yuh3b/n1QJqWxO9xnXKYEs6SO8xPoW/KomVckILGc1C6RQSs6/3ixVJC7k1Dh1wm5tKPFrg==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-22.7.6.tgz", + "integrity": "sha512-IpXL2NYYBDj9k+7u6jEdKpWOqPGZNBpGcW+LyY3l5qoyaa0lq3gzZrDNae9XP2dmGwnUn1kD9OTgq9kmkcK3Bg==", "cpu": [ "x64" ], @@ -3672,9 +3671,9 @@ ] }, "node_modules/@nx/nx-freebsd-x64": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-22.6.5.tgz", - "integrity": "sha512-6B1wEKpqz5dI3AGMqttAVnA6M3DB/besAtuGyQiymK9ROlta1iuWgCcIYwcCQyhLn2Rx7vqj447KKcgCa8HlVw==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-22.7.6.tgz", + "integrity": "sha512-1QVXcfu0FiVyfd6GLBKIWNuGtPh/Pbjhwyhucc/kI2EgV1f+Sl6kePDp2pI8PQ00HKVLy/NqAwgcx05YyGtYYg==", "cpu": [ "x64" ], @@ -3686,9 +3685,9 @@ ] }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-22.6.5.tgz", - "integrity": "sha512-xV50B8mnDPboct7JkAHftajI02s+8FszA8WTzhore+YGR+lEKHTLpucwGEaQuMlSdLplH7pQix4B4uK5pcMhZw==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-22.7.6.tgz", + "integrity": "sha512-YD6vjl39oxtR8kxxq9Ow/bFahb61M1soVMPz7dEhV3weM3/h3yRLdcscibvayIJ5nBFLxlYpXHG/n9qWxon8tw==", "cpu": [ "arm" ], @@ -3700,9 +3699,9 @@ ] }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-22.6.5.tgz", - "integrity": "sha512-2JkWuMGj+HpW6oPAvU5VdAx1afTnEbiM10Y3YOrl3fipWV4BiP5VDx762QTrfCraP4hl6yqTgvTe7F9xaby+jQ==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-22.7.6.tgz", + "integrity": "sha512-kMIpH8KvNUsbekkbcWGI+h3FnVOr+jL6cHv7r8Mvh1SusQzgxYcxE8iy0mPXcdbkfF5eaU9RcLB+uIKTyt8OmQ==", "cpu": [ "arm64" ], @@ -3714,9 +3713,9 @@ ] }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-22.6.5.tgz", - "integrity": "sha512-Z/zMqFClnEyqDXouJKEPoWVhMQIif5F0YuECWBYjd3ZLwQsXGTItoh+6Wm3XF/nGMA2uLOHyTq/X7iFXQY3RzA==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-22.7.6.tgz", + "integrity": "sha512-FsRoirT/wx7vdGl7fvkssyBvzu/JoZYYosBPDycaPg5LxSb2lPrvzcCcqG3c++jtSOn/IbbjGBA1bi8ApQ/Ulw==", "cpu": [ "arm64" ], @@ -3728,9 +3727,9 @@ ] }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.6.5.tgz", - "integrity": "sha512-FlotSyqNnaXSn0K+yWw+hRdYBwusABrPgKLyixfJIYRzsy+xPKN6pON6vZfqGwzuWF/9mEGReRz+iM8PiW0XSg==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.7.6.tgz", + "integrity": "sha512-SA1nPymYHgi2NP2ra9r1hrSc+6jTR5xPTzjUhzNFXAColvgUO/aP0Gn+dXhwOtzzau8fKVc3K1qaHi+kIHT54g==", "cpu": [ "x64" ], @@ -3742,9 +3741,9 @@ ] }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-22.6.5.tgz", - "integrity": "sha512-RVOe2qcwhoIx6mxQURPjUfAW5SEOmT2gdhewvdcvX9ICq1hj5B2VarmkhTg0qroO7xiyqOqwq26mCzoV2I3NgQ==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-22.7.6.tgz", + "integrity": "sha512-Aeol4pSRuMuAEC16Se+WS+Xar8W6pymCDmRaIWNLhbDG/+JQqvvuW1izrMLD9DY1Vpn+acN3bHLvdHhTux/DZw==", "cpu": [ "x64" ], @@ -3756,9 +3755,9 @@ ] }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-22.6.5.tgz", - "integrity": "sha512-ZqurqI8VuYnsr2Kn4K4t+Gx6j/BZdf6qz/6Tv4A7XQQ6oNYVQgTqoNEFj+CCkVaIe6aIdCWpousFLqs+ZgBqYQ==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-22.7.6.tgz", + "integrity": "sha512-iNdxFfvkePnAYRhKyEEVfskiiL2QdiALeeZG+STh+rfD15cUO2YiQU+iQzgpzqmi9J2QjhGykIdFA6E/8v09lg==", "cpu": [ "arm64" ], @@ -3770,9 +3769,9 @@ ] }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-22.6.5.tgz", - "integrity": "sha512-i2QFBJIuaYg9BHxrrnBV4O7W9rVL2k0pSIdk/rRp3EYJEU93iUng+qbZiY9wh1xvmXuUCE2G7TRd+8/SG/RFKg==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-22.7.6.tgz", + "integrity": "sha512-thikDrOhCbUdzx5fQcpM34qZ7LV5RiszoNVG4m4TS3wAvx2bl+/qnVL6F6PwMlS6B/RVv6TqPhTuGHT7sjEGTA==", "cpu": [ "x64" ], @@ -4034,9 +4033,9 @@ } }, "node_modules/@sigstore/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.0.tgz", - "integrity": "sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz", + "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4174,14 +4173,14 @@ } }, "node_modules/@sigstore/verify": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.0.tgz", - "integrity": "sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz", + "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.1.0", + "@sigstore/core": "^3.2.1", "@sigstore/protobuf-specs": "^0.5.0" }, "engines": { @@ -5052,16 +5051,6 @@ "win32" ] }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.12", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.12.tgz", - "integrity": "sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -5069,44 +5058,6 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", - "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@zkochan/js-yaml": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", @@ -5414,9 +5365,9 @@ "license": "MIT" }, "node_modules/archiver-utils/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -5752,13 +5703,13 @@ } }, "node_modules/axios": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz", - "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.0.tgz", + "integrity": "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==", "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.11", + "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } @@ -6004,9 +5955,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.8", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.8.tgz", - "integrity": "sha512-PCLz/LXGBsNTErbtB6i5u4eLpHeMfi93aUv5duMmj6caNu6IphS4q6UevDnL36sZQv9lrP11dbPKGMaXPwMKfQ==", + "version": "2.10.42", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz", + "integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6099,17 +6050,10 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true, - "license": "MIT" - }, "node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", "dev": true, "license": "MIT", "dependencies": { @@ -6120,9 +6064,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.5.tgz", + "integrity": "sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==", "dev": true, "funding": [ { @@ -6140,11 +6084,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.42", + "caniuse-lite": "^1.0.30001800", + "electron-to-chromium": "^1.5.387", + "node-releases": "^2.0.50", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -6449,9 +6393,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001780", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001780.tgz", - "integrity": "sha512-llngX0E7nQci5BPJDqoZSbuZ5Bcs9F5db7EtgfwBerX9XGtkkiO4NwfDDIRzHTTwcYC8vC7bmeUEPGrKlR/TkQ==", + "version": "1.0.30001803", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001803.tgz", + "integrity": "sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg==", "dev": true, "funding": [ { @@ -7068,9 +7012,9 @@ "license": "MIT" }, "node_modules/copyfiles/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -7573,9 +7517,9 @@ } }, "node_modules/dotenv-expand": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", - "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.3.tgz", + "integrity": "sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7602,56 +7546,6 @@ "node": ">= 0.4" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/duplexer2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexer2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/duplexer2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -7693,9 +7587,9 @@ "license": "MIT" }, "node_modules/editorconfig/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -7739,9 +7633,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.321", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz", - "integrity": "sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==", + "version": "1.5.389", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.389.tgz", + "integrity": "sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==", "dev": true, "license": "ISC" }, @@ -8005,9 +7899,9 @@ } }, "node_modules/esbuild": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", - "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", + "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -8018,32 +7912,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.28.0", - "@esbuild/android-arm": "0.28.0", - "@esbuild/android-arm64": "0.28.0", - "@esbuild/android-x64": "0.28.0", - "@esbuild/darwin-arm64": "0.28.0", - "@esbuild/darwin-x64": "0.28.0", - "@esbuild/freebsd-arm64": "0.28.0", - "@esbuild/freebsd-x64": "0.28.0", - "@esbuild/linux-arm": "0.28.0", - "@esbuild/linux-arm64": "0.28.0", - "@esbuild/linux-ia32": "0.28.0", - "@esbuild/linux-loong64": "0.28.0", - "@esbuild/linux-mips64el": "0.28.0", - "@esbuild/linux-ppc64": "0.28.0", - "@esbuild/linux-riscv64": "0.28.0", - "@esbuild/linux-s390x": "0.28.0", - "@esbuild/linux-x64": "0.28.0", - "@esbuild/netbsd-arm64": "0.28.0", - "@esbuild/netbsd-x64": "0.28.0", - "@esbuild/openbsd-arm64": "0.28.0", - "@esbuild/openbsd-x64": "0.28.0", - "@esbuild/openharmony-arm64": "0.28.0", - "@esbuild/sunos-x64": "0.28.0", - "@esbuild/win32-arm64": "0.28.0", - "@esbuild/win32-ia32": "0.28.0", - "@esbuild/win32-x64": "0.28.0" + "@esbuild/aix-ppc64": "0.28.1", + "@esbuild/android-arm": "0.28.1", + "@esbuild/android-arm64": "0.28.1", + "@esbuild/android-x64": "0.28.1", + "@esbuild/darwin-arm64": "0.28.1", + "@esbuild/darwin-x64": "0.28.1", + "@esbuild/freebsd-arm64": "0.28.1", + "@esbuild/freebsd-x64": "0.28.1", + "@esbuild/linux-arm": "0.28.1", + "@esbuild/linux-arm64": "0.28.1", + "@esbuild/linux-ia32": "0.28.1", + "@esbuild/linux-loong64": "0.28.1", + "@esbuild/linux-mips64el": "0.28.1", + "@esbuild/linux-ppc64": "0.28.1", + "@esbuild/linux-riscv64": "0.28.1", + "@esbuild/linux-s390x": "0.28.1", + "@esbuild/linux-x64": "0.28.1", + "@esbuild/netbsd-arm64": "0.28.1", + "@esbuild/netbsd-x64": "0.28.1", + "@esbuild/openbsd-arm64": "0.28.1", + "@esbuild/openbsd-x64": "0.28.1", + "@esbuild/openharmony-arm64": "0.28.1", + "@esbuild/sunos-x64": "0.28.1", + "@esbuild/win32-arm64": "0.28.1", + "@esbuild/win32-ia32": "0.28.1", + "@esbuild/win32-x64": "0.28.1" } }, "node_modules/escalade": { @@ -8273,9 +8167,9 @@ "license": "MIT" }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -8414,9 +8308,9 @@ "license": "MIT" }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -8659,9 +8553,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", + "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", "funding": [ { "type": "github", @@ -8718,13 +8612,6 @@ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "license": "MIT" }, - "node_modules/fflate": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", - "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", - "dev": true, - "license": "MIT" - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -8915,56 +8802,22 @@ } }, "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "dev": true, "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, "engines": { "node": ">= 6" } }, - "node_modules/front-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1" - } - }, - "node_modules/front-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/front-matter/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9355,9 +9208,9 @@ "license": "MIT" }, "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -9563,9 +9416,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -9908,9 +9761,9 @@ } }, "node_modules/ip-address": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", + "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==", "dev": true, "license": "MIT", "engines": { @@ -10789,9 +10642,9 @@ "license": "MIT" }, "node_modules/jest-config/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -11146,9 +10999,9 @@ "license": "MIT" }, "node_modules/jest-runtime/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "dev": true, "license": "MIT", "dependencies": { @@ -11329,9 +11182,9 @@ } }, "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "version": "17.13.4", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.4.tgz", + "integrity": "sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ==", "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", @@ -11384,9 +11237,9 @@ "license": "MIT" }, "node_modules/js-beautify/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -11429,13 +11282,10 @@ } }, "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", - "license": "MIT", - "engines": { - "node": ">=14" - } + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.8.tgz", + "integrity": "sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==", + "license": "MIT" }, "node_modules/js-md4": { "version": "0.3.2", @@ -11452,10 +11302,20 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -12009,9 +11869,9 @@ "license": "MIT" }, "node_modules/lerna/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -12757,13 +12617,13 @@ "license": "ISC" }, "node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { "node": "18 || 20 || >=22" @@ -13171,11 +13031,14 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", - "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", + "version": "2.0.50", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", + "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/noms": { "version": "0.0.0", @@ -13437,65 +13300,139 @@ } }, "node_modules/nx": { - "version": "22.6.5", - "resolved": "https://registry.npmjs.org/nx/-/nx-22.6.5.tgz", - "integrity": "sha512-VRKhDAt684dXNSz9MNjE7MekkCfQF41P2PSx5jEWQjDEP1Z4jFZbyeygWs5ZyOroG7/n0MoWAJTe6ftvIcBOAg==", + "version": "22.7.6", + "resolved": "https://registry.npmjs.org/nx/-/nx-22.7.6.tgz", + "integrity": "sha512-cT2iX6NAtuNT/yaMTtwpIuNQBrW2Zhg4X8zdTEo/h27bz/JYnFm7B9MAKbAXNWK6k0Yxz+jv7zJoMBHutd1Dww==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { + "@emnapi/core": "1.4.5", + "@emnapi/runtime": "1.4.5", + "@emnapi/wasi-threads": "1.0.4", + "@jest/diff-sequences": "30.0.1", "@napi-rs/wasm-runtime": "0.2.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.2", + "@tybys/wasm-util": "0.9.0", + "@yarnpkg/lockfile": "1.1.0", "@zkochan/js-yaml": "0.0.7", - "axios": "1.15.0", + "ansi-colors": "4.1.3", + "ansi-regex": "5.0.1", + "ansi-styles": "4.3.0", + "argparse": "2.0.1", + "asynckit": "0.4.0", + "axios": "1.16.0", + "balanced-match": "4.0.3", + "base64-js": "1.5.1", + "bl": "4.1.0", + "brace-expansion": "5.0.6", + "buffer": "5.7.1", + "call-bind-apply-helpers": "1.0.2", + "chalk": "4.1.2", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", - "cliui": "^8.0.1", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", + "cliui": "8.0.1", + "clone": "1.0.4", + "color-convert": "2.0.1", + "color-name": "1.1.4", + "combined-stream": "1.0.8", + "defaults": "1.0.4", + "define-lazy-prop": "2.0.0", + "delayed-stream": "1.0.0", + "dotenv": "16.4.7", + "dotenv-expand": "12.0.3", + "dunder-proto": "1.0.1", "ejs": "5.0.1", - "enquirer": "~2.3.6", + "emoji-regex": "8.0.0", + "end-of-stream": "1.4.5", + "enquirer": "2.3.6", + "es-define-property": "1.0.1", + "es-errors": "1.3.0", + "es-object-atoms": "1.1.1", + "es-set-tostringtag": "2.1.0", + "escalade": "3.2.0", + "escape-string-regexp": "1.0.5", "figures": "3.2.0", - "flat": "^5.0.2", - "front-matter": "^4.0.2", - "ignore": "^7.0.5", - "jest-diff": "^30.0.2", + "flat": "5.0.2", + "follow-redirects": "1.16.0", + "form-data": "4.0.6", + "fs-constants": "1.0.0", + "function-bind": "1.1.2", + "get-caller-file": "2.0.5", + "get-intrinsic": "1.3.0", + "get-proto": "1.0.1", + "gopd": "1.2.0", + "has-flag": "4.0.0", + "has-symbols": "1.1.0", + "has-tostringtag": "1.0.2", + "hasown": "2.0.4", + "ieee754": "1.2.1", + "ignore": "7.0.5", + "inherits": "2.0.4", + "is-docker": "2.2.1", + "is-fullwidth-code-point": "3.0.0", + "is-interactive": "1.0.0", + "is-unicode-supported": "0.1.0", + "is-wsl": "2.2.0", + "json5": "2.2.3", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", - "minimatch": "10.2.4", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", + "log-symbols": "4.1.0", + "math-intrinsics": "1.1.0", + "mime-db": "1.52.0", + "mime-types": "2.1.35", + "mimic-fn": "2.1.0", + "minimatch": "10.2.5", + "minimist": "1.2.8", + "npm-run-path": "4.0.1", + "once": "1.4.0", + "onetime": "5.1.2", + "open": "8.4.2", "ora": "5.3.0", - "picocolors": "^1.1.0", + "path-key": "3.1.1", + "picocolors": "1.1.1", + "proxy-from-env": "2.1.0", + "readable-stream": "3.6.2", + "require-directory": "2.1.1", "resolve.exports": "2.0.3", - "semver": "^7.6.3", + "restore-cursor": "3.1.0", + "safe-buffer": "5.2.1", + "semver": "7.7.4", + "signal-exit": "3.0.7", "smol-toml": "1.6.1", - "string-width": "^4.2.3", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tree-kill": "^1.2.2", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "yaml": "^2.6.0", - "yargs": "^17.6.2", + "string_decoder": "1.3.0", + "string-width": "4.2.3", + "strip-ansi": "6.0.1", + "strip-bom": "3.0.0", + "supports-color": "7.2.0", + "tar-stream": "2.2.0", + "tmp": "0.2.7", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.2.0", + "tslib": "2.8.1", + "util-deprecate": "1.0.2", + "wcwidth": "1.0.1", + "wrap-ansi": "7.0.0", + "wrappy": "1.0.2", + "y18n": "5.0.8", + "yaml": "2.9.0", + "yargs": "17.7.2", "yargs-parser": "21.1.1" }, "bin": { - "nx": "bin/nx.js", - "nx-cloud": "bin/nx-cloud.js" + "nx": "dist/bin/nx.js", + "nx-cloud": "dist/bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "22.6.5", - "@nx/nx-darwin-x64": "22.6.5", - "@nx/nx-freebsd-x64": "22.6.5", - "@nx/nx-linux-arm-gnueabihf": "22.6.5", - "@nx/nx-linux-arm64-gnu": "22.6.5", - "@nx/nx-linux-arm64-musl": "22.6.5", - "@nx/nx-linux-x64-gnu": "22.6.5", - "@nx/nx-linux-x64-musl": "22.6.5", - "@nx/nx-win32-arm64-msvc": "22.6.5", - "@nx/nx-win32-x64-msvc": "22.6.5" + "@nx/nx-darwin-arm64": "22.7.6", + "@nx/nx-darwin-x64": "22.7.6", + "@nx/nx-freebsd-x64": "22.7.6", + "@nx/nx-linux-arm-gnueabihf": "22.7.6", + "@nx/nx-linux-arm64-gnu": "22.7.6", + "@nx/nx-linux-arm64-musl": "22.7.6", + "@nx/nx-linux-x64-gnu": "22.7.6", + "@nx/nx-linux-x64-musl": "22.7.6", + "@nx/nx-win32-arm64-msvc": "22.7.6", + "@nx/nx-win32-x64-msvc": "22.7.6" }, "peerDependencies": { "@swc-node/register": "^1.11.1", @@ -13510,6 +13447,67 @@ } } }, + "node_modules/nx/node_modules/@emnapi/core": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz", + "integrity": "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emnapi/wasi-threads": "1.0.4", + "tslib": "^2.4.0" + } + }, + "node_modules/nx/node_modules/@emnapi/runtime": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", + "integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/nx/node_modules/@emnapi/wasi-threads": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz", + "integrity": "sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/nx/node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/nx/node_modules/balanced-match": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", + "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/nx/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/nx/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -13535,6 +13533,24 @@ "node": ">=6" } }, + "node_modules/nx/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/nx/node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -14919,18 +14935,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/read-excel-file": { - "version": "5.8.8", - "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-5.8.8.tgz", - "integrity": "sha512-Jb3g7wYe3NU7k52q5xs16swqsl47xIxc/CvHuJy49Elzp6+G6bg56Lds4s57FayosuCYm+TTU0ROpMMuM7WE0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xmldom/xmldom": "^0.8.2", - "fflate": "^0.7.3", - "unzipper": "^0.12.2" - } - }, "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -15143,9 +15147,9 @@ "license": "MIT" }, "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -15751,18 +15755,18 @@ "license": "ISC" }, "node_modules/sigstore": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz", - "integrity": "sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz", + "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.1.0", + "@sigstore/core": "^3.2.1", "@sigstore/protobuf-specs": "^0.5.0", - "@sigstore/sign": "^4.1.0", - "@sigstore/tuf": "^4.0.1", - "@sigstore/verify": "^3.1.0" + "@sigstore/sign": "^4.1.1", + "@sigstore/tuf": "^4.0.2", + "@sigstore/verify": "^3.1.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -16264,9 +16268,9 @@ } }, "node_modules/tar": { - "version": "7.5.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.11.tgz", - "integrity": "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==", + "version": "7.5.19", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.19.tgz", + "integrity": "sha512-4LeEWl96twnS2Q7Bz4MGqgazLqO+hJN63GZxXoIqh1T3VweYD997gbU1ItNsQafqqXTXd5WFyFdReLtwvRBNiw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -16446,9 +16450,9 @@ "license": "MIT" }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -16600,9 +16604,9 @@ } }, "node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.7.tgz", + "integrity": "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==", "dev": true, "license": "MIT", "engines": { @@ -17106,18 +17110,18 @@ "node": ">=8" } }, - "node_modules/unzipper": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.3.tgz", - "integrity": "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==", + "node_modules/unzipper-esm": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/unzipper-esm/-/unzipper-esm-0.13.2.tgz", + "integrity": "sha512-lt8GtgDYV8YcAFZNQuLyR2QvHI8C/TstpgsdjUn9ZxiWLJgn+e5uW6DsO3e/HUJVuWD57ZLLFMZ9xk26tePuHQ==", "dev": true, "license": "MIT", "dependencies": { - "bluebird": "~3.7.2", - "duplexer2": "~0.1.4", - "fs-extra": "^11.2.0", "graceful-fs": "^4.2.2", "node-int64": "^0.4.0" + }, + "engines": { + "node": ">=8.0.0" } }, "node_modules/upath": { @@ -17634,9 +17638,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", - "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "dev": true, "license": "ISC", "bin": { @@ -17855,7 +17859,7 @@ "deep-freeze": "^0.0.1", "deepmerge": "^4.3.1", "fs-extra": "^11.1.1", - "joi": "^17.10.1", + "joi": "^17.13.4", "klaw-sync": "^6.0.0", "ramda": "^0.32.0", "semver": "^7.3.8", @@ -17974,7 +17978,39 @@ "write-excel-file": "^2.0.9" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" + } + }, + "packages/metaed-plugin-edfi-api-catalog/node_modules/@xmldom/xmldom": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", + "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "packages/metaed-plugin-edfi-api-catalog/node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "dev": true, + "license": "MIT" + }, + "packages/metaed-plugin-edfi-api-catalog/node_modules/read-excel-file": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-9.2.0.tgz", + "integrity": "sha512-jwSi8Q9oCmswrYMkuiKvJ6VdHbAXGQnANSOaHBNQZEm2XvaXx8d0t/V7oepgHqT9YWxlQE3HEuCtDZq8BZBmvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.10", + "fflate": "^0.8.3", + "unzipper-esm": "^0.13.0" + }, + "engines": { + "node": ">=18" } }, "packages/metaed-plugin-edfi-api-schema": { @@ -17988,7 +18024,7 @@ "ajv": "^8.12.0", "deep-freeze": "^0.0.1", "inflection": "^2.0.1", - "joi": "^18.0.1", + "joi": "^18.2.3", "json-stable-stringify": "^1.1.1", "ramda": "^0.32.0", "ts-invariant": "^0.10.3" @@ -18025,9 +18061,9 @@ } }, "packages/metaed-plugin-edfi-api-schema/node_modules/joi": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/joi/-/joi-18.0.2.tgz", - "integrity": "sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-18.2.3.tgz", + "integrity": "sha512-N5A3KTWQpPWT4ExxxPlUx7WmykGXRzhNidWhV41d6Abu9YfI2NyWCJuxdPnslJCPWtbRpSVOWSnSS6GakLM/Rg==", "license": "BSD-3-Clause", "dependencies": { "@hapi/address": "^5.1.1", @@ -18036,7 +18072,7 @@ "@hapi/pinpoint": "^2.0.1", "@hapi/tlds": "^1.1.1", "@hapi/topo": "^6.0.2", - "@standard-schema/spec": "^1.0.0" + "@standard-schema/spec": "^1.1.0" }, "engines": { "node": ">= 20" @@ -18067,7 +18103,39 @@ "write-excel-file": "^2.0.9" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" + } + }, + "packages/metaed-plugin-edfi-handbook/node_modules/@xmldom/xmldom": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", + "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "packages/metaed-plugin-edfi-handbook/node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "dev": true, + "license": "MIT" + }, + "packages/metaed-plugin-edfi-handbook/node_modules/read-excel-file": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-9.2.0.tgz", + "integrity": "sha512-jwSi8Q9oCmswrYMkuiKvJ6VdHbAXGQnANSOaHBNQZEm2XvaXx8d0t/V7oepgHqT9YWxlQE3HEuCtDZq8BZBmvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.10", + "fflate": "^0.8.3", + "unzipper-esm": "^0.13.0" + }, + "engines": { + "node": ">=18" } }, "packages/metaed-plugin-edfi-ods-changequery": { @@ -18358,7 +18426,39 @@ "write-excel-file": "^2.0.9" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" + } + }, + "packages/metaed-plugin-edfi-sql-dictionary/node_modules/@xmldom/xmldom": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", + "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.6" + } + }, + "packages/metaed-plugin-edfi-sql-dictionary/node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "dev": true, + "license": "MIT" + }, + "packages/metaed-plugin-edfi-sql-dictionary/node_modules/read-excel-file": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-9.2.0.tgz", + "integrity": "sha512-jwSi8Q9oCmswrYMkuiKvJ6VdHbAXGQnANSOaHBNQZEm2XvaXx8d0t/V7oepgHqT9YWxlQE3HEuCtDZq8BZBmvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.10", + "fflate": "^0.8.3", + "unzipper-esm": "^0.13.0" + }, + "engines": { + "node": ">=18" } }, "packages/metaed-plugin-edfi-unified": { @@ -18389,24 +18489,46 @@ "@edfi/metaed-plugin-edfi-unified": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-unified-advanced": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-xsd": "4.7.1-dev.7", - "@xmldom/xmldom": "^0.9.9", + "@xmldom/xmldom": "^0.9.10", "handlebars": "^4.7.7", "js-beautify": "^1.14.7", "write-excel-file": "^2.0.9" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" } }, "packages/metaed-plugin-edfi-xml-dictionary/node_modules/@xmldom/xmldom": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.9.tgz", - "integrity": "sha512-qycIHAucxy/LXAYIjmLmtQ8q9GPnMbnjG1KXhWm9o5sCr6pOYDATkMPiTNa6/v8eELyqOQ2FsEqeoFYmgv/gJg==", + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", + "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", "license": "MIT", "engines": { "node": ">=14.6" } }, + "packages/metaed-plugin-edfi-xml-dictionary/node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "dev": true, + "license": "MIT" + }, + "packages/metaed-plugin-edfi-xml-dictionary/node_modules/read-excel-file": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/read-excel-file/-/read-excel-file-9.2.0.tgz", + "integrity": "sha512-jwSi8Q9oCmswrYMkuiKvJ6VdHbAXGQnANSOaHBNQZEm2XvaXx8d0t/V7oepgHqT9YWxlQE3HEuCtDZq8BZBmvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.9.10", + "fflate": "^0.8.3", + "unzipper-esm": "^0.13.0" + }, + "engines": { + "node": ">=18" + } + }, "packages/metaed-plugin-edfi-xsd": { "name": "@edfi/metaed-plugin-edfi-xsd", "version": "4.7.1-dev.7", @@ -18415,7 +18537,7 @@ "@edfi/metaed-core": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-unified": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-unified-advanced": "4.7.1-dev.7", - "@xmldom/xmldom": "^0.9.9", + "@xmldom/xmldom": "^0.9.10", "deep-freeze": "^0.0.1", "handlebars": "^4.7.7", "js-beautify": "^1.14.7", @@ -18429,9 +18551,9 @@ } }, "packages/metaed-plugin-edfi-xsd/node_modules/@xmldom/xmldom": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.9.tgz", - "integrity": "sha512-qycIHAucxy/LXAYIjmLmtQ8q9GPnMbnjG1KXhWm9o5sCr6pOYDATkMPiTNa6/v8eELyqOQ2FsEqeoFYmgv/gJg==", + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", + "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", "license": "MIT", "engines": { "node": ">=14.6" diff --git a/package.json b/package.json index 061467990..d0adc80a1 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@typescript-eslint/parser": "8.58.2", "copyfiles": "^2.4.1", "cross-env": "^7.0.3", - "esbuild": "^0.28.0", + "esbuild": "^0.28.1", "eslint": "8.57.1", "eslint-config-airbnb-base": "15.0.0", "eslint-config-prettier": "8.5.0", @@ -33,6 +33,20 @@ "workspaces": [ "packages/*" ], + "overrides": { + "@apidevtools/json-schema-ref-parser": { + "js-yaml": "4.3.0" + }, + "cosmiconfig": { + "js-yaml": "4.3.0" + }, + "ip-address": "10.2.0", + "lerna": { + "js-yaml": "4.3.0" + }, + "sigstore": "4.1.1", + "tar": "7.5.19" + }, "scripts": { "antlr-gen": "java -jar ./antlr/antlr-4.6-complete.jar -Dlanguage=JavaScript -o ./packages/metaed-core/src/grammar/gen ./packages/metaed-core/src/grammar/language/BaseLexer.g4 ./packages/metaed-core/src/grammar/language/MetaEdGrammar.g4", "metaed:build": "node ./packages/metaed-console/dist/index.js -c ./metaed.conf.json -a", diff --git a/packages/metaed-core/package.json b/packages/metaed-core/package.json index cbea907b3..aa21a46dd 100644 --- a/packages/metaed-core/package.json +++ b/packages/metaed-core/package.json @@ -20,7 +20,7 @@ "deep-freeze": "^0.0.1", "deepmerge": "^4.3.1", "fs-extra": "^11.1.1", - "joi": "^17.10.1", + "joi": "^17.13.4", "klaw-sync": "^6.0.0", "ramda": "^0.32.0", "semver": "^7.3.8", diff --git a/packages/metaed-plugin-edfi-api-catalog/package.json b/packages/metaed-plugin-edfi-api-catalog/package.json index 1a58e93be..f562ac2f0 100644 --- a/packages/metaed-plugin-edfi-api-catalog/package.json +++ b/packages/metaed-plugin-edfi-api-catalog/package.json @@ -19,7 +19,7 @@ "write-excel-file": "^2.0.9" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" }, "scripts": { "build": "npm run build:clean && npm run build:dist", diff --git a/packages/metaed-plugin-edfi-api-catalog/test/integration/ApiCatalogGenerator.test.ts b/packages/metaed-plugin-edfi-api-catalog/test/integration/ApiCatalogGenerator.test.ts index b9f605da7..4faee53cd 100644 --- a/packages/metaed-plugin-edfi-api-catalog/test/integration/ApiCatalogGenerator.test.ts +++ b/packages/metaed-plugin-edfi-api-catalog/test/integration/ApiCatalogGenerator.test.ts @@ -18,8 +18,8 @@ import { } from '@edfi/metaed-core'; import { initialize as initializeUnifiedPlugin } from '@edfi/metaed-plugin-edfi-unified'; import { initialize as initializeApiSchemaPlugin } from '@edfi/metaed-plugin-edfi-api-schema'; -import readXlsxFile from 'read-excel-file/node'; -import type { CellValue, Row } from 'read-excel-file'; +import { readSheet } from 'read-excel-file/node'; +import type { CellValue, Row } from 'read-excel-file/node'; import { generate } from '../../src/generator/ApiCatalogGenerator'; import { propertiesWorksheetName, resourcesWorksheetName } from '../../src/model/ApiCatalogRow'; @@ -124,15 +124,11 @@ describe('when generating api catalog workbook for real-model edge cases', (): v generatorResults = await generate(metaEd); resourceRows = toWorksheetRows( - await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: resourcesWorksheetName, - }), + await readSheet(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), resourcesWorksheetName), ); propertyRows = toWorksheetRows( - await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: propertiesWorksheetName, - }), + await readSheet(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), propertiesWorksheetName), ); }); diff --git a/packages/metaed-plugin-edfi-api-schema/package.json b/packages/metaed-plugin-edfi-api-schema/package.json index 9704ae66f..81b0445d0 100644 --- a/packages/metaed-plugin-edfi-api-schema/package.json +++ b/packages/metaed-plugin-edfi-api-schema/package.json @@ -19,7 +19,7 @@ "ajv": "^8.12.0", "deep-freeze": "^0.0.1", "inflection": "^2.0.1", - "joi": "^18.0.1", + "joi": "^18.2.3", "json-stable-stringify": "^1.1.1", "ramda": "^0.32.0", "ts-invariant": "^0.10.3" diff --git a/packages/metaed-plugin-edfi-api-schema/src/enhancer/AllJsonPathsMappingEnhancer.ts b/packages/metaed-plugin-edfi-api-schema/src/enhancer/AllJsonPathsMappingEnhancer.ts index f5e5b323c..bdefe5707 100644 --- a/packages/metaed-plugin-edfi-api-schema/src/enhancer/AllJsonPathsMappingEnhancer.ts +++ b/packages/metaed-plugin-edfi-api-schema/src/enhancer/AllJsonPathsMappingEnhancer.ts @@ -72,6 +72,15 @@ function hasAtMostTwoArrayLevels(jsonPath: JsonPath): boolean { return matches.length <= 2; } +/** + * Determines whether the value at this JsonPath is required within its containing JSON object or array item. + * Only flattened parent context carried in the PropertyModifier, such as choice or inline common optionality, + * changes that value. Required collection containers are handled by schema/OpenAPI requiredness, not here. + */ +function isJsonPathValueRequired(property: EntityProperty, propertyModifier: PropertyModifier): boolean { + return (property.isRequired || property.isPartOfIdentity) && !propertyModifier.optionalDueToParent; +} + /** * Adds a JsonPath to the JsonPathsMapping for a given list of PropertyPaths. Handles array initialization when needed. */ @@ -82,6 +91,7 @@ function addJsonPathTo( jsonPath: JsonPath, isTopLevel: boolean, terminalProperty: EntityProperty, + propertyModifier: PropertyModifier, flattenedIdentityProperty: FlattenedIdentityProperty, isArrayIdentity: boolean, collectionContainerJsonPath: JsonPath | null = null, @@ -90,16 +100,21 @@ function addJsonPathTo( invariant(hasAtMostTwoArrayLevels(jsonPath), 'ApiSchema does not support documents wih arrays nested more than two deep'); propertyPaths.forEach((propertyPath) => { + const isRequired: boolean = isJsonPathValueRequired(terminalProperty, propertyModifier); + // initialize if necessary if (jsonPathsMapping[propertyPath] == null) { const initialJsonPathsInfo: JsonPathsInfo = isTopLevel - ? { jsonPathPropertyPairs: [], isTopLevel, isArrayIdentity, initialPropertyPath, terminalProperty } - : { jsonPathPropertyPairs: [], isTopLevel, isArrayIdentity, initialPropertyPath }; + ? { jsonPathPropertyPairs: [], isTopLevel, isArrayIdentity, initialPropertyPath, terminalProperty, isRequired } + : { jsonPathPropertyPairs: [], isTopLevel, isArrayIdentity, initialPropertyPath, isRequired }; jsonPathsMapping[propertyPath] = initialJsonPathsInfo; } - // Avoid duplicates const jsonPathsInfo: JsonPathsInfo = jsonPathsMapping[propertyPath]; + invariant( + jsonPathsInfo.isRequired === isRequired, + `Conflicting isRequired detected for "${propertyPath}": "${jsonPathsInfo.isRequired}" vs "${isRequired}"`, + ); if (collectionContainerJsonPath != null) { const existingContainer: JsonPath | undefined = jsonPathsInfo.collectionContainerJsonPath; @@ -125,6 +140,7 @@ function addJsonPathTo( } } + // Avoid duplicates if (jsonPathsInfo.jsonPathPropertyPairs.map((jppp) => jppp.jsonPath).includes(jsonPath)) return; jsonPathsInfo.jsonPathPropertyPairs.push({ @@ -185,6 +201,7 @@ function jsonPathsForReferentialProperty( // Because these are flattened, we know they are non-reference properties jsonPathsForNonReference( flattenedIdentityProperty.identityProperty, + parentPropertyModifier(flattenedIdentityProperty, propertyModifier), jsonPathsMappingForThisProperty, initialPropertyPath, propertyPathsFromIdentityProperty(currentPropertyPath, flattenedIdentityProperty), @@ -217,6 +234,7 @@ function jsonPathsForReferentialProperty( jsonPath, isTopLevel, property, + propertyModifier, flattenedIdentityProperty, isArrayIdentity, collectionContainerJsonPath, @@ -406,6 +424,11 @@ function jsonPathsForChoiceAndInlineCommonProperty( collectionContainerJsonPath: JsonPath | null = null, ) { // prefixes from choice and inline common that affect child properties + const optionalDueToParent: boolean = + property.isOptional || + property.isOptionalCollection || + propertyModifier.optionalDueToParent || + property.type === 'choice'; const parentPrefixes: string[] = property.roleName === property.metaEdName ? [...propertyModifier.parentPrefixes] @@ -415,7 +438,7 @@ function jsonPathsForChoiceAndInlineCommonProperty( allProperties.forEach((allProperty) => { const concatenatedPropertyModifier: PropertyModifier = propertyModifierConcat( - { optionalDueToParent: propertyModifier.optionalDueToParent, parentPrefixes }, + { optionalDueToParent, parentPrefixes }, allProperty.propertyModifier, ); @@ -445,6 +468,7 @@ function jsonPathsForChoiceAndInlineCommonProperty( */ function jsonPathsForNonReference( property: EntityProperty, + propertyModifier: PropertyModifier, jsonPathsMapping: JsonPathsMapping, initialPropertyPath: MetaEdPropertyPath, currentPropertyPaths: MetaEdPropertyPath[], @@ -465,6 +489,7 @@ function jsonPathsForNonReference( `${currentJsonPath}.schoolYear` as JsonPath, isTopLevel, property, + propertyModifier, flattenedIdentityProperty, isArrayIdentity, collectionContainerJsonPath, @@ -477,6 +502,7 @@ function jsonPathsForNonReference( currentJsonPath, isTopLevel, property, + propertyModifier, flattenedIdentityProperty, isArrayIdentity, collectionContainerJsonPath, @@ -539,6 +565,7 @@ function jsonPathsForDescriptorCollection( appendNextJsonPathName(collectionContainerJsonPath, apiMapping.descriptorCollectionName, property, propertyModifier), isTopLevel, property, + propertyModifier, NoFlattenedIdentityProperty, true, collectionContainerJsonPath, @@ -564,6 +591,7 @@ function jsonPathsForNonReferenceCollection( jsonPathsForNonReference( property, + propertyModifier, jsonPathsMapping, initialPropertyPath, [currentPropertyPath], @@ -585,6 +613,7 @@ function jsonPathsForNonReferenceCollection( */ function jsonPathsForSchoolYearEnumeration( property: EntityProperty, + propertyModifier: PropertyModifier, jsonPathsMapping: JsonPathsMapping, initialPropertyPath: MetaEdPropertyPath, currentPropertyPath: MetaEdPropertyPath, @@ -606,6 +635,7 @@ function jsonPathsForSchoolYearEnumeration( `${currentJsonPath}.schoolYear` as JsonPath, isTopLevel, property, + propertyModifier, NoFlattenedIdentityProperty, isArrayIdentity, collectionContainerJsonPath, @@ -725,6 +755,7 @@ function jsonPathsFor( if (property.type === 'descriptor') { jsonPathsForNonReference( property, + propertyModifier, jsonPathsMapping, initialPropertyPath, [`${currentPropertyPath}Descriptor` as MetaEdPropertyPath], @@ -739,6 +770,7 @@ function jsonPathsFor( jsonPathsForNonReference( property, + propertyModifier, jsonPathsMapping, initialPropertyPath, [currentPropertyPath], @@ -780,6 +812,7 @@ function buildJsonPathsMapping(entity: TopLevelEntity) { if (property.type === 'schoolYearEnumeration') jsonPathsForSchoolYearEnumeration( property, + propertyModifier, allJsonPathsMapping, property.fullPropertyName as MetaEdPropertyPath, property.fullPropertyName as MetaEdPropertyPath, diff --git a/packages/metaed-plugin-edfi-api-schema/src/enhancer/DocumentPathsMappingEnhancer.ts b/packages/metaed-plugin-edfi-api-schema/src/enhancer/DocumentPathsMappingEnhancer.ts index d321a65b3..f122ee250 100644 --- a/packages/metaed-plugin-edfi-api-schema/src/enhancer/DocumentPathsMappingEnhancer.ts +++ b/packages/metaed-plugin-edfi-api-schema/src/enhancer/DocumentPathsMappingEnhancer.ts @@ -224,6 +224,7 @@ function buildDocumentReferencePaths( startOfPropertyPath: string, referenceProperty: ReferentialProperty, allJsonPathsMapping: JsonPathsMapping, + isRequired: boolean, ): DocumentReferencePaths { const { referencedEntity } = referenceProperty; const referencedEntityApiSchemaData = referencedEntity.data.edfiApiSchema as EntityApiSchemaData; @@ -239,7 +240,7 @@ function buildDocumentReferencePaths( allJsonPathsMapping, ), sourceProperty: referenceProperty, - isRequired: referenceProperty.isRequired || referenceProperty.isPartOfIdentity, + isRequired, isPartOfIdentity: referenceProperty.isPartOfIdentity, }; } @@ -247,6 +248,7 @@ function buildDocumentReferencePaths( function buildDescriptorPath( jsonPathPropertyPairs: JsonPathPropertyPair[], property: EntityProperty, + isRequired: boolean, ): DescriptorReferencePath { invariant(jsonPathPropertyPairs.length === 1, 'Descriptor should only have one path'); @@ -261,13 +263,15 @@ function buildDescriptorPath( path: jsonPathPropertyPairs[0].jsonPath, type: getPathType(jsonPathPropertyPairs[0].sourceProperty.type), sourceProperty: jsonPathPropertyPairs[0].sourceProperty, - isRequired: - jsonPathPropertyPairs[0].sourceProperty.isRequired || jsonPathPropertyPairs[0].sourceProperty.isPartOfIdentity, + isRequired, isPartOfIdentity: jsonPathPropertyPairs[0].sourceProperty.isPartOfIdentity, }; } -function buildSchoolYearEnumerationPath(jsonPathPropertyPairs: JsonPathPropertyPair[]): DocumentReferencePaths { +function buildSchoolYearEnumerationPath( + jsonPathPropertyPairs: JsonPathPropertyPair[], + isRequired: boolean, +): DocumentReferencePaths { invariant(jsonPathPropertyPairs.length === 1, 'SchoolYear should only have one path'); return { @@ -283,21 +287,19 @@ function buildSchoolYearEnumerationPath(jsonPathPropertyPairs: JsonPathPropertyP }, ], sourceProperty: jsonPathPropertyPairs[0].sourceProperty, - isRequired: - jsonPathPropertyPairs[0].sourceProperty.isRequired || jsonPathPropertyPairs[0].sourceProperty.isPartOfIdentity, + isRequired, isPartOfIdentity: jsonPathPropertyPairs[0].sourceProperty.isPartOfIdentity, }; } -function buildScalarPath(jsonPathPropertyPairs: JsonPathPropertyPair[]): ScalarPath { +function buildScalarPath(jsonPathPropertyPairs: JsonPathPropertyPair[], isRequired: boolean): ScalarPath { invariant(jsonPathPropertyPairs.length === 1, 'Scalar should only have one path'); return { path: jsonPathPropertyPairs[0].jsonPath, isReference: false, type: getPathType(jsonPathPropertyPairs[0].sourceProperty.type), sourceProperty: jsonPathPropertyPairs[0].sourceProperty, - isRequired: - jsonPathPropertyPairs[0].sourceProperty.isRequired || jsonPathPropertyPairs[0].sourceProperty.isPartOfIdentity, + isRequired, isPartOfIdentity: jsonPathPropertyPairs[0].sourceProperty.isPartOfIdentity, }; } @@ -323,13 +325,18 @@ function documentPathsMappingFor(entity: TopLevelEntity): DocumentPathsMapping { if (property.type === 'association' || property.type === 'domainEntity') { const referenceProperty: ReferentialProperty = property as ReferentialProperty; - result[propertyPath] = buildDocumentReferencePaths(propertyPath, referenceProperty, allJsonPathsMapping); + result[propertyPath] = buildDocumentReferencePaths( + propertyPath, + referenceProperty, + allJsonPathsMapping, + jsonPathsInfo.isRequired, + ); } else if (property.type === 'descriptor') { - result[propertyPath] = buildDescriptorPath(jsonPathPropertyPairs, property); + result[propertyPath] = buildDescriptorPath(jsonPathPropertyPairs, property, jsonPathsInfo.isRequired); } else if (property.type === 'schoolYearEnumeration') { - result[propertyPath] = buildSchoolYearEnumerationPath(jsonPathPropertyPairs); + result[propertyPath] = buildSchoolYearEnumerationPath(jsonPathPropertyPairs, jsonPathsInfo.isRequired); } else { - result[propertyPath] = buildScalarPath(jsonPathPropertyPairs); + result[propertyPath] = buildScalarPath(jsonPathPropertyPairs, jsonPathsInfo.isRequired); } }); diff --git a/packages/metaed-plugin-edfi-api-schema/src/enhancer/MergeJsonPathsMappingEnhancer.ts b/packages/metaed-plugin-edfi-api-schema/src/enhancer/MergeJsonPathsMappingEnhancer.ts index 2eb785ec5..92694b76d 100644 --- a/packages/metaed-plugin-edfi-api-schema/src/enhancer/MergeJsonPathsMappingEnhancer.ts +++ b/packages/metaed-plugin-edfi-api-schema/src/enhancer/MergeJsonPathsMappingEnhancer.ts @@ -55,6 +55,15 @@ function appendNextJsonPathName( return `${currentJsonPath}.${uncapitalize(nextName)}` as JsonPath; } +/** + * Determines whether the value at this JsonPath is required within its containing JSON object or array item. + * Only flattened parent context carried in the PropertyModifier, such as choice or inline common optionality, + * changes that value. Required collection containers are handled by schema/OpenAPI requiredness, not here. + */ +function isJsonPathValueRequired(property: EntityProperty, propertyModifier: PropertyModifier): boolean { + return (property.isRequired || property.isPartOfIdentity) && !propertyModifier.optionalDueToParent; +} + /** * Adds a JsonPath to the JsonPathsMapping for a given list of PropertyPaths. Handles array initialization when needed. */ @@ -65,21 +74,37 @@ function addJsonPathTo( jsonPath: JsonPath, isTopLevel: boolean, terminalProperty: EntityProperty, + propertyModifier: PropertyModifier, flattenedIdentityProperty: FlattenedIdentityProperty, ) { propertyPaths.forEach((propertyPath) => { + const isRequired: boolean = isJsonPathValueRequired(terminalProperty, propertyModifier); + // initialize if necessary if (jsonPathsMapping[propertyPath] == null) { const initialJsonPathsInfo: JsonPathsInfo = isTopLevel - ? { jsonPathPropertyPairs: [], isTopLevel, isArrayIdentity: false, initialPropertyPath, terminalProperty } - : { jsonPathPropertyPairs: [], isTopLevel, isArrayIdentity: false, initialPropertyPath }; + ? { + jsonPathPropertyPairs: [], + isTopLevel, + isArrayIdentity: false, + initialPropertyPath, + terminalProperty, + isRequired, + } + : { jsonPathPropertyPairs: [], isTopLevel, isArrayIdentity: false, initialPropertyPath, isRequired }; jsonPathsMapping[propertyPath] = initialJsonPathsInfo; } + const jsonPathsInfo: JsonPathsInfo = jsonPathsMapping[propertyPath]; + invariant( + jsonPathsInfo.isRequired === isRequired, + `Conflicting isRequired detected for "${propertyPath}": "${jsonPathsInfo.isRequired}" vs "${isRequired}"`, + ); + // Avoid duplicates - if (jsonPathsMapping[propertyPath].jsonPathPropertyPairs.map((jppp) => jppp.jsonPath).includes(jsonPath)) return; + if (jsonPathsInfo.jsonPathPropertyPairs.map((jppp) => jppp.jsonPath).includes(jsonPath)) return; - jsonPathsMapping[propertyPath].jsonPathPropertyPairs.push({ + jsonPathsInfo.jsonPathPropertyPairs.push({ jsonPath, sourceProperty: terminalProperty, flattenedIdentityProperty, @@ -126,6 +151,7 @@ function jsonPathsForReferentialProperty( // Because these are flattened, we know they are non-reference properties jsonPathsForNonReference( flattenedIdentityProperty.identityProperty, + parentPropertyModifier(flattenedIdentityProperty, propertyModifier), jsonPathsMappingForThisProperty, initialPropertyPath, propertyPathsFromIdentityProperty(currentPropertyPath, flattenedIdentityProperty), @@ -156,6 +182,7 @@ function jsonPathsForReferentialProperty( jsonPath, isTopLevel, property, + propertyModifier, flattenedIdentityProperty, ); }); @@ -217,6 +244,11 @@ function jsonPathsForChoiceAndInlineCommonProperty( isTopLevel: boolean, ) { // prefixes from choice and inline common that affect child properties + const optionalDueToParent: boolean = + property.isOptional || + property.isOptionalCollection || + propertyModifier.optionalDueToParent || + property.type === 'choice'; const parentPrefixes: string[] = property.roleName === property.metaEdName ? [...propertyModifier.parentPrefixes] @@ -226,7 +258,7 @@ function jsonPathsForChoiceAndInlineCommonProperty( allProperties.forEach((allProperty) => { const concatenatedPropertyModifier: PropertyModifier = propertyModifierConcat( - { optionalDueToParent: propertyModifier.optionalDueToParent, parentPrefixes }, + { optionalDueToParent, parentPrefixes }, allProperty.propertyModifier, ); @@ -254,6 +286,7 @@ function jsonPathsForChoiceAndInlineCommonProperty( */ function jsonPathsForNonReference( property: EntityProperty, + propertyModifier: PropertyModifier, jsonPathsMapping: JsonPathsMapping, initialPropertyPath: MetaEdPropertyPath, currentPropertyPaths: MetaEdPropertyPath[], @@ -272,6 +305,7 @@ function jsonPathsForNonReference( `${currentJsonPath}.schoolYear` as JsonPath, isTopLevel, property, + propertyModifier, flattenedIdentityProperty, ); } else { @@ -282,6 +316,7 @@ function jsonPathsForNonReference( currentJsonPath, isTopLevel, property, + propertyModifier, flattenedIdentityProperty, ); } @@ -346,6 +381,7 @@ function jsonPathsForDescriptorCollection( ), isTopLevel, property, + propertyModifier, NoFlattenedIdentityProperty, ); } @@ -367,6 +403,7 @@ function jsonPathsForNonReferenceCollection( jsonPathsForNonReference( property, + propertyModifier, jsonPathsMapping, initialPropertyPath, [currentPropertyPath], @@ -381,6 +418,7 @@ function jsonPathsForNonReferenceCollection( */ function jsonPathsForSchoolYearEnumeration( property: EntityProperty, + propertyModifier: PropertyModifier, jsonPathsMapping: JsonPathsMapping, initialPropertyPath: MetaEdPropertyPath, currentPropertyPath: MetaEdPropertyPath, @@ -396,6 +434,7 @@ function jsonPathsForSchoolYearEnumeration( `${currentJsonPath}.schoolYear` as JsonPath, isTopLevel, property, + propertyModifier, NoFlattenedIdentityProperty, ); } @@ -501,6 +540,7 @@ function jsonPathsFor( jsonPathsForNonReference( property, + propertyModifier, jsonPathsMapping, initialPropertyPath, [currentPropertyPath], @@ -535,6 +575,7 @@ function buildJsonPathsMapping(entity: TopLevelEntity) { if (property.type === 'schoolYearEnumeration') jsonPathsForSchoolYearEnumeration( property, + propertyModifier, mergeJsonPathsMapping, property.fullPropertyName as MetaEdPropertyPath, property.fullPropertyName as MetaEdPropertyPath, diff --git a/packages/metaed-plugin-edfi-api-schema/src/model/JsonPathsMapping.ts b/packages/metaed-plugin-edfi-api-schema/src/model/JsonPathsMapping.ts index e6fcc3284..29bdb14e3 100644 --- a/packages/metaed-plugin-edfi-api-schema/src/model/JsonPathsMapping.ts +++ b/packages/metaed-plugin-edfi-api-schema/src/model/JsonPathsMapping.ts @@ -54,6 +54,17 @@ type BaseJsonPathsInfo = { * When the property represents a reference, this captures the JSON path to the reference object itself. */ referenceObjectJsonPath?: JsonPath; + + /** + * Whether this value is required within the JSON object or array item where it appears. + * + * This is not a whole-document presence guarantee. Optional scalar commons and optional common + * collections still report required child values as required, because those values are required + * when their containing object or array item is present. Choice and inline common ancestry is + * applied because those properties are flattened and have no containing object of their own. + * Required collection container cardinality is handled by schema/OpenAPI requiredness. + */ + isRequired: boolean; }; /** diff --git a/packages/metaed-plugin-edfi-api-schema/test/enhancer/DocumentPathsMappingEnhancer.test.ts b/packages/metaed-plugin-edfi-api-schema/test/enhancer/DocumentPathsMappingEnhancer.test.ts index 8d7590d71..a2fc24649 100644 --- a/packages/metaed-plugin-edfi-api-schema/test/enhancer/DocumentPathsMappingEnhancer.test.ts +++ b/packages/metaed-plugin-edfi-api-schema/test/enhancer/DocumentPathsMappingEnhancer.test.ts @@ -762,7 +762,7 @@ describe('when building domain entity with nested choice and inline commons', () "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.contentClassDescriptor", "projectName": "EdFi", "resourceName": "ContentClassDescriptor", @@ -800,14 +800,14 @@ describe('when building domain entity with nested choice and inline commons', () "LearningResourceChoice.LearningResource.ShortDescription": Object { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.shortDescription", "type": "string", }, "LearningResourceChoice.LearningResourceMetadataURI": Object { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.learningResourceMetadataURI", "type": "string", }, @@ -823,6 +823,119 @@ describe('when building domain entity with nested choice and inline commons', () }); }); +describe('when building domain entity with required choice members', () => { + const metaEd: MetaEdEnvironment = newMetaEdEnvironment(); + metaEd.plugin.set('edfiApiSchema', newPluginEnvironment()); + const namespaceName = 'EdFi'; + + beforeAll(() => { + MetaEdTextBuilder.build() + .withBeginNamespace(namespaceName) + .withStartDomainEntity('SurveyResponse') + .withDocumentation('doc') + .withIntegerIdentity('SurveyResponseIdentifier', 'doc') + .withDomainEntityProperty('School', 'doc', true, false) + .withChoiceProperty('SurveyResponderChoice', 'doc', true, false) + .withEndDomainEntity() + + .withStartDomainEntity('School') + .withDocumentation('doc') + .withIntegerIdentity('SchoolId', 'doc') + .withEndDomainEntity() + + .withStartDomainEntity('Student') + .withDocumentation('doc') + .withStringIdentity('StudentUniqueId', 'doc', '32') + .withEndDomainEntity() + + .withStartDescriptor('ResponderType') + .withDocumentation('doc') + .withEndDescriptor() + + .withStartChoice('SurveyResponderChoice') + .withDocumentation('doc') + .withDomainEntityProperty('Student', 'doc', true, false) + .withDescriptorProperty('ResponderType', 'doc', true, false) + .withStringProperty('ResponderName', 'doc', true, false, '60') + .withEndChoice() + .withEndNamespace() + .sendToListener(new NamespaceBuilder(metaEd, [])) + .sendToListener(new DomainEntityBuilder(metaEd, [])) + .sendToListener(new DescriptorBuilder(metaEd, [])) + .sendToListener(new ChoiceBuilder(metaEd, [])); + + domainEntityReferenceEnhancer(metaEd); + descriptorReferenceEnhancer(metaEd); + choiceReferenceEnhancer(metaEd); + runApiSchemaEnhancers(metaEd); + }); + + it('should make choice members optional but keep required non-choice references required', () => { + const entity = metaEd.namespace.get(namespaceName)?.entity.domainEntity.get('SurveyResponse'); + const documentPathsMapping = removeSourcePropertyFromDocumentPathsMapping( + entity?.data.edfiApiSchema.documentPathsMapping, + ); + expect(documentPathsMapping).toMatchInlineSnapshot(` + Object { + "School": Object { + "isDescriptor": false, + "isPartOfIdentity": false, + "isReference": true, + "isRequired": true, + "projectName": "EdFi", + "referenceJsonPaths": Array [ + Object { + "identityJsonPath": "$.schoolId", + "referenceJsonPath": "$.schoolReference.schoolId", + "type": "number", + }, + ], + "resourceName": "School", + }, + "SurveyResponderChoice.ResponderName": Object { + "isPartOfIdentity": false, + "isReference": false, + "isRequired": false, + "path": "$.responderName", + "type": "string", + }, + "SurveyResponderChoice.ResponderTypeDescriptor": Object { + "isDescriptor": true, + "isPartOfIdentity": false, + "isReference": true, + "isRequired": false, + "path": "$.responderTypeDescriptor", + "projectName": "EdFi", + "resourceName": "ResponderTypeDescriptor", + "type": "string", + }, + "SurveyResponderChoice.Student": Object { + "isDescriptor": false, + "isPartOfIdentity": false, + "isReference": true, + "isRequired": false, + "projectName": "EdFi", + "referenceJsonPaths": Array [ + Object { + "identityJsonPath": "$.studentUniqueId", + "referenceJsonPath": "$.studentReference.studentUniqueId", + "type": "string", + }, + ], + "resourceName": "Student", + }, + "SurveyResponseIdentifier": Object { + "isPartOfIdentity": true, + "isReference": false, + "isRequired": true, + "path": "$.surveyResponseIdentifier", + "type": "number", + }, + } + `); + }); +}); + describe('when building domain entity with scalar collection named with prefix of parent entity', () => { const metaEd: MetaEdEnvironment = newMetaEdEnvironment(); metaEd.plugin.set('edfiApiSchema', newPluginEnvironment()); @@ -1370,14 +1483,14 @@ describe('when building domain entity with a common with a choice', () => { "ContentStandard.PublicationDateChoice.PublicationDate": Object { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "string", }, "ContentStandard.PublicationDateChoice.PublicationYear": Object { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "string", }, diff --git a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_1/ds-5.0-api-schema-authoritative.json b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_1/ds-5.0-api-schema-authoritative.json index 8ea6bc216..a53677600 100644 --- a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_1/ds-5.0-api-schema-authoritative.json +++ b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_1/ds-5.0-api-schema-authoritative.json @@ -18319,14 +18319,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -56071,7 +56071,7 @@ "AttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.attemptedCredits", "type": "number" }, @@ -56201,7 +56201,7 @@ "EarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.earnedCredits", "type": "number" }, @@ -58448,7 +58448,7 @@ "MaximumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.maximumAvailableCredits", "type": "number" }, @@ -58472,7 +58472,7 @@ "MinimumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.minimumAvailableCredits", "type": "number" }, @@ -76148,7 +76148,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.contentClassDescriptor", "projectName": "Ed-Fi", "resourceName": "ContentClassDescriptor", @@ -76228,14 +76228,14 @@ "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationDate", "type": "date" }, "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationYear", "type": "number" }, @@ -76249,7 +76249,7 @@ "LearningResourceChoice.LearningResource.ShortDescription": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.shortDescription", "type": "string" }, @@ -76277,7 +76277,7 @@ "LearningResourceChoice.LearningResourceMetadataURI": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.learningResourceMetadataURI", "type": "string" }, @@ -129882,14 +129882,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -209980,7 +209980,7 @@ "AvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.availableCredits", "type": "number" }, @@ -231841,7 +231841,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -231865,7 +231865,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -231899,7 +231899,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -238095,7 +238095,7 @@ "CumulativeAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeAttemptedCredits", "type": "number" }, @@ -238119,7 +238119,7 @@ "CumulativeEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeEarnedCredits", "type": "number" }, @@ -238462,7 +238462,7 @@ "SessionAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionAttemptedCredits", "type": "number" }, @@ -238486,7 +238486,7 @@ "SessionEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionEarnedCredits", "type": "number" }, @@ -280215,7 +280215,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -280239,7 +280239,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -280273,7 +280273,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -290501,7 +290501,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -290516,7 +290516,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -290531,7 +290531,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { diff --git a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_2/ds-5.1-api-schema-authoritative.json b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_2/ds-5.1-api-schema-authoritative.json index 395d3ab6d..0cee93318 100644 --- a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_2/ds-5.1-api-schema-authoritative.json +++ b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_2/ds-5.1-api-schema-authoritative.json @@ -18268,14 +18268,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -56452,7 +56452,7 @@ "AttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.attemptedCredits", "type": "number" }, @@ -56582,7 +56582,7 @@ "EarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.earnedCredits", "type": "number" }, @@ -58792,7 +58792,7 @@ "MaximumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.maximumAvailableCredits", "type": "number" }, @@ -58816,7 +58816,7 @@ "MinimumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.minimumAvailableCredits", "type": "number" }, @@ -78640,7 +78640,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.contentClassDescriptor", "projectName": "Ed-Fi", "resourceName": "ContentClassDescriptor", @@ -78720,14 +78720,14 @@ "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationDate", "type": "date" }, "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationYear", "type": "number" }, @@ -78741,7 +78741,7 @@ "LearningResourceChoice.LearningResource.ShortDescription": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.shortDescription", "type": "string" }, @@ -78769,7 +78769,7 @@ "LearningResourceChoice.LearningResourceMetadataURI": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.learningResourceMetadataURI", "type": "string" }, @@ -132865,14 +132865,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -213311,7 +213311,7 @@ "AvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.availableCredits", "type": "number" }, @@ -235037,7 +235037,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -235061,7 +235061,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -235095,7 +235095,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -241148,7 +241148,7 @@ "CumulativeAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeAttemptedCredits", "type": "number" }, @@ -241172,7 +241172,7 @@ "CumulativeEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeEarnedCredits", "type": "number" }, @@ -241515,7 +241515,7 @@ "SessionAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionAttemptedCredits", "type": "number" }, @@ -241539,7 +241539,7 @@ "SessionEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionEarnedCredits", "type": "number" }, @@ -285017,7 +285017,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -285041,7 +285041,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -285075,7 +285075,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -295175,7 +295175,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -295190,7 +295190,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -295205,7 +295205,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { diff --git a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-5.2-api-schema-authoritative.json b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-5.2-api-schema-authoritative.json index c24c162ec..298150c57 100644 --- a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-5.2-api-schema-authoritative.json +++ b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-5.2-api-schema-authoritative.json @@ -21042,14 +21042,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -59231,7 +59231,7 @@ "AttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.attemptedCredits", "type": "number" }, @@ -59361,7 +59361,7 @@ "EarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.earnedCredits", "type": "number" }, @@ -61576,7 +61576,7 @@ "MaximumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.maximumAvailableCredits", "type": "number" }, @@ -61600,7 +61600,7 @@ "MinimumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.minimumAvailableCredits", "type": "number" }, @@ -82900,7 +82900,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.contentClassDescriptor", "projectName": "Ed-Fi", "resourceName": "ContentClassDescriptor", @@ -82980,14 +82980,14 @@ "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationDate", "type": "date" }, "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationYear", "type": "number" }, @@ -83001,7 +83001,7 @@ "LearningResourceChoice.LearningResource.ShortDescription": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.shortDescription", "type": "string" }, @@ -83029,7 +83029,7 @@ "LearningResourceChoice.LearningResourceMetadataURI": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.learningResourceMetadataURI", "type": "string" }, @@ -137125,14 +137125,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -218385,7 +218385,7 @@ "AvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.availableCredits", "type": "number" }, @@ -240126,7 +240126,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -240150,7 +240150,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -240184,7 +240184,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -246242,7 +246242,7 @@ "CumulativeAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeAttemptedCredits", "type": "number" }, @@ -246266,7 +246266,7 @@ "CumulativeEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeEarnedCredits", "type": "number" }, @@ -246609,7 +246609,7 @@ "SessionAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionAttemptedCredits", "type": "number" }, @@ -246633,7 +246633,7 @@ "SessionEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionEarnedCredits", "type": "number" }, @@ -294144,7 +294144,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -294168,7 +294168,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -294202,7 +294202,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -304307,7 +304307,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -304322,7 +304322,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -304337,7 +304337,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { diff --git a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.0-api-schema-authoritative.json b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.0-api-schema-authoritative.json index cacc9c4fe..5dd4778b7 100644 --- a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.0-api-schema-authoritative.json +++ b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.0-api-schema-authoritative.json @@ -14089,7 +14089,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -14113,7 +14113,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -14147,7 +14147,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -32149,14 +32149,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -49802,7 +49802,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -49826,7 +49826,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -49860,7 +49860,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -90166,7 +90166,7 @@ "AttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.attemptedCredits", "type": "number" }, @@ -90296,7 +90296,7 @@ "EarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.earnedCredits", "type": "number" }, @@ -92516,7 +92516,7 @@ "MaximumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.maximumAvailableCredits", "type": "number" }, @@ -92540,7 +92540,7 @@ "MinimumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.minimumAvailableCredits", "type": "number" }, @@ -118515,7 +118515,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.contentClassDescriptor", "projectName": "Ed-Fi", "resourceName": "ContentClassDescriptor", @@ -118595,14 +118595,14 @@ "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationDate", "type": "date" }, "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationYear", "type": "number" }, @@ -118616,7 +118616,7 @@ "LearningResourceChoice.LearningResource.ShortDescription": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.shortDescription", "type": "string" }, @@ -118644,7 +118644,7 @@ "LearningResourceChoice.LearningResourceMetadataURI": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.learningResourceMetadataURI", "type": "string" }, @@ -200497,14 +200497,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -311547,7 +311547,7 @@ "AvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.availableCredits", "type": "number" }, @@ -323589,7 +323589,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -323613,7 +323613,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -323647,7 +323647,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -342978,7 +342978,7 @@ "CumulativeAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeAttemptedCredits", "type": "number" }, @@ -343002,7 +343002,7 @@ "CumulativeEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeEarnedCredits", "type": "number" }, @@ -343345,7 +343345,7 @@ "SessionAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionAttemptedCredits", "type": "number" }, @@ -343369,7 +343369,7 @@ "SessionEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionEarnedCredits", "type": "number" }, @@ -356229,7 +356229,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -356253,7 +356253,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -356287,7 +356287,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -407219,7 +407219,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -407234,7 +407234,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -407249,7 +407249,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { diff --git a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.1-api-schema-authoritative.json b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.1-api-schema-authoritative.json index 0fb10b00b..e80321e98 100644 --- a/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.1-api-schema-authoritative.json +++ b/packages/metaed-plugin-edfi-api-schema/test/integration/artifact/v7_3/ds-6.1-api-schema-authoritative.json @@ -15024,7 +15024,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -15048,7 +15048,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -15082,7 +15082,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -33134,14 +33134,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -50808,7 +50808,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -50832,7 +50832,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -50866,7 +50866,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -91295,7 +91295,7 @@ "AttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.attemptedCredits", "type": "number" }, @@ -91425,7 +91425,7 @@ "EarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.earnedCredits", "type": "number" }, @@ -93645,7 +93645,7 @@ "MaximumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.maximumAvailableCredits", "type": "number" }, @@ -93669,7 +93669,7 @@ "MinimumAvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.minimumAvailableCredits", "type": "number" }, @@ -120432,7 +120432,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.contentClassDescriptor", "projectName": "Ed-Fi", "resourceName": "ContentClassDescriptor", @@ -120512,14 +120512,14 @@ "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationDate", "type": "date" }, "LearningResourceChoice.LearningResource.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.publicationYear", "type": "number" }, @@ -120533,7 +120533,7 @@ "LearningResourceChoice.LearningResource.ShortDescription": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.shortDescription", "type": "string" }, @@ -120561,7 +120561,7 @@ "LearningResourceChoice.LearningResourceMetadataURI": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.learningResourceMetadataURI", "type": "string" }, @@ -207854,14 +207854,14 @@ "ContentStandard.PublicationDateChoice.PublicationDate": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationDate", "type": "date" }, "ContentStandard.PublicationDateChoice.PublicationYear": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.contentStandard.publicationYear", "type": "number" }, @@ -319233,7 +319233,7 @@ "AvailableCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.availableCredits", "type": "number" }, @@ -334232,7 +334232,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -334256,7 +334256,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -334290,7 +334290,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -353683,7 +353683,7 @@ "CumulativeAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeAttemptedCredits", "type": "number" }, @@ -353707,7 +353707,7 @@ "CumulativeEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.cumulativeEarnedCredits", "type": "number" }, @@ -354050,7 +354050,7 @@ "SessionAttemptedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionAttemptedCredits", "type": "number" }, @@ -354074,7 +354074,7 @@ "SessionEarnedCredits.Credits": { "isPartOfIdentity": false, "isReference": false, - "isRequired": true, + "isRequired": false, "path": "$.sessionEarnedCredits", "type": "number" }, @@ -366944,7 +366944,7 @@ "isDescriptor": true, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.citizenshipStatusDescriptor", "projectName": "Ed-Fi", "resourceName": "CitizenshipStatusDescriptor", @@ -366968,7 +366968,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].identificationDocumentUseDescriptor", "projectName": "Ed-Fi", "resourceName": "IdentificationDocumentUseDescriptor", @@ -367002,7 +367002,7 @@ "isDescriptor": true, "isPartOfIdentity": true, "isReference": true, - "isRequired": true, + "isRequired": false, "path": "$.identificationDocuments[*].personalInformationVerificationDescriptor", "projectName": "Ed-Fi", "resourceName": "PersonalInformationVerificationDescriptor", @@ -423199,7 +423199,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -423214,7 +423214,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { @@ -423229,7 +423229,7 @@ "isDescriptor": false, "isPartOfIdentity": false, "isReference": true, - "isRequired": true, + "isRequired": false, "projectName": "Ed-Fi", "referenceJsonPaths": [ { diff --git a/packages/metaed-plugin-edfi-handbook/package.json b/packages/metaed-plugin-edfi-handbook/package.json index be9b9426c..736b80311 100644 --- a/packages/metaed-plugin-edfi-handbook/package.json +++ b/packages/metaed-plugin-edfi-handbook/package.json @@ -32,6 +32,6 @@ "build:copy-non-ts": "copyfiles -u 1 -e \"**/*.ts\" \"src/**/*\" dist --verbose" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" } } diff --git a/packages/metaed-plugin-edfi-handbook/test/integration/EdFiDataHandbookAsExcelGenerator.test.ts b/packages/metaed-plugin-edfi-handbook/test/integration/EdFiDataHandbookAsExcelGenerator.test.ts index b9e9cdfcf..d4a84409a 100644 --- a/packages/metaed-plugin-edfi-handbook/test/integration/EdFiDataHandbookAsExcelGenerator.test.ts +++ b/packages/metaed-plugin-edfi-handbook/test/integration/EdFiDataHandbookAsExcelGenerator.test.ts @@ -23,7 +23,8 @@ import { initialize as initializeOdsRelationalPlugin } from '@edfi/metaed-plugin import { initialize as initializeOdsSqlServerPlugin } from '@edfi/metaed-plugin-edfi-ods-sqlserver'; import { initialize as initializeApiSchemaPlugin } from '@edfi/metaed-plugin-edfi-api-schema'; import { defaultPluginTechVersion } from '@edfi/metaed-core'; -import readXlsxFile from 'read-excel-file/node'; +import { readSheet } from 'read-excel-file/node'; +import type { Row } from 'read-excel-file/node'; import { initialize as initializeHandbookPlugin } from '../../src/index'; import { generate } from '../../src/generator/EdFiDataHandbookAsExcelGenerator'; import { handbookWorksheetName } from '../../src/model/HandbookRow'; @@ -33,7 +34,7 @@ describe('when generating excel version of handbook', (): void => { const metaEd: MetaEdEnvironment = { ...newMetaEdEnvironment(), dataStandardVersion }; let generatorResults: GeneratorResult; - let resultRows: any; + let resultRows: Row[]; beforeAll(async () => { const namespaceBuilder = new NamespaceBuilder(metaEd, []); @@ -86,9 +87,7 @@ describe('when generating excel version of handbook', (): void => { generatorResults = await generate(metaEd); - resultRows = await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: handbookWorksheetName, - }); + resultRows = await readSheet(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), handbookWorksheetName); }); it('should generate excel sheet', (): void => { diff --git a/packages/metaed-plugin-edfi-sql-dictionary/package.json b/packages/metaed-plugin-edfi-sql-dictionary/package.json index 3642977b2..aa33b10aa 100644 --- a/packages/metaed-plugin-edfi-sql-dictionary/package.json +++ b/packages/metaed-plugin-edfi-sql-dictionary/package.json @@ -28,6 +28,6 @@ "build:copy-non-ts": "copyfiles -u 1 -e \"**/*.ts\" \"src/**/*\" dist --verbose" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" } } diff --git a/packages/metaed-plugin-edfi-sql-dictionary/test/integration/SqlDataDictionaryGenerator.test.ts b/packages/metaed-plugin-edfi-sql-dictionary/test/integration/SqlDataDictionaryGenerator.test.ts index a4cfbb20b..52fc6c3d9 100644 --- a/packages/metaed-plugin-edfi-sql-dictionary/test/integration/SqlDataDictionaryGenerator.test.ts +++ b/packages/metaed-plugin-edfi-sql-dictionary/test/integration/SqlDataDictionaryGenerator.test.ts @@ -14,7 +14,8 @@ import { import { initialize as initializeOdsRelationalPlugin } from '@edfi/metaed-plugin-edfi-ods-relational'; import { initialize as initializeOdsSqlServerPlugin } from '@edfi/metaed-plugin-edfi-ods-sqlserver'; import { initialize as initializeUnifiedPlugin } from '@edfi/metaed-plugin-edfi-unified'; -import readXlsxFile from 'read-excel-file/node'; +import { readSheet } from 'read-excel-file/node'; +import type { Row } from 'read-excel-file/node'; import { generate } from '../../src/generator/SqlDataDictionaryGenerator'; import { tablesWorksheetName } from '../../src/model/Tables'; import { columnsWorksheetName } from '../../src/model/Columns'; @@ -24,8 +25,8 @@ describe('when generating a simple sql data dictionary', (): void => { const metaEd: MetaEdEnvironment = { ...newMetaEdEnvironment(), dataStandardVersion }; let generatorResults: GeneratorResult; - let tableResultRows: any; - let columnResultRows: any; + let tableResultRows: Row[]; + let columnResultRows: Row[]; beforeAll(async () => { const namespaceBuilder = new NamespaceBuilder(metaEd, []); @@ -61,13 +62,15 @@ describe('when generating a simple sql data dictionary', (): void => { generatorResults = await generate(metaEd); - tableResultRows = await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: tablesWorksheetName, - }); + tableResultRows = await readSheet( + generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), + tablesWorksheetName, + ); - columnResultRows = await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: columnsWorksheetName, - }); + columnResultRows = await readSheet( + generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), + columnsWorksheetName, + ); }); it('should generate table excel sheet', (): void => { diff --git a/packages/metaed-plugin-edfi-xml-dictionary/package.json b/packages/metaed-plugin-edfi-xml-dictionary/package.json index 1694d221a..a3a5c5a9c 100644 --- a/packages/metaed-plugin-edfi-xml-dictionary/package.json +++ b/packages/metaed-plugin-edfi-xml-dictionary/package.json @@ -17,7 +17,7 @@ "@edfi/metaed-plugin-edfi-unified": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-unified-advanced": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-xsd": "4.7.1-dev.7", - "@xmldom/xmldom": "^0.9.9", + "@xmldom/xmldom": "^0.9.10", "handlebars": "^4.7.7", "js-beautify": "^1.14.7", "write-excel-file": "^2.0.9" @@ -29,6 +29,6 @@ "build:copy-non-ts": "copyfiles -u 1 -e \"**/*.ts\" \"src/**/*\" dist --verbose" }, "devDependencies": { - "read-excel-file": "^5.8.5" + "read-excel-file": "^9.2.0" } } diff --git a/packages/metaed-plugin-edfi-xml-dictionary/test/integration/XmlDataDictionaryGenerator.test.ts b/packages/metaed-plugin-edfi-xml-dictionary/test/integration/XmlDataDictionaryGenerator.test.ts index ddb200342..5355e6a7d 100644 --- a/packages/metaed-plugin-edfi-xml-dictionary/test/integration/XmlDataDictionaryGenerator.test.ts +++ b/packages/metaed-plugin-edfi-xml-dictionary/test/integration/XmlDataDictionaryGenerator.test.ts @@ -13,7 +13,8 @@ import { } from '@edfi/metaed-core'; import { initialize as initializeXsdPlugin } from '@edfi/metaed-plugin-edfi-xsd'; import { initialize as initializeUnifiedPlugin } from '@edfi/metaed-plugin-edfi-unified'; -import readXlsxFile from 'read-excel-file/node'; +import { readSheet } from 'read-excel-file/node'; +import type { Row } from 'read-excel-file/node'; import { generate } from '../../src/generator/XmlDataDictionaryGenerator'; import { elementsWorksheetName } from '../../src/model/Elements'; import { complexTypesWorksheetName } from '../../src/model/ComplexTypes'; @@ -24,9 +25,9 @@ describe('when generating xsd for domain entity', (): void => { const metaEd: MetaEdEnvironment = { ...newMetaEdEnvironment(), dataStandardVersion }; let generatorResults: GeneratorResult; - let elementsResultRows: any; - let complexTypesResultRows: any; - let simpleTypesResultRows: any; + let elementsResultRows: Row[]; + let complexTypesResultRows: Row[]; + let simpleTypesResultRows: Row[]; beforeAll(async () => { const namespaceBuilder = new NamespaceBuilder(metaEd, []); @@ -61,17 +62,20 @@ describe('when generating xsd for domain entity', (): void => { generatorResults = await generate(metaEd); - elementsResultRows = await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: elementsWorksheetName, - }); + elementsResultRows = await readSheet( + generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), + elementsWorksheetName, + ); - complexTypesResultRows = await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: complexTypesWorksheetName, - }); + complexTypesResultRows = await readSheet( + generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), + complexTypesWorksheetName, + ); - simpleTypesResultRows = await readXlsxFile(generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), { - sheet: simpleTypesWorksheetName, - }); + simpleTypesResultRows = await readSheet( + generatorResults.generatedOutput[0].resultStream ?? Buffer.alloc(0), + simpleTypesWorksheetName, + ); }); it('should generate elements excel sheet', (): void => { diff --git a/packages/metaed-plugin-edfi-xsd/package.json b/packages/metaed-plugin-edfi-xsd/package.json index 8d3af772b..d75d398d6 100644 --- a/packages/metaed-plugin-edfi-xsd/package.json +++ b/packages/metaed-plugin-edfi-xsd/package.json @@ -16,7 +16,7 @@ "@edfi/metaed-core": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-unified": "4.7.1-dev.7", "@edfi/metaed-plugin-edfi-unified-advanced": "4.7.1-dev.7", - "@xmldom/xmldom": "^0.9.9", + "@xmldom/xmldom": "^0.9.10", "deep-freeze": "^0.0.1", "handlebars": "^4.7.7", "js-beautify": "^1.14.7",