From 9ab5bf81d4b158c93f9b40f7abd2a924db2871e5 Mon Sep 17 00:00:00 2001 From: Stuart Clark Date: Wed, 7 Oct 2026 06:34:31 +0000 Subject: [PATCH 1/6] feat(nuxt): take the druxt 0.25.0 development release --- nuxt/package-lock.json | 1348 ++++++++++++++++++++++++++-------------- nuxt/package.json | 2 +- 2 files changed, 866 insertions(+), 484 deletions(-) diff --git a/nuxt/package-lock.json b/nuxt/package-lock.json index d8a5813..a50dfc0 100644 --- a/nuxt/package-lock.json +++ b/nuxt/package-lock.json @@ -11,7 +11,7 @@ "core-js": "3.50.0", "dotenv": "^17.4.2", "druxt-auth": "^0.4.0", - "druxt-site": "^0.14.3", + "druxt-site": "0.15.0-dev.20261006113740", "nuxt": "2.15.8", "vue-server-renderer": "^2.7.14", "vue-template-compiler": "^2.7.14" @@ -8934,8 +8934,7 @@ "node_modules/@vue/devtools-api": { "version": "6.6.4", "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", - "license": "MIT" + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/reactivity-transform": { "version": "3.2.36", @@ -9787,6 +9786,7 @@ "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "peer": true, "dependencies": { "follow-redirects": "^1.14.9", "form-data": "^4.0.0" @@ -9805,6 +9805,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "peer": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -11386,7 +11387,6 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -12544,7 +12544,6 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -14197,39 +14196,10 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/drupal-jsonapi-params/-/drupal-jsonapi-params-2.3.2.tgz", "integrity": "sha512-2flOOPT8E8IhxzD4dW8tDToOkzTEzsfbY8k4Nbu11JshRdaJl1jL2lmbB7QLZuMnG77HhjXjEgF8Rw7j/5yB5g==", - "license": "ISC", "dependencies": { "qs": "^6.10.3" } }, - "node_modules/druxt": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.22.0.tgz", - "integrity": "sha512-2q6GCAxEFSZbgFRt5zcz/Pp1xatkyPN8n2tc51+ESPceihr+buATuMdtR/KBEpsgDiUaHOWFMxFYW3mM6XP6IA==", - "license": "MIT", - "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", - "chalk": "^4.1.2", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.31.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" - }, - "peerDependencies": { - "axios": "*", - "consola": "*" - } - }, "node_modules/druxt-auth": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/druxt-auth/-/druxt-auth-0.4.0.tgz", @@ -14243,417 +14213,640 @@ } }, "node_modules/druxt-blocks": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.17.3.tgz", - "integrity": "sha512-O3dMItSmJS3XEXjTOT85AJ43dSwuVqrk6L3ay7GwruLBDZ+yhyDGPNibSxOMBlHhK7A8VhnEHgZn8l/NNpXC6Q==", - "license": "MIT", + "version": "0.18.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.18.0-dev.20261006113740.tgz", + "integrity": "sha512-ulMB2GT0s0cVUXuhsAcnI6WmNwXqUKHCfie8LEohlJaagpugAtQ+HPhToKaxt+I6r5Evlda6sbJkmXZbLF8Kjw==", "dependencies": { - "axios": "0.27.2", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0", - "druxt-entity": "^0.28.1", - "druxt-router": "^0.30.0" + "axios": "0.33.0", + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740" }, - "optionalDependencies": { + "peerDependencies": { "vue": "^2.7.14", "vuex": "^3.6.2" } }, + "node_modules/druxt-blocks/node_modules/axios": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", + "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/druxt-blocks/node_modules/druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", - "license": "MIT", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "dependencies": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", "scule": "^0.3.2" }, "optionalDependencies": { - "core-js": "^3.31.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "core-js": "^3.50.0" }, "peerDependencies": { - "axios": "*", - "consola": "*" + "axios": "0.28.0", + "consola": "*", + "vue": "^2.7.14", + "vuex": "^3.6.2" } }, - "node_modules/druxt-blocks/node_modules/druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", - "license": "MIT", + "node_modules/druxt-blocks/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "dependencies": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10" - }, - "optionalDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, - "peerDependencies": { - "drupal-jsonapi-params": "*" + "engines": { + "node": ">= 6" } }, + "node_modules/druxt-blocks/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/druxt-blocks/node_modules/scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", - "license": "MIT" + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" }, "node_modules/druxt-breadcrumb": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.17.2.tgz", - "integrity": "sha512-aDXlvasWEa5v8/EVWrrC4qAi4bPmDsjdiDmKR3nuCRM4fkTyw1wEGFeu8d5raaQQj70umR1hrtcAhGyq3BnstQ==", - "license": "MIT", + "version": "0.18.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.18.0-dev.20261006113740.tgz", + "integrity": "sha512-3fdHnz52H/W/MqMGM8mmwPvueQhvlvYWQ9IhymL4hdOmt1JrwoeZ++IgTRqhFSyV5yULt/QdaZM8QMyjl2wnjg==", "dependencies": { - "druxt": "^0.23.0", - "druxt-blocks": "^0.17.3", - "druxt-router": "^0.30.0" + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740" }, - "optionalDependencies": { + "peerDependencies": { "vue": "^2.7.14", "vuex": "^3.6.2" } }, + "node_modules/druxt-breadcrumb/node_modules/axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/druxt-breadcrumb/node_modules/druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", - "license": "MIT", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "dependencies": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", "scule": "^0.3.2" }, "optionalDependencies": { - "core-js": "^3.31.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "core-js": "^3.50.0" }, "peerDependencies": { - "axios": "*", - "consola": "*" + "axios": "0.28.0", + "consola": "*", + "vue": "^2.7.14", + "vuex": "^3.6.2" } }, - "node_modules/druxt-breadcrumb/node_modules/druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", - "license": "MIT", + "node_modules/druxt-breadcrumb/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, "dependencies": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10" - }, - "optionalDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, - "peerDependencies": { - "drupal-jsonapi-params": "*" + "engines": { + "node": ">= 6" } }, + "node_modules/druxt-breadcrumb/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "node_modules/druxt-breadcrumb/node_modules/scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", - "license": "MIT" + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" }, "node_modules/druxt-entity": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.28.1.tgz", - "integrity": "sha512-CQf/ZYuPP1XmN1o+2t2Qzs0zmzAXS3faYyeDronBlX8ckMARjVp71Oe/fz9pQLP0bAcUnAO6F4H9XxGYAbFRMg==", - "license": "MIT", + "version": "0.29.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.29.0-dev.20261006113740.tgz", + "integrity": "sha512-DdYSafMZBzR0FffIvoV/cpeEA4DfmxtXxXYjF5NxvzuSa/kpksLuzOxHODiwJNlXEIYR2KvnWInQLX1I8PMuyg==", "dependencies": { "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0", - "druxt-router": "^0.30.0", - "druxt-schema": "^0.11.3" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740", + "druxt-schema": "0.12.0-dev.20261006113740" + } + }, + "node_modules/druxt-entity/node_modules/axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, "node_modules/druxt-entity/node_modules/druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", - "license": "MIT", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "dependencies": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", "scule": "^0.3.2" }, "optionalDependencies": { - "core-js": "^3.31.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "core-js": "^3.50.0" }, "peerDependencies": { - "axios": "*", - "consola": "*" + "axios": "0.28.0", + "consola": "*", + "vue": "^2.7.14", + "vuex": "^3.6.2" } }, - "node_modules/druxt-entity/node_modules/druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", - "license": "MIT", + "node_modules/druxt-entity/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, "dependencies": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10" - }, - "optionalDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, - "peerDependencies": { - "drupal-jsonapi-params": "*" + "engines": { + "node": ">= 6" } }, + "node_modules/druxt-entity/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "node_modules/druxt-entity/node_modules/scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", - "license": "MIT" + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" }, "node_modules/druxt-menu": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.21.0.tgz", - "integrity": "sha512-hTlH3XGsJdTQPhQ6g/FuztPZfPlOZBcaWLms9wxkFj+RLudcsd4qG4JPqMyOxabQu280/Q0TX+4XG1Rrlt8WiQ==", - "license": "MIT", + "version": "0.22.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.22.0-dev.20261006113740.tgz", + "integrity": "sha512-jxCmwJuF6AsIVZtO/7iStH85+ubxgcfES9foUMWWKxKhjvrEtHppzp+OJbr8lVmPOphl1V2zO7rHfBFrRGUg6A==", "dependencies": { "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.24.0", - "druxt-blocks": "^0.17.1" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740" }, - "optionalDependencies": { + "peerDependencies": { "vue": "^2.7.14", "vuex": "^3.6.2" } }, + "node_modules/druxt-menu/node_modules/axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/druxt-menu/node_modules/druxt": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.24.0.tgz", - "integrity": "sha512-JG2m1ieQJ/dfEodd4253UnjTqtOWjXdirHF8/HNQb0FLwjy4uQkFvyo9SSIBkIDdomMEaGiAszjyc0PYVf8QYg==", - "license": "MIT", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "dependencies": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", "scule": "^0.3.2" }, "optionalDependencies": { - "core-js": "^3.31.0", + "core-js": "^3.50.0" + }, + "peerDependencies": { + "axios": "0.28.0", + "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" + } + }, + "node_modules/druxt-menu/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, - "peerDependencies": { - "axios": "*", - "consola": "*" + "engines": { + "node": ">= 6" } }, + "node_modules/druxt-menu/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "node_modules/druxt-menu/node_modules/scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", - "license": "MIT" + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" }, "node_modules/druxt-router": { - "version": "0.29.1", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.29.1.tgz", - "integrity": "sha512-qNIKimi5EO9BlnfZLiIN8eHQxYyngprcDQRsPo8nlXrN2/20Iy6tHd8Gs2Jt3J0U+v+bnB+TnSweZTwXdBaH3w==", - "license": "MIT", + "version": "0.32.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.32.0-dev.20261006113740.tgz", + "integrity": "sha512-Lp9Q1WvgCmTBCTdxNLWupqjvWHm9rG3gTHcVKg1s2waF+CgS3GaawVNZnI7MnhpeTlYTp5ybDOd12wlZtmXLGw==", "dependencies": { - "druxt": "^0.22.0", + "druxt": "0.25.0-dev.20261006113740", "url-parse": "^1.5.10" }, - "optionalDependencies": { + "peerDependencies": { + "drupal-jsonapi-params": "*", "vue": "^2.7.14", "vuex": "^3.6.2" + } + }, + "node_modules/druxt-router/node_modules/axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/druxt-router/node_modules/druxt": { + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "dependencies": { + "@nuxtjs/axios": "^5.13.6", + "@nuxtjs/proxy": "^2.1.0", + "@vue/devtools-api": "^6.6.4", + "chalk": "^4.1.2", + "deepmerge": "^4.3.1", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", + "md5": "^2.3.0", + "querystring": "^0.2.1", + "scule": "^0.3.2" + }, + "optionalDependencies": { + "core-js": "^3.50.0" }, "peerDependencies": { - "drupal-jsonapi-params": "*" + "axios": "0.28.0", + "consola": "*", + "vue": "^2.7.14", + "vuex": "^3.6.2" } }, + "node_modules/druxt-router/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/druxt-router/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "node_modules/druxt-router/node_modules/scule": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" + }, "node_modules/druxt-schema": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.11.3.tgz", - "integrity": "sha512-aObNabCWNQP0bSelVvBRc+eXOP/Tyyc9saZnsNJNGk31M6CFYc5d4Eo9D85f5srgPCpFRzxvkBnN7XUPHiAL6A==", - "license": "MIT", + "version": "0.12.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.12.0-dev.20261006113740.tgz", + "integrity": "sha512-NOzdKYwvZETUSIhRLYcz9yoMlbgzkzyFeEZZ/+Hygo50v5yvqiyH4kVYkfiZl3nUWXo1dhOBdOpQM1mNOXEqKA==", "dependencies": { "consola": "^2.15.3", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740" }, - "optionalDependencies": { + "peerDependencies": { "vue": "^2.7.14", "vuex": "^3.6.2" } }, + "node_modules/druxt-schema/node_modules/axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/druxt-schema/node_modules/druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", - "license": "MIT", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "dependencies": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", "scule": "^0.3.2" }, "optionalDependencies": { - "core-js": "^3.31.0", + "core-js": "^3.50.0" + }, + "peerDependencies": { + "axios": "0.28.0", + "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" + } + }, + "node_modules/druxt-schema/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, - "peerDependencies": { - "axios": "*", - "consola": "*" + "engines": { + "node": ">= 6" } }, + "node_modules/druxt-schema/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "node_modules/druxt-schema/node_modules/scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", - "license": "MIT" + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" }, "node_modules/druxt-site": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.14.3.tgz", - "integrity": "sha512-rQBzxf56maLH8SUA0fSqGd+Sfi9xoSu/Yo7JwrE8XlgFZTs8f/YLduWkcRBS8hLPUdCpfNlqvV1u5pV1FSlZzg==", - "license": "MIT", + "version": "0.15.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.15.0-dev.20261006113740.tgz", + "integrity": "sha512-gDrJ519Q9cm/lgGZm4fywOTjVcGJa4GJBQUaVNLQmhGy5qZGi+c4hBLirLI7KS3qI7d/VE4I61qe/fFy54nl1A==", "dependencies": { - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.22.0", - "druxt-blocks": "^0.17.1", - "druxt-breadcrumb": "^0.17.1", - "druxt-entity": "^0.28.0", - "druxt-menu": "^0.21.0", - "druxt-router": "^0.29.1", - "druxt-schema": "^0.11.2", - "druxt-views": "^0.22.0", - "md5": "^2.3.0" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740", + "druxt-breadcrumb": "0.18.0-dev.20261006113740", + "druxt-entity": "0.29.0-dev.20261006113740", + "druxt-menu": "0.22.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740", + "druxt-schema": "0.12.0-dev.20261006113740", + "druxt-views": "0.23.0-dev.20261006113740" + }, + "peerDependencies": { + "vue": "^2.7.14", + "vuex": "^3.6.2" + } + }, + "node_modules/druxt-site/node_modules/axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/druxt-site/node_modules/druxt": { + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "dependencies": { + "@nuxtjs/axios": "^5.13.6", + "@nuxtjs/proxy": "^2.1.0", + "@vue/devtools-api": "^6.6.4", + "chalk": "^4.1.2", + "deepmerge": "^4.3.1", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", + "md5": "^2.3.0", + "querystring": "^0.2.1", + "scule": "^0.3.2" }, "optionalDependencies": { + "core-js": "^3.50.0" + }, + "peerDependencies": { + "axios": "0.28.0", + "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" } }, + "node_modules/druxt-site/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/druxt-site/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "node_modules/druxt-site/node_modules/scule": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" + }, "node_modules/druxt-views": { - "version": "0.22.2", - "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.22.2.tgz", - "integrity": "sha512-/nYW+RtPBeHXgcr+mk0J3XR31yeLbmgso2ByoMDfgEaU4qR98/e1G7MR9MapqffuxEDZ7xzYbCZXGMxwXV8Ynw==", - "license": "MIT", + "version": "0.23.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.23.0-dev.20261006113740.tgz", + "integrity": "sha512-MnSXEc2CgfsZ7K/nHrZTFh1hzPDKqFkflhf9XYVWRofaoL7C+hY6Bger+mi+dWXoVtsy0m3XiPGFhH9nq9AHWA==", "dependencies": { - "axios": "0.27.2", + "axios": "0.33.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0", - "druxt-blocks": "^0.17.3", - "druxt-entity": "^0.28.1", - "druxt-router": "^0.30.0", + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740", + "druxt-entity": "0.29.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740", "md5": "^2.3.0" }, - "optionalDependencies": { + "peerDependencies": { "vue": "^2.7.14", "vuex": "^3.6.2" } }, + "node_modules/druxt-views/node_modules/axios": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", + "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/druxt-views/node_modules/druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", - "license": "MIT", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "dependencies": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", "scule": "^0.3.2" }, "optionalDependencies": { - "core-js": "^3.31.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "core-js": "^3.50.0" }, "peerDependencies": { - "axios": "*", - "consola": "*" + "axios": "0.28.0", + "consola": "*", + "vue": "^2.7.14", + "vuex": "^3.6.2" } }, - "node_modules/druxt-views/node_modules/druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", - "license": "MIT", + "node_modules/druxt-views/node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "dependencies": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10" - }, - "optionalDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, - "peerDependencies": { - "drupal-jsonapi-params": "*" + "engines": { + "node": ">= 6" } }, - "node_modules/druxt-views/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", - "license": "MIT" + "node_modules/druxt-views/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "node_modules/druxt/node_modules/scule": { + "node_modules/druxt-views/node_modules/scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==", - "license": "MIT" + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" }, "node_modules/dunder-proto": { "version": "1.0.1", @@ -14993,7 +15186,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -16170,15 +16362,17 @@ } }, "node_modules/express-rate-limit": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.11.2.tgz", - "integrity": "sha512-a7uwwfNTh1U60ssiIkuLFWHt4hAC5yxlLGU2VP0X4YNlyEDZAqF4tK3GD3NSitVBrCQmQ0++0uOyFOgC2y4DDw==", - "license": "MIT", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", "engines": { - "node": ">= 14" + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" }, "peerDependencies": { - "express": "^4 || ^5" + "express": ">= 4.11" } }, "node_modules/express/node_modules/body-parser": { @@ -21539,12 +21733,12 @@ } }, "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.2.tgz", + "integrity": "sha512-NHJEb30MGBCkmZXLZwz25t37QR4aY03ZzPYUJXOJaOa92uWwExI9SBQUuIznBYc1xkD7cJNGX7oc3Nl3sq2kQQ==", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" + "picocolors": "^1.1.1", + "shell-quote": "^1.10.0" } }, "node_modules/launch-editor-middleware": { @@ -21555,9 +21749,12 @@ } }, "node_modules/launch-editor/node_modules/shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.12.0.tgz", + "integrity": "sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -22257,7 +22454,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -40198,6 +40394,7 @@ "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "peer": true, "requires": { "follow-redirects": "^1.14.9", "form-data": "^4.0.0" @@ -40207,6 +40404,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "peer": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -43538,34 +43736,6 @@ "qs": "^6.10.3" } }, - "druxt": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.22.0.tgz", - "integrity": "sha512-2q6GCAxEFSZbgFRt5zcz/Pp1xatkyPN8n2tc51+ESPceihr+buATuMdtR/KBEpsgDiUaHOWFMxFYW3mM6XP6IA==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", - "chalk": "^4.1.2", - "core-js": "^3.31.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2", - "vue": "^2.7.14", - "vuex": "^3.6.2" - }, - "dependencies": { - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } - } - }, "druxt-auth": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/druxt-auth/-/druxt-auth-0.4.0.tgz", @@ -43575,51 +43745,61 @@ } }, "druxt-blocks": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.17.3.tgz", - "integrity": "sha512-O3dMItSmJS3XEXjTOT85AJ43dSwuVqrk6L3ay7GwruLBDZ+yhyDGPNibSxOMBlHhK7A8VhnEHgZn8l/NNpXC6Q==", - "requires": { - "axios": "0.27.2", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0", - "druxt-entity": "^0.28.1", - "druxt-router": "^0.30.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "version": "0.18.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.18.0-dev.20261006113740.tgz", + "integrity": "sha512-ulMB2GT0s0cVUXuhsAcnI6WmNwXqUKHCfie8LEohlJaagpugAtQ+HPhToKaxt+I6r5Evlda6sbJkmXZbLF8Kjw==", + "requires": { + "axios": "0.33.0", + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740" }, "dependencies": { + "axios": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", + "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", + "requires": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "requires": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", - "core-js": "^3.31.0", + "core-js": "^3.50.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", - "scule": "^0.3.2", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "scule": "^0.3.2" } }, - "druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "requires": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", @@ -43628,49 +43808,64 @@ } }, "druxt-breadcrumb": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.17.2.tgz", - "integrity": "sha512-aDXlvasWEa5v8/EVWrrC4qAi4bPmDsjdiDmKR3nuCRM4fkTyw1wEGFeu8d5raaQQj70umR1hrtcAhGyq3BnstQ==", + "version": "0.18.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.18.0-dev.20261006113740.tgz", + "integrity": "sha512-3fdHnz52H/W/MqMGM8mmwPvueQhvlvYWQ9IhymL4hdOmt1JrwoeZ++IgTRqhFSyV5yULt/QdaZM8QMyjl2wnjg==", "requires": { - "druxt": "^0.23.0", - "druxt-blocks": "^0.17.3", - "druxt-router": "^0.30.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740" }, "dependencies": { + "axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "requires": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", - "core-js": "^3.31.0", + "core-js": "^3.50.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", - "scule": "^0.3.2", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "scule": "^0.3.2" } }, - "druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, "requires": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", @@ -43679,49 +43874,66 @@ } }, "druxt-entity": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.28.1.tgz", - "integrity": "sha512-CQf/ZYuPP1XmN1o+2t2Qzs0zmzAXS3faYyeDronBlX8ckMARjVp71Oe/fz9pQLP0bAcUnAO6F4H9XxGYAbFRMg==", + "version": "0.29.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.29.0-dev.20261006113740.tgz", + "integrity": "sha512-DdYSafMZBzR0FffIvoV/cpeEA4DfmxtXxXYjF5NxvzuSa/kpksLuzOxHODiwJNlXEIYR2KvnWInQLX1I8PMuyg==", "requires": { "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0", - "druxt-router": "^0.30.0", - "druxt-schema": "^0.11.3" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740", + "druxt-schema": "0.12.0-dev.20261006113740" }, "dependencies": { + "axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "requires": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", - "core-js": "^3.31.0", + "core-js": "^3.50.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", - "scule": "^0.3.2", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "scule": "^0.3.2" } }, - "druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, "requires": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", @@ -43730,39 +43942,65 @@ } }, "druxt-menu": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.21.0.tgz", - "integrity": "sha512-hTlH3XGsJdTQPhQ6g/FuztPZfPlOZBcaWLms9wxkFj+RLudcsd4qG4JPqMyOxabQu280/Q0TX+4XG1Rrlt8WiQ==", + "version": "0.22.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.22.0-dev.20261006113740.tgz", + "integrity": "sha512-jxCmwJuF6AsIVZtO/7iStH85+ubxgcfES9foUMWWKxKhjvrEtHppzp+OJbr8lVmPOphl1V2zO7rHfBFrRGUg6A==", "requires": { "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.24.0", - "druxt-blocks": "^0.17.1", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740" }, "dependencies": { + "axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "druxt": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.24.0.tgz", - "integrity": "sha512-JG2m1ieQJ/dfEodd4253UnjTqtOWjXdirHF8/HNQb0FLwjy4uQkFvyo9SSIBkIDdomMEaGiAszjyc0PYVf8QYg==", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "requires": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", - "core-js": "^3.31.0", + "core-js": "^3.50.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", - "scule": "^0.3.2", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "scule": "^0.3.2" } }, + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", @@ -43771,49 +44009,129 @@ } }, "druxt-router": { - "version": "0.29.1", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.29.1.tgz", - "integrity": "sha512-qNIKimi5EO9BlnfZLiIN8eHQxYyngprcDQRsPo8nlXrN2/20Iy6tHd8Gs2Jt3J0U+v+bnB+TnSweZTwXdBaH3w==", + "version": "0.32.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.32.0-dev.20261006113740.tgz", + "integrity": "sha512-Lp9Q1WvgCmTBCTdxNLWupqjvWHm9rG3gTHcVKg1s2waF+CgS3GaawVNZnI7MnhpeTlYTp5ybDOd12wlZtmXLGw==", "requires": { - "druxt": "^0.22.0", - "url-parse": "^1.5.10", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "druxt": "0.25.0-dev.20261006113740", + "url-parse": "^1.5.10" + }, + "dependencies": { + "axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "druxt": { + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "requires": { + "@nuxtjs/axios": "^5.13.6", + "@nuxtjs/proxy": "^2.1.0", + "@vue/devtools-api": "^6.6.4", + "chalk": "^4.1.2", + "core-js": "^3.50.0", + "deepmerge": "^4.3.1", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", + "md5": "^2.3.0", + "querystring": "^0.2.1", + "scule": "^0.3.2" + } + }, + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "scule": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" + } } }, "druxt-schema": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.11.3.tgz", - "integrity": "sha512-aObNabCWNQP0bSelVvBRc+eXOP/Tyyc9saZnsNJNGk31M6CFYc5d4Eo9D85f5srgPCpFRzxvkBnN7XUPHiAL6A==", + "version": "0.12.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.12.0-dev.20261006113740.tgz", + "integrity": "sha512-NOzdKYwvZETUSIhRLYcz9yoMlbgzkzyFeEZZ/+Hygo50v5yvqiyH4kVYkfiZl3nUWXo1dhOBdOpQM1mNOXEqKA==", "requires": { "consola": "^2.15.3", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740" }, "dependencies": { + "axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "requires": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", - "core-js": "^3.31.0", + "core-js": "^3.50.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", - "scule": "^0.3.2", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "scule": "^0.3.2" + } + }, + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, "scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", @@ -43822,73 +44140,138 @@ } }, "druxt-site": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.14.3.tgz", - "integrity": "sha512-rQBzxf56maLH8SUA0fSqGd+Sfi9xoSu/Yo7JwrE8XlgFZTs8f/YLduWkcRBS8hLPUdCpfNlqvV1u5pV1FSlZzg==", - "requires": { - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.22.0", - "druxt-blocks": "^0.17.1", - "druxt-breadcrumb": "^0.17.1", - "druxt-entity": "^0.28.0", - "druxt-menu": "^0.21.0", - "druxt-router": "^0.29.1", - "druxt-schema": "^0.11.2", - "druxt-views": "^0.22.0", - "md5": "^2.3.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "version": "0.15.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.15.0-dev.20261006113740.tgz", + "integrity": "sha512-gDrJ519Q9cm/lgGZm4fywOTjVcGJa4GJBQUaVNLQmhGy5qZGi+c4hBLirLI7KS3qI7d/VE4I61qe/fFy54nl1A==", + "requires": { + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740", + "druxt-breadcrumb": "0.18.0-dev.20261006113740", + "druxt-entity": "0.29.0-dev.20261006113740", + "druxt-menu": "0.22.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740", + "druxt-schema": "0.12.0-dev.20261006113740", + "druxt-views": "0.23.0-dev.20261006113740" + }, + "dependencies": { + "axios": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", + "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", + "peer": true, + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "druxt": { + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "requires": { + "@nuxtjs/axios": "^5.13.6", + "@nuxtjs/proxy": "^2.1.0", + "@vue/devtools-api": "^6.6.4", + "chalk": "^4.1.2", + "core-js": "^3.50.0", + "deepmerge": "^4.3.1", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", + "md5": "^2.3.0", + "querystring": "^0.2.1", + "scule": "^0.3.2" + } + }, + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "peer": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "peer": true + }, + "scule": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", + "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" + } } }, "druxt-views": { - "version": "0.22.2", - "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.22.2.tgz", - "integrity": "sha512-/nYW+RtPBeHXgcr+mk0J3XR31yeLbmgso2ByoMDfgEaU4qR98/e1G7MR9MapqffuxEDZ7xzYbCZXGMxwXV8Ynw==", + "version": "0.23.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.23.0-dev.20261006113740.tgz", + "integrity": "sha512-MnSXEc2CgfsZ7K/nHrZTFh1hzPDKqFkflhf9XYVWRofaoL7C+hY6Bger+mi+dWXoVtsy0m3XiPGFhH9nq9AHWA==", "requires": { - "axios": "0.27.2", + "axios": "0.33.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "druxt": "^0.23.0", - "druxt-blocks": "^0.17.3", - "druxt-entity": "^0.28.1", - "druxt-router": "^0.30.0", - "md5": "^2.3.0", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "drupal-jsonapi-params": "^2.3.2", + "druxt": "0.25.0-dev.20261006113740", + "druxt-blocks": "0.18.0-dev.20261006113740", + "druxt-entity": "0.29.0-dev.20261006113740", + "druxt-router": "0.32.0-dev.20261006113740", + "md5": "^2.3.0" }, "dependencies": { + "axios": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", + "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", + "requires": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, "druxt": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.23.0.tgz", - "integrity": "sha512-KPgLBJnubhaCiFyX4+Cekn58BZuD0lxMPu7476PnlfxuGXNP1XVm8WN16DrjJMRoUpZsLVZqIEGzCWjQrQ9naw==", + "version": "0.25.0-dev.20261006113740", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", + "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", "requires": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.5.0", + "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", - "core-js": "^3.31.0", + "core-js": "^3.50.0", "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.2.0", - "express-rate-limit": "^6.7.0", - "launch-editor": "^2.6.0", + "drupal-jsonapi-params": "^2.3.2", + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", "md5": "^2.3.0", "querystring": "^0.2.1", - "scule": "^0.3.2", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "scule": "^0.3.2" } }, - "druxt-router": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.30.0.tgz", - "integrity": "sha512-MuvQFwEi/Yq+UrNX0a7tKUUKBeU9VVJzjt86rDVU1yAlJexrrpMRQJSYkW/sFZKAp7OAS6irb0hMSZWe2H9EKg==", + "form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "requires": { - "druxt": "^0.23.0", - "url-parse": "^1.5.10", - "vue": "^2.7.14", - "vuex": "^3.6.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", @@ -44173,7 +44556,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "requires": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -45084,9 +45466,9 @@ } }, "express-rate-limit": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.11.2.tgz", - "integrity": "sha512-a7uwwfNTh1U60ssiIkuLFWHt4hAC5yxlLGU2VP0X4YNlyEDZAqF4tK3GD3NSitVBrCQmQ0++0uOyFOgC2y4DDw==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.1.tgz", + "integrity": "sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==", "requires": {} }, "extend": { @@ -49107,18 +49489,18 @@ } }, "launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.2.tgz", + "integrity": "sha512-NHJEb30MGBCkmZXLZwz25t37QR4aY03ZzPYUJXOJaOa92uWwExI9SBQUuIznBYc1xkD7cJNGX7oc3Nl3sq2kQQ==", "requires": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" + "picocolors": "^1.1.1", + "shell-quote": "^1.10.0" }, "dependencies": { "shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.12.0.tgz", + "integrity": "sha512-PcByqNyT/38F2kDNi006HAMRJaULuBzq/FOsw3qdZvX/GA9W/jamDaRskgHjubHiftXK5sIFxLNkvrXUwcof6Q==" } } }, diff --git a/nuxt/package.json b/nuxt/package.json index bca1c32..b34be88 100644 --- a/nuxt/package.json +++ b/nuxt/package.json @@ -31,7 +31,7 @@ "core-js": "3.50.0", "dotenv": "^17.4.2", "druxt-auth": "^0.4.0", - "druxt-site": "^0.14.3", + "druxt-site": "0.15.0-dev.20261006113740", "nuxt": "2.15.8", "vue-server-renderer": "^2.7.14", "vue-template-compiler": "^2.7.14" From 41737b16cba50b634526a470043cebac5429c3fe Mon Sep 17 00:00:00 2001 From: Stuart Clark Date: Wed, 7 Oct 2026 06:34:32 +0000 Subject: [PATCH 2/6] fix(drupal): send cacheable anonymous responses so the druxt server cache keeps them --- drupal/.ddev/commands/web/drupal-install | 3 +++ drupal/.devtools/provision | 4 +++- drupal/web/sites/default/services.yml | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drupal/.ddev/commands/web/drupal-install b/drupal/.ddev/commands/web/drupal-install index 1eb7433..1267382 100755 --- a/drupal/.ddev/commands/web/drupal-install +++ b/drupal/.ddev/commands/web/drupal-install @@ -49,6 +49,9 @@ drush -r "$DRUPAL_ROOT" -y pm:enable druxt # Allow the anonymous user read only access to required Druxt resources. drush -r "$DRUPAL_ROOT" role:perm:add anonymous "access druxt resources" +# Druxt's server cache keeps anonymous responses only as long as this allows. +drush -r "$DRUPAL_ROOT" -y config:set system.performance cache.page.max_age 60 + # Enable the Simple OAuth module for authentication. drush -r "$DRUPAL_ROOT" -y pm:enable simple_oauth diff --git a/drupal/.devtools/provision b/drupal/.devtools/provision index 6aae287..5a80e0f 100755 --- a/drupal/.devtools/provision +++ b/drupal/.devtools/provision @@ -91,7 +91,9 @@ PASS('Content types applied.'); TASK('Enabling the druxt module.'); drush('pm:enable druxt'); drush('role:perm:add anonymous %s', 'access druxt resources'); -PASS('druxt enabled; anonymous can access Druxt resources.'); +// Druxt's server cache keeps anonymous responses only as long as this allows. +drush('config:set system.performance cache.page.max_age %s', '60'); +PASS('druxt enabled; anonymous can access Druxt resources, cached for 60 seconds.'); TASK('Enabling and configuring simple_oauth.'); drush('pm:enable simple_oauth'); diff --git a/drupal/web/sites/default/services.yml b/drupal/web/sites/default/services.yml index 8c916c9..bf61103 100644 --- a/drupal/web/sites/default/services.yml +++ b/drupal/web/sites/default/services.yml @@ -186,5 +186,7 @@ parameters: exposedHeaders: false # Sets the Access-Control-Max-Age header. maxAge: false - # Sets the Access-Control-Allow-Credentials header. - supportsCredentials: true + # Sets the Access-Control-Allow-Credentials header. Off, as sign-in uses + # OAuth bearer tokens: with it on, every response varies by Origin and + # Druxt's server cache keeps none of them. + supportsCredentials: false From a27355a1929fef284c0f120b4ac6320dd4427f26 Mon Sep 17 00:00:00 2001 From: Stuart Clark Date: Wed, 7 Oct 2026 06:34:33 +0000 Subject: [PATCH 3/6] feat(nuxt): refresh schemas on the server and accept a cache clear from Drupal --- .env.example | 4 ++++ README.md | 6 ++++++ nuxt/nuxt.config.js | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/.env.example b/.env.example index 65a6f85..9879940 100644 --- a/.env.example +++ b/.env.example @@ -9,3 +9,7 @@ BASE_URL=http://quickstart-druxtsite.ddev.site # OAuth consumer (simple_oauth Consumer) client ID. # Written automatically by the setup / provision step. OAUTH_CLIENT_ID= + +# Optional. Turns on POST /_druxt/cache/clear, so Drupal can clear the Nuxt +# server's cache when content changes; send it in an X-Druxt-Secret header. +DRUXT_CACHE_SECRET= diff --git a/README.md b/README.md index 8d13962..eb33395 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,12 @@ Your environment contains a pre-installed, pre-configured and running instance o In a Development Container (VS Code, Codespaces, DevPod), forwarded ports are accessible via your editor's **Ports** panel, or Codespaces' own URL pattern for forwarded ports. +### Caching + +`npm run start` serves a production build, which keeps the JSON:API index and menus for 60 seconds, the page cache max-age Drupal is installed with. Displays changed in Drupal show after the next cache clear, without a rebuild. `npm run dev` caches nothing. + +To clear the cache when content changes, set `DRUXT_CACHE_SECRET` in `.env` and have Drupal send `POST /_druxt/cache/clear` with the secret in an `X-Druxt-Secret` header. The [druxt README](https://github.com/druxt/druxt.js/tree/HEAD/packages/druxt#clearing-from-drupal-with-purge) shows the Purge setup. + ## Services | Port | Service | diff --git a/nuxt/nuxt.config.js b/nuxt/nuxt.config.js index 63022e4..33d9179 100644 --- a/nuxt/nuxt.config.js +++ b/nuxt/nuxt.config.js @@ -81,6 +81,16 @@ export default { // Set the JSON:API endpoint, `/jsonapi` by default. // endpoint: '/jsonapi' + // Server cache; https://druxtjs.org/modules/druxt + // In production the server keeps the JSON:API index and menus for as long + // as Drupal's page cache max-age allows. It is off under `nuxt dev`, and + // `cache: false` turns it off everywhere. + cache: { + // Turns on `POST /_druxt/cache/clear`, for Drupal to call when content + // changes. Send the secret in an `X-Druxt-Secret` header. + secret: process.env.DRUXT_CACHE_SECRET + }, + // DruxtEntity module settings; https://druxtjs.org/modules/entity entity: { // Disable the deprecated DruxtField components. @@ -123,6 +133,14 @@ export default { // wildcard: false }, + // DruxtSchema module settings; https://druxtjs.org/modules/schema + schema: { + // Regenerate a schema on the Nuxt server when a page first needs it, so + // a display changed in Drupal shows without a rebuild. Held until the + // next cache clear; under `nuxt dev` every request regenerates. + refresh: true + }, + // DruxtSite module settings; https://druxtjs.org/modules/site site: { // Disable the DruxtSite default layout. From 306dfcd37b308d3a805364c1469e2e49c35e4f08 Mon Sep 17 00:00:00 2001 From: Stuart Clark Date: Fri, 23 Oct 2026 05:46:55 +0000 Subject: [PATCH 4/6] feat(nuxt): take druxt 0.25.0 and druxt-auth 0.5.1 druxt-site ^0.15.0 brings the released druxt 0.25.0, which installs as a single top-level druxt, so the Nuxt build resolves it again. druxt-auth 0.5.1 admits the axios 0.34 that druxt 0.25.0 needs. The CORS comment now names the case that stops caching: credentials with the * origin. --- drupal/web/sites/default/services.yml | 5 +- nuxt/package-lock.json | 1252 ++++--------------------- nuxt/package.json | 4 +- 3 files changed, 190 insertions(+), 1071 deletions(-) diff --git a/drupal/web/sites/default/services.yml b/drupal/web/sites/default/services.yml index bf61103..d6d69b4 100644 --- a/drupal/web/sites/default/services.yml +++ b/drupal/web/sites/default/services.yml @@ -187,6 +187,7 @@ parameters: # Sets the Access-Control-Max-Age header. maxAge: false # Sets the Access-Control-Allow-Credentials header. Off, as sign-in uses - # OAuth bearer tokens: with it on, every response varies by Origin and - # Druxt's server cache keeps none of them. + # OAuth bearer tokens. With `*` as the allowed origin, turning it on makes + # every response vary by Origin, and Druxt's server cache keeps none of + # them; a single named origin can have it on and still be cached. supportsCredentials: false diff --git a/nuxt/package-lock.json b/nuxt/package-lock.json index a50dfc0..6d7aaa7 100644 --- a/nuxt/package-lock.json +++ b/nuxt/package-lock.json @@ -10,8 +10,8 @@ "dependencies": { "core-js": "3.50.0", "dotenv": "^17.4.2", - "druxt-auth": "^0.4.0", - "druxt-site": "0.15.0-dev.20261006113740", + "druxt-auth": "^0.5.1", + "druxt-site": "^0.15.0", "nuxt": "2.15.8", "vue-server-renderer": "^2.7.14", "vue-template-compiler": "^2.7.14" @@ -9783,13 +9783,13 @@ "license": "MIT" }, "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "peer": true, + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.34.0.tgz", + "integrity": "sha512-CkOmqy7BaT4VC9+wRUmSM3LVwCkKK3UYc7koEqIHWRpOTJypwdNctaVOgnOjhHP3599Ubq2K8KqYwfC7c8NdPQ==", "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.4", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" } }, "node_modules/axios-retry": { @@ -9802,19 +9802,25 @@ } }, "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "peer": true, + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" }, "engines": { "node": ">= 6" } }, + "node_modules/axios/node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -14200,51 +14206,16 @@ "qs": "^6.10.3" } }, - "node_modules/druxt-auth": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/druxt-auth/-/druxt-auth-0.4.0.tgz", - "integrity": "sha512-WwDj36JLTJvgzkGL5aQQBPA6Ja0FqsxLDx0qLeq72rKLRw+ZkMHUYjG9JQvLH06xyfJr+1co1Ax57bdd1xPbVA==", - "dependencies": { - "@nuxtjs/auth-next": "^5.0.0-1667386184.dfbbb54" - }, - "peerDependencies": { - "axios": "^0.27.2", - "body-parser": "^1.20.2" - } - }, - "node_modules/druxt-blocks": { - "version": "0.18.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.18.0-dev.20261006113740.tgz", - "integrity": "sha512-ulMB2GT0s0cVUXuhsAcnI6WmNwXqUKHCfie8LEohlJaagpugAtQ+HPhToKaxt+I6r5Evlda6sbJkmXZbLF8Kjw==", - "dependencies": { - "axios": "0.33.0", - "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740" - }, - "peerDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" - } - }, - "node_modules/druxt-blocks/node_modules/axios": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", - "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/druxt-blocks/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "node_modules/druxt": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0.tgz", + "integrity": "sha512-EEevKpqLCKZVRV+LNvi+PpPI3F2RP5BYE3a28DsuYiH2sBXeLTRC8t0bDuy3bXpvlWih2r/Wn5+IngLfytSZpA==", "dependencies": { "@nuxtjs/axios": "^5.13.6", "@nuxtjs/proxy": "^2.1.0", "@vue/devtools-api": "^6.6.4", "chalk": "^4.1.2", + "consola": "^2.15.3", "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", "express-rate-limit": "^7.5.1", @@ -14257,528 +14228,139 @@ "core-js": "^3.50.0" }, "peerDependencies": { - "axios": "0.28.0", - "consola": "*", + "axios": ">=0.34.0", "vue": "^2.7.14", "vuex": "^3.6.2" } }, - "node_modules/druxt-blocks/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-blocks/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/druxt-blocks/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - }, - "node_modules/druxt-breadcrumb": { - "version": "0.18.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.18.0-dev.20261006113740.tgz", - "integrity": "sha512-3fdHnz52H/W/MqMGM8mmwPvueQhvlvYWQ9IhymL4hdOmt1JrwoeZ++IgTRqhFSyV5yULt/QdaZM8QMyjl2wnjg==", + "node_modules/druxt-auth": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/druxt-auth/-/druxt-auth-0.5.1.tgz", + "integrity": "sha512-wZ9xImioLjeQ6lnuQmFoqdvFmGyxdbRSnNNLBj2+aeI9MPUx9636lu97/j4EeJIZRGR7WG96cjqTyTe+eYU52Q==", "dependencies": { - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740" + "@nuxtjs/auth-next": "^5.0.0-1667386184.dfbbb54", + "http-proxy-middleware": "^1.0.6" }, "peerDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" - } - }, - "node_modules/druxt-breadcrumb/node_modules/axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "axios": ">=0.27.2 <1", + "body-parser": "^1.20.2" } }, - "node_modules/druxt-breadcrumb/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "node_modules/druxt-blocks": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.18.0.tgz", + "integrity": "sha512-qeOm8kfiS78a/6AaOnreao7zay3gEJDdL1IQD3WHLf+F2oBcN12o/2qp/dssYZriqtGCR5KP+NA09TMJW9HDsA==", "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "deepmerge": "^4.3.1", + "axios": "0.34.0", "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.50.0" + "druxt": "^0.25.0" }, "peerDependencies": { - "axios": "0.28.0", - "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" } }, - "node_modules/druxt-breadcrumb/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-breadcrumb/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "node_modules/druxt-breadcrumb/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - }, - "node_modules/druxt-entity": { - "version": "0.29.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.29.0-dev.20261006113740.tgz", - "integrity": "sha512-DdYSafMZBzR0FffIvoV/cpeEA4DfmxtXxXYjF5NxvzuSa/kpksLuzOxHODiwJNlXEIYR2KvnWInQLX1I8PMuyg==", - "dependencies": { - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740", - "druxt-schema": "0.12.0-dev.20261006113740" - } - }, - "node_modules/druxt-entity/node_modules/axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/druxt-entity/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "node_modules/druxt-breadcrumb": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.18.0.tgz", + "integrity": "sha512-xquJskZP/aTdmdCIEsPoZozQqfUAULIORUksqZgB8YCa0ZeucEfyTxKLmqRKed4m5Bg4cyeY+GtJR3rbLVKvSQ==", "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.50.0" + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0", + "druxt-router": "^0.32.0" }, "peerDependencies": { - "axios": "0.28.0", - "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" } }, - "node_modules/druxt-entity/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-entity/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "node_modules/druxt-entity/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - }, - "node_modules/druxt-menu": { - "version": "0.22.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.22.0-dev.20261006113740.tgz", - "integrity": "sha512-jxCmwJuF6AsIVZtO/7iStH85+ubxgcfES9foUMWWKxKhjvrEtHppzp+OJbr8lVmPOphl1V2zO7rHfBFrRGUg6A==", + "node_modules/druxt-entity": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.29.0.tgz", + "integrity": "sha512-I09QIRa7DiInuoBqLQxps+n4KXQteNnDSftD7gB2aIlwfmTj8yZJgxDp1XHXn//BnjBOB6plJHVMOq9brT8Jow==", "dependencies": { "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740" - }, - "peerDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" + "druxt": "^0.25.0", + "druxt-router": "^0.32.0", + "druxt-schema": "^0.12.0" } }, - "node_modules/druxt-menu/node_modules/axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/druxt-menu/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "node_modules/druxt-menu": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.22.0.tgz", + "integrity": "sha512-sTcTbqzIuKCiFSyLLruZHVzSdaByH0PBvAMViMkCcQ9IH3gJsUwQ9rrL22pGR4S19TOcb5UVACD98A1tPhXUxg==", "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.50.0" + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0" }, "peerDependencies": { - "axios": "0.28.0", - "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" } }, - "node_modules/druxt-menu/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-menu/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "node_modules/druxt-menu/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - }, "node_modules/druxt-router": { - "version": "0.32.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.32.0-dev.20261006113740.tgz", - "integrity": "sha512-Lp9Q1WvgCmTBCTdxNLWupqjvWHm9rG3gTHcVKg1s2waF+CgS3GaawVNZnI7MnhpeTlYTp5ybDOd12wlZtmXLGw==", - "dependencies": { - "druxt": "0.25.0-dev.20261006113740", - "url-parse": "^1.5.10" - }, - "peerDependencies": { - "drupal-jsonapi-params": "*", - "vue": "^2.7.14", - "vuex": "^3.6.2" - } - }, - "node_modules/druxt-router/node_modules/axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/druxt-router/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.32.0.tgz", + "integrity": "sha512-Kn7FltLHwnf/2o/+iK2aTnMvvFquA9AfkDXYP/Rv1XY7/tLkb8TK/rpDVVEliF4VcG36eDJU2eCTdTHyEpQwTA==", "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.50.0" + "druxt": "^0.25.0", + "url-parse": "^1.5.10" }, "peerDependencies": { - "axios": "0.28.0", - "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" } }, - "node_modules/druxt-router/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-router/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "node_modules/druxt-router/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - }, "node_modules/druxt-schema": { - "version": "0.12.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.12.0-dev.20261006113740.tgz", - "integrity": "sha512-NOzdKYwvZETUSIhRLYcz9yoMlbgzkzyFeEZZ/+Hygo50v5yvqiyH4kVYkfiZl3nUWXo1dhOBdOpQM1mNOXEqKA==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.12.0.tgz", + "integrity": "sha512-X08cAn+6L74xMX3ZriEIiJgp53pdZhVtJTsO54vBaepy8XsY0++JpAngxTyyJ/F1KyMYXJbEF54L7ntmkoe2ZA==", "dependencies": { "consola": "^2.15.3", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740" - }, - "peerDependencies": { - "vue": "^2.7.14", - "vuex": "^3.6.2" - } - }, - "node_modules/druxt-schema/node_modules/axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/druxt-schema/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.50.0" + "druxt": "^0.25.0" }, "peerDependencies": { - "axios": "0.28.0", - "consola": "*", "vue": "^2.7.14", "vuex": "^3.6.2" } }, - "node_modules/druxt-schema/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-schema/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "node_modules/druxt-schema/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - }, "node_modules/druxt-site": { - "version": "0.15.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.15.0-dev.20261006113740.tgz", - "integrity": "sha512-gDrJ519Q9cm/lgGZm4fywOTjVcGJa4GJBQUaVNLQmhGy5qZGi+c4hBLirLI7KS3qI7d/VE4I61qe/fFy54nl1A==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.15.0.tgz", + "integrity": "sha512-Oj7nWi+g+XuMfMTZ9qteWQHUChZITwMqBK1xOzYQlnh2e80qRXDmKUFXiESpFj/Kjwt0BainarbVBZpViqquyQ==", "dependencies": { "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740", - "druxt-breadcrumb": "0.18.0-dev.20261006113740", - "druxt-entity": "0.29.0-dev.20261006113740", - "druxt-menu": "0.22.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740", - "druxt-schema": "0.12.0-dev.20261006113740", - "druxt-views": "0.23.0-dev.20261006113740" + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0", + "druxt-breadcrumb": "^0.18.0", + "druxt-entity": "^0.29.0", + "druxt-menu": "^0.22.0", + "druxt-router": "^0.32.0", + "druxt-schema": "^0.12.0", + "druxt-views": "^0.23.0" }, "peerDependencies": { "vue": "^2.7.14", "vuex": "^3.6.2" } }, - "node_modules/druxt-site/node_modules/axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/druxt-site/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.50.0" - }, - "peerDependencies": { - "axios": "0.28.0", - "consola": "*", - "vue": "^2.7.14", - "vuex": "^3.6.2" - } - }, - "node_modules/druxt-site/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-site/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "node_modules/druxt-site/node_modules/scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - }, "node_modules/druxt-views": { - "version": "0.23.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.23.0-dev.20261006113740.tgz", - "integrity": "sha512-MnSXEc2CgfsZ7K/nHrZTFh1hzPDKqFkflhf9XYVWRofaoL7C+hY6Bger+mi+dWXoVtsy0m3XiPGFhH9nq9AHWA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.23.0.tgz", + "integrity": "sha512-yipt2VFk1E9yhRodlsDUllzGaN48F6OMN7qAroBw/t48XKJWAI74rJ9FizAXEjih7yYztCkJNy9RsgJEPQ8kwQ==", "dependencies": { - "axios": "0.33.0", + "axios": "0.34.0", "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740", - "druxt-entity": "0.29.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740", + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0", + "druxt-entity": "^0.29.0", + "druxt-router": "^0.32.0", "md5": "^2.3.0" }, "peerDependencies": { @@ -14786,64 +14368,7 @@ "vuex": "^3.6.2" } }, - "node_modules/druxt-views/node_modules/axios": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", - "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/druxt-views/node_modules/druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "dependencies": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - }, - "optionalDependencies": { - "core-js": "^3.50.0" - }, - "peerDependencies": { - "axios": "0.28.0", - "consola": "*", - "vue": "^2.7.14", - "vuex": "^3.6.2" - } - }, - "node_modules/druxt-views/node_modules/form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/druxt-views/node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/druxt-views/node_modules/scule": { + "node_modules/druxt/node_modules/scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" @@ -40391,25 +39916,31 @@ "dev": true }, "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "peer": true, + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.34.0.tgz", + "integrity": "sha512-CkOmqy7BaT4VC9+wRUmSM3LVwCkKK3UYc7koEqIHWRpOTJypwdNctaVOgnOjhHP3599Ubq2K8KqYwfC7c8NdPQ==", "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "follow-redirects": "^1.15.4", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" }, "dependencies": { "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "peer": true, + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" } } }, @@ -43736,70 +43267,26 @@ "qs": "^6.10.3" } }, - "druxt-auth": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/druxt-auth/-/druxt-auth-0.4.0.tgz", - "integrity": "sha512-WwDj36JLTJvgzkGL5aQQBPA6Ja0FqsxLDx0qLeq72rKLRw+ZkMHUYjG9JQvLH06xyfJr+1co1Ax57bdd1xPbVA==", + "druxt": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0.tgz", + "integrity": "sha512-EEevKpqLCKZVRV+LNvi+PpPI3F2RP5BYE3a28DsuYiH2sBXeLTRC8t0bDuy3bXpvlWih2r/Wn5+IngLfytSZpA==", "requires": { - "@nuxtjs/auth-next": "^5.0.0-1667386184.dfbbb54" - } - }, - "druxt-blocks": { - "version": "0.18.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.18.0-dev.20261006113740.tgz", - "integrity": "sha512-ulMB2GT0s0cVUXuhsAcnI6WmNwXqUKHCfie8LEohlJaagpugAtQ+HPhToKaxt+I6r5Evlda6sbJkmXZbLF8Kjw==", - "requires": { - "axios": "0.33.0", + "@nuxtjs/axios": "^5.13.6", + "@nuxtjs/proxy": "^2.1.0", + "@vue/devtools-api": "^6.6.4", + "chalk": "^4.1.2", + "consola": "^2.15.3", + "core-js": "^3.50.0", + "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740" + "express-rate-limit": "^7.5.1", + "launch-editor": "^2.14.1", + "md5": "^2.3.0", + "querystring": "^0.2.1", + "scule": "^0.3.2" }, "dependencies": { - "axios": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", - "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", - "requires": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "scule": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", @@ -43807,476 +43294,107 @@ } } }, + "druxt-auth": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/druxt-auth/-/druxt-auth-0.5.1.tgz", + "integrity": "sha512-wZ9xImioLjeQ6lnuQmFoqdvFmGyxdbRSnNNLBj2+aeI9MPUx9636lu97/j4EeJIZRGR7WG96cjqTyTe+eYU52Q==", + "requires": { + "@nuxtjs/auth-next": "^5.0.0-1667386184.dfbbb54", + "http-proxy-middleware": "^1.0.6" + } + }, + "druxt-blocks": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/druxt-blocks/-/druxt-blocks-0.18.0.tgz", + "integrity": "sha512-qeOm8kfiS78a/6AaOnreao7zay3gEJDdL1IQD3WHLf+F2oBcN12o/2qp/dssYZriqtGCR5KP+NA09TMJW9HDsA==", + "requires": { + "axios": "0.34.0", + "drupal-jsonapi-params": "^2.3.2", + "druxt": "^0.25.0" + } + }, "druxt-breadcrumb": { - "version": "0.18.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.18.0-dev.20261006113740.tgz", - "integrity": "sha512-3fdHnz52H/W/MqMGM8mmwPvueQhvlvYWQ9IhymL4hdOmt1JrwoeZ++IgTRqhFSyV5yULt/QdaZM8QMyjl2wnjg==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/druxt-breadcrumb/-/druxt-breadcrumb-0.18.0.tgz", + "integrity": "sha512-xquJskZP/aTdmdCIEsPoZozQqfUAULIORUksqZgB8YCa0ZeucEfyTxKLmqRKed4m5Bg4cyeY+GtJR3rbLVKvSQ==", "requires": { - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740" - }, - "dependencies": { - "axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0", + "druxt-router": "^0.32.0" } }, "druxt-entity": { - "version": "0.29.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.29.0-dev.20261006113740.tgz", - "integrity": "sha512-DdYSafMZBzR0FffIvoV/cpeEA4DfmxtXxXYjF5NxvzuSa/kpksLuzOxHODiwJNlXEIYR2KvnWInQLX1I8PMuyg==", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/druxt-entity/-/druxt-entity-0.29.0.tgz", + "integrity": "sha512-I09QIRa7DiInuoBqLQxps+n4KXQteNnDSftD7gB2aIlwfmTj8yZJgxDp1XHXn//BnjBOB6plJHVMOq9brT8Jow==", "requires": { "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740", - "druxt-schema": "0.12.0-dev.20261006113740" - }, - "dependencies": { - "axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } + "druxt": "^0.25.0", + "druxt-router": "^0.32.0", + "druxt-schema": "^0.12.0" } }, "druxt-menu": { - "version": "0.22.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.22.0-dev.20261006113740.tgz", - "integrity": "sha512-jxCmwJuF6AsIVZtO/7iStH85+ubxgcfES9foUMWWKxKhjvrEtHppzp+OJbr8lVmPOphl1V2zO7rHfBFrRGUg6A==", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/druxt-menu/-/druxt-menu-0.22.0.tgz", + "integrity": "sha512-sTcTbqzIuKCiFSyLLruZHVzSdaByH0PBvAMViMkCcQ9IH3gJsUwQ9rrL22pGR4S19TOcb5UVACD98A1tPhXUxg==", "requires": { "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740" - }, - "dependencies": { - "axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0" } }, "druxt-router": { - "version": "0.32.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.32.0-dev.20261006113740.tgz", - "integrity": "sha512-Lp9Q1WvgCmTBCTdxNLWupqjvWHm9rG3gTHcVKg1s2waF+CgS3GaawVNZnI7MnhpeTlYTp5ybDOd12wlZtmXLGw==", + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/druxt-router/-/druxt-router-0.32.0.tgz", + "integrity": "sha512-Kn7FltLHwnf/2o/+iK2aTnMvvFquA9AfkDXYP/Rv1XY7/tLkb8TK/rpDVVEliF4VcG36eDJU2eCTdTHyEpQwTA==", "requires": { - "druxt": "0.25.0-dev.20261006113740", + "drupal-jsonapi-params": "^2.3.2", + "druxt": "^0.25.0", "url-parse": "^1.5.10" - }, - "dependencies": { - "axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } } }, "druxt-schema": { - "version": "0.12.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.12.0-dev.20261006113740.tgz", - "integrity": "sha512-NOzdKYwvZETUSIhRLYcz9yoMlbgzkzyFeEZZ/+Hygo50v5yvqiyH4kVYkfiZl3nUWXo1dhOBdOpQM1mNOXEqKA==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/druxt-schema/-/druxt-schema-0.12.0.tgz", + "integrity": "sha512-X08cAn+6L74xMX3ZriEIiJgp53pdZhVtJTsO54vBaepy8XsY0++JpAngxTyyJ/F1KyMYXJbEF54L7ntmkoe2ZA==", "requires": { "consola": "^2.15.3", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740" - }, - "dependencies": { - "axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } + "druxt": "^0.25.0" } }, "druxt-site": { - "version": "0.15.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.15.0-dev.20261006113740.tgz", - "integrity": "sha512-gDrJ519Q9cm/lgGZm4fywOTjVcGJa4GJBQUaVNLQmhGy5qZGi+c4hBLirLI7KS3qI7d/VE4I61qe/fFy54nl1A==", + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/druxt-site/-/druxt-site-0.15.0.tgz", + "integrity": "sha512-Oj7nWi+g+XuMfMTZ9qteWQHUChZITwMqBK1xOzYQlnh2e80qRXDmKUFXiESpFj/Kjwt0BainarbVBZpViqquyQ==", "requires": { "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740", - "druxt-breadcrumb": "0.18.0-dev.20261006113740", - "druxt-entity": "0.29.0-dev.20261006113740", - "druxt-menu": "0.22.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740", - "druxt-schema": "0.12.0-dev.20261006113740", - "druxt-views": "0.23.0-dev.20261006113740" - }, - "dependencies": { - "axios": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.0.tgz", - "integrity": "sha512-Tu7NYoGY4Yoc7I+Npf9HhUMtEEpV7ZiLH9yndTCoNhcpBH0kwcvFbzYN9/u5QKI5A6uefjsNNWaz5olJVYS62Q==", - "peer": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "peer": true - }, - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0", + "druxt-breadcrumb": "^0.18.0", + "druxt-entity": "^0.29.0", + "druxt-menu": "^0.22.0", + "druxt-router": "^0.32.0", + "druxt-schema": "^0.12.0", + "druxt-views": "^0.23.0" } }, "druxt-views": { - "version": "0.23.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.23.0-dev.20261006113740.tgz", - "integrity": "sha512-MnSXEc2CgfsZ7K/nHrZTFh1hzPDKqFkflhf9XYVWRofaoL7C+hY6Bger+mi+dWXoVtsy0m3XiPGFhH9nq9AHWA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/druxt-views/-/druxt-views-0.23.0.tgz", + "integrity": "sha512-yipt2VFk1E9yhRodlsDUllzGaN48F6OMN7qAroBw/t48XKJWAI74rJ9FizAXEjih7yYztCkJNy9RsgJEPQ8kwQ==", "requires": { - "axios": "0.33.0", + "axios": "0.34.0", "deepmerge": "^4.3.1", "drupal-jsonapi-params": "^2.3.2", - "druxt": "0.25.0-dev.20261006113740", - "druxt-blocks": "0.18.0-dev.20261006113740", - "druxt-entity": "0.29.0-dev.20261006113740", - "druxt-router": "0.32.0-dev.20261006113740", + "druxt": "^0.25.0", + "druxt-blocks": "^0.18.0", + "druxt-entity": "^0.29.0", + "druxt-router": "^0.32.0", "md5": "^2.3.0" - }, - "dependencies": { - "axios": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.33.0.tgz", - "integrity": "sha512-juz19g7B3UWT9r3+tgRFQf2Bdy6IKDVroiyuVOUrkILVKHpqHL++K1l8ybvfdEP9B/VE72vk8vllbnedVCm/og==", - "requires": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" - } - }, - "druxt": { - "version": "0.25.0-dev.20261006113740", - "resolved": "https://registry.npmjs.org/druxt/-/druxt-0.25.0-dev.20261006113740.tgz", - "integrity": "sha512-at9ScMU7RwajtSni8HZUfRHWqz0O3v/nVWBFvdrt7ZqQ3DMrWFVcDkDYlclbZKfvjsNbqAiBuiqMNfY7xBD9zQ==", - "requires": { - "@nuxtjs/axios": "^5.13.6", - "@nuxtjs/proxy": "^2.1.0", - "@vue/devtools-api": "^6.6.4", - "chalk": "^4.1.2", - "core-js": "^3.50.0", - "deepmerge": "^4.3.1", - "drupal-jsonapi-params": "^2.3.2", - "express-rate-limit": "^7.5.1", - "launch-editor": "^2.14.1", - "md5": "^2.3.0", - "querystring": "^0.2.1", - "scule": "^0.3.2" - } - }, - "form-data": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", - "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.4", - "mime-types": "^2.1.35" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "scule": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/scule/-/scule-0.3.2.tgz", - "integrity": "sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==" - } } }, "dunder-proto": { diff --git a/nuxt/package.json b/nuxt/package.json index b34be88..37470f7 100644 --- a/nuxt/package.json +++ b/nuxt/package.json @@ -30,8 +30,8 @@ "dependencies": { "core-js": "3.50.0", "dotenv": "^17.4.2", - "druxt-auth": "^0.4.0", - "druxt-site": "0.15.0-dev.20261006113740", + "druxt-auth": "^0.5.1", + "druxt-site": "^0.15.0", "nuxt": "2.15.8", "vue-server-renderer": "^2.7.14", "vue-template-compiler": "^2.7.14" From 8c1a3270a0464eac31306e2172f19583dfbd6900 Mon Sep 17 00:00:00 2001 From: Stuart Clark Date: Fri, 23 Oct 2026 05:56:54 +0000 Subject: [PATCH 5/6] test(nuxt): find regions by their Olivero class druxt 0.25.0 keeps module data such as a region's name out of the wrapper markup, so the end-to-end tests no longer found div[blocks][name=...]. The Olivero layout now wraps each region that has blocks in a div with the class Drupal's Olivero theme gives it, such as region--primary-menu, and the tests select those. --- nuxt/components/druxt/site/Olivero.vue | 53 +++++++++++++++++++------- nuxt/cypress/e2e/content.cy.js | 2 +- nuxt/cypress/e2e/homepage.cy.js | 6 +-- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/nuxt/components/druxt/site/Olivero.vue b/nuxt/components/druxt/site/Olivero.vue index ac429d4..dc83c90 100644 --- a/nuxt/components/druxt/site/Olivero.vue +++ b/nuxt/components/druxt/site/Olivero.vue @@ -1,31 +1,58 @@ diff --git a/nuxt/cypress/e2e/content.cy.js b/nuxt/cypress/e2e/content.cy.js index 4938ec5..ef316f1 100644 --- a/nuxt/cypress/e2e/content.cy.js +++ b/nuxt/cypress/e2e/content.cy.js @@ -40,7 +40,7 @@ it('Article page', () => { // Expect the entity's body to render inside the page's content region - // proof that a real Drupal entity survives the full JSON:API -> // DruxtRouter -> DruxtEntity round trip. - cy.get('div[blocks][name="content"]') + cy.get('.region--content') .should('exist') .should('contain.text', 'Seeded by .devtools/seed-test-content') }) diff --git a/nuxt/cypress/e2e/homepage.cy.js b/nuxt/cypress/e2e/homepage.cy.js index 4e54c56..b215cb5 100644 --- a/nuxt/cypress/e2e/homepage.cy.js +++ b/nuxt/cypress/e2e/homepage.cy.js @@ -5,16 +5,16 @@ it('Homepage', () => { cy.visit('/') // Expect primary menu. - cy.get('div[blocks][name="primary_menu"]').should('exist') + cy.get('.region--primary-menu').should('exist') .find('li').should('have.length', 1) .first().should('contain.text', 'Home') // Expect secondary menu. - cy.get('div[blocks][name="secondary_menu"]').should('exist') + cy.get('.region--secondary-menu').should('exist') .find('li').should('have.length', 1) .first().should('contain.text', 'Log in') // Expect empty frontpage in content block. - cy.get('div[blocks][name="content"]').should('exist') + cy.get('.region--content').should('exist') .should('contain.text', 'No front page content has been created yet.') }) From 5a14d8aa74de4d7c72d6cc219cc2451675da3e7e Mon Sep 17 00:00:00 2001 From: Stuart Clark Date: Fri, 23 Oct 2026 06:22:47 +0000 Subject: [PATCH 6/6] docs: set the page cache max-age on a site installed earlier The installers set Drupal's page cache max-age to 60, but a site installed before keeps its old value, 0 by default, and the server cache keeps nothing. The caching section gives the two drush commands that set it. --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index eb33395..0a77d24 100644 --- a/README.md +++ b/README.md @@ -228,6 +228,13 @@ In a Development Container (VS Code, Codespaces, DevPod), forwarded ports are ac `npm run start` serves a production build, which keeps the JSON:API index and menus for 60 seconds, the page cache max-age Drupal is installed with. Displays changed in Drupal show after the next cache clear, without a rebuild. `npm run dev` caches nothing. +A site installed before this setting keeps its old max-age, which is 0 on a default Drupal install, and the server cache keeps nothing. Set it once: + +```bash +npm run drush -- config:set system.performance cache.page.max_age 60 -y +npm run drush -- cache:rebuild +``` + To clear the cache when content changes, set `DRUXT_CACHE_SECRET` in `.env` and have Drupal send `POST /_druxt/cache/clear` with the secret in an `X-Druxt-Secret` header. The [druxt README](https://github.com/druxt/druxt.js/tree/HEAD/packages/druxt#clearing-from-drupal-with-purge) shows the Purge setup. ## Services