hof 24.5.1 → 24.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## 2026-10-27 Version 24.7.0 (Stable), @vivekkumar-ho
2
+
3
+ ### Added
4
+ - Added optional `emailReplyToId` support to the Notify component. It can be set in the `Notify` constructor as a default for all emails, or provided per email to override the default, either as a fourth argument to `sendEmail()` or as `emailReplyToId` on the email object passed to `send()`.
5
+ - Empty or missing `emailReplyToId` values are not sent, so GOV.UK Notify uses the service's default reply-to address. Existing consumers are unaffected.
6
+
7
+ ### Chore & Maintenance
8
+ - Added Notify coverage for configured, per-call, overriding and empty `emailReplyToId` values in `send()` and `sendEmail()`.
9
+
10
+ ## 2026-10-07 Version 24.6.0 (Stable), @vivekkumar-ho
11
+
12
+ ### Fixes
13
+ - Preserved original Notify errors and their response payloads, and removed duplicate failure logging.
14
+
15
+ ### Chore & Maintenance
16
+ - Replaced Notify email reference generation with Node.js `crypto.randomUUID`.
17
+ - Added Notify coverage for email payloads, UUID references, attachments, and error propagation and logging.
18
+
1
19
  ## 2026-09-14 Version 24.5.1 (Stable), @nzorba @dk4g @dalglishdhandaHO
2
20
 
3
21
  ### Changed
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const NotifyClient = require('notifications-node-client').NotifyClient;
4
- const { v4: uuidv4 } = require('uuid');
4
+ const { randomUUID } = require('node:crypto');
5
5
  const config = require('../../config/hof-defaults');
6
6
  const logger = require('../../lib/logger');
7
7
 
@@ -10,41 +10,54 @@ module.exports = class Notify {
10
10
  const options = opts || {};
11
11
  this.options = options;
12
12
  this.logger = logger(config);
13
- this.notifyClient = new NotifyClient(options.notifyApiKey);
13
+ this.notifyClient = new NotifyClient(options.notifyApiKey);
14
14
  this.notifyTemplate = options.notifyTemplate;
15
15
  }
16
16
 
17
- async sendEmail(templateId, recipient, personalisation) {
18
- const reference = uuidv4();
17
+ async sendEmail(
18
+ templateId,
19
+ recipient,
20
+ personalisation,
21
+ emailReplyToId = this.options.emailReplyToId
22
+ ) {
23
+ const reference = randomUUID();
24
+ const options = { personalisation, reference };
25
+
26
+ if (emailReplyToId) {
27
+ options.emailReplyToId = emailReplyToId;
28
+ }
19
29
 
20
30
  try {
21
- await this.notifyClient.sendEmail(templateId, recipient, {
22
- personalisation: personalisation,
23
- reference });
31
+ await this.notifyClient.sendEmail(templateId, recipient, options);
24
32
  this.logger.log('info', 'Email sent');
25
33
  } catch (error) {
26
- this.logger.log('error', error.response ? error.response.data : error.message);
27
- throw new Error(error.response ? error.response.data : error.message);
34
+ this.logger.log(
35
+ 'error',
36
+ error.response ? error.response.data : error.message
37
+ );
38
+ // Preserve the original Notify error and its response payload.
39
+ throw error;
28
40
  }
29
41
  }
30
42
 
31
43
  async send(email) {
32
- let personalisation = {
44
+ const personalisation = {
33
45
  'email-subject': email.subject,
34
46
  'email-body': email.body
35
47
  };
36
48
 
37
- if (email.attachment && email.attachment !== undefined) {
38
- personalisation = Object.assign({'email-attachment':
39
- this.notifyClient.prepareUpload(email.attachment)}, personalisation);
49
+ if (email.attachment) {
50
+ personalisation['email-attachment'] = this.notifyClient.prepareUpload(
51
+ email.attachment
52
+ );
40
53
  }
41
54
 
42
- try {
43
- await this.sendEmail(this.notifyTemplate, email.recipient, personalisation);
44
- } catch (error) {
45
- this.logger.log('error', error.response ? error.response.data : error.message);
46
- throw new Error(error.response ? error.response.data : error.message);
47
- }
55
+ await this.sendEmail(
56
+ this.notifyTemplate,
57
+ email.recipient,
58
+ personalisation,
59
+ email.emailReplyToId
60
+ );
48
61
  }
49
62
  };
50
63
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hof",
3
3
  "description": "A bootstrap for HOF projects",
4
- "version": "24.5.1",
4
+ "version": "24.7.0",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
7
7
  "author": "HomeOffice",
@@ -34,13 +34,13 @@
34
34
  "postversion": "git push && git push --tags"
35
35
  },
36
36
  "dependencies": {
37
- "@aws-sdk/client-sesv2": "^3.1109.0",
37
+ "@aws-sdk/client-sesv2": "^3.1157.0",
38
38
  "@rollup/plugin-commonjs": "^29.0.3",
39
39
  "@rollup/plugin-node-resolve": "^16.0.3",
40
40
  "aliasify": "^2.1.0",
41
- "axios": "^1.19.0",
41
+ "axios": "^1.21.0",
42
42
  "bluebird": "^3.7.2",
43
- "body-parser": "^1.20.6",
43
+ "body-parser": "^1.20.9",
44
44
  "callsite": "^1.0.0",
45
45
  "chalk": "^2.4.2",
46
46
  "chokidar": "^3.6.0",
@@ -55,7 +55,7 @@
55
55
  "dotenv": "^16.6.1",
56
56
  "duplexify": "^3.7.1",
57
57
  "exorcist": "^2.0.0",
58
- "express": "^4.22.2",
58
+ "express": "^4.22.3",
59
59
  "express-healthcheck": "^0.1.0",
60
60
  "express-partial-templates": "^0.2.1",
61
61
  "express-session": "^1.19.0",
@@ -71,33 +71,33 @@
71
71
  "i18n-future": "^2.0.1",
72
72
  "i18n-lookup": "^0.1.0",
73
73
  "is-pdf": "^1.0.0",
74
- "libphonenumber-js": "^1.13.10",
74
+ "libphonenumber-js": "^1.13.15",
75
75
  "lodash": "^4.18.1",
76
- "markdown-it": "^14.3.0",
76
+ "markdown-it": "^14.3.3",
77
77
  "minimatch": "^4.2.6",
78
78
  "minimist": "^1.2.8",
79
79
  "mixwith": "^0.1.1",
80
- "morgan": "^1.11.0",
80
+ "morgan": "^1.12.1",
81
81
  "mustache": "^4.2.0",
82
- "notifications-node-client": "^8.4.0",
82
+ "notifications-node-client": "^8.5.0",
83
83
  "redis": "^3.1.2",
84
84
  "reqres": "^3.0.1",
85
85
  "rimraf": "^3.0.2",
86
- "sass": "^1.102.0",
86
+ "sass": "^1.106.1",
87
87
  "serve-static": "^1.16.3",
88
88
  "uglify-js": "^3.19.3",
89
89
  "underscore": "^1.13.8",
90
90
  "urijs": "^1.19.11",
91
91
  "uuid": "^11.1.1",
92
- "winston": "^3.18.3",
93
- "vite": "^7.3.6"
92
+ "winston": "^3.19.0",
93
+ "vite": "^7.3.7"
94
94
  },
95
95
  "devDependencies": {
96
96
  "@cucumber/cucumber": "^7.3.2",
97
- "@cucumber/pretty-formatter": "^4.0.1",
97
+ "@cucumber/pretty-formatter": "^4.1.0",
98
98
  "@types/jest": "^30.0.0",
99
- "@vitest/coverage-v8": "^4.1.10",
100
- "@xmldom/xmldom": "~0.9.11",
99
+ "@vitest/coverage-v8": "^4.1.12",
100
+ "@xmldom/xmldom": "~0.9.12",
101
101
  "chai": "^3.5.0",
102
102
  "chai-as-promised": "^7.1.2",
103
103
  "chai-subset": "^1.6.0",
@@ -106,14 +106,14 @@
106
106
  "eslint": "^8.57.1",
107
107
  "eslint-config-hof": "^1.3.4",
108
108
  "istanbul": "^0.4.5",
109
- "jest": "^30.4.2",
110
- "jest-environment-jsdom": "^30.4.1",
109
+ "jest": "^30.5.2",
110
+ "jest-environment-jsdom": "^30.5.2",
111
111
  "mocha": "^11.8.0",
112
112
  "mocha-sandbox": "^1.0.0",
113
113
  "node-mocks-http": "^1.18.1",
114
114
  "npm-run-all": "^4.1.5",
115
115
  "nyc": "^15.1.0",
116
- "playwright": "^1.62.1",
116
+ "playwright": "^1.64.1",
117
117
  "postcode": "0.2.5",
118
118
  "proxyquire": "^1.8.0",
119
119
  "release-it": "^20.2.1",
@@ -121,7 +121,7 @@
121
121
  "sinon-chai": "^3.7.0",
122
122
  "supertest": "^3.4.2",
123
123
  "travis-conditions": "0.0.0",
124
- "vitest": "^4.1.10",
124
+ "vitest": "^4.1.12",
125
125
  "watchify": "^4.0.0"
126
126
  },
127
127
  "jest": {
@@ -135,6 +135,7 @@
135
135
  "exit": "true"
136
136
  },
137
137
  "resolutions": {
138
+ "vite": "^7.3.6",
138
139
  "form-data": "^4.0.6",
139
140
  "js-yaml": "^4.2.0",
140
141
  "qs": "^6.14.1",
@@ -15,9 +15,9 @@
15
15
  },
16
16
  "author": "",
17
17
  "dependencies": {
18
- "accessible-autocomplete": "^3.0.1",
18
+ "accessible-autocomplete": "^3.0.2",
19
19
  "govuk-frontend": "4.10",
20
- "sass": "^1.104.1"
20
+ "sass": "^1.106.1"
21
21
  },
22
22
  "devDependencies": {
23
23
  "nodemon": "^3.1.14"
package/sandbox/yarn.lock CHANGED
@@ -2,99 +2,93 @@
2
2
  # yarn lockfile v1
3
3
 
4
4
 
5
- "@parcel/watcher-android-arm64@2.5.6":
6
- version "2.5.6"
7
- resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz#5f32e0dba356f4ac9a11068d2a5c134ca3ba6564"
8
- integrity sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==
9
-
10
- "@parcel/watcher-darwin-arm64@2.5.6":
11
- version "2.5.6"
12
- resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz#88d3e720b59b1eceffce98dac46d7c40e8be5e8e"
13
- integrity sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==
14
-
15
- "@parcel/watcher-darwin-x64@2.5.6":
16
- version "2.5.6"
17
- resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz#bf05d76a78bc15974f15ec3671848698b0838063"
18
- integrity sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==
19
-
20
- "@parcel/watcher-freebsd-x64@2.5.6":
21
- version "2.5.6"
22
- resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz#8bc26e9848e7303ac82922a5ae1b1ef1bdb48a53"
23
- integrity sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==
24
-
25
- "@parcel/watcher-linux-arm-glibc@2.5.6":
26
- version "2.5.6"
27
- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz#1328fee1deb0c2d7865079ef53a2ba4cc2f8b40a"
28
- integrity sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==
29
-
30
- "@parcel/watcher-linux-arm-musl@2.5.6":
31
- version "2.5.6"
32
- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz#bad0f45cb3e2157746db8b9d22db6a125711f152"
33
- integrity sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==
34
-
35
- "@parcel/watcher-linux-arm64-glibc@2.5.6":
36
- version "2.5.6"
37
- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz#b75913fbd501d9523c5f35d420957bf7d0204809"
38
- integrity sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==
39
-
40
- "@parcel/watcher-linux-arm64-musl@2.5.6":
41
- version "2.5.6"
42
- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz#da5621a6a576070c8c0de60dea8b46dc9c3827d4"
43
- integrity sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==
44
-
45
- "@parcel/watcher-linux-x64-glibc@2.5.6":
46
- version "2.5.6"
47
- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz#ce437accdc4b30f93a090b4a221fd95cd9b89639"
48
- integrity sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==
49
-
50
- "@parcel/watcher-linux-x64-musl@2.5.6":
51
- version "2.5.6"
52
- resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz#02400c54b4a67efcc7e2327b249711920ac969e2"
53
- integrity sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==
54
-
55
- "@parcel/watcher-win32-arm64@2.5.6":
56
- version "2.5.6"
57
- resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz#caae3d3c7583ca0a7171e6bd142c34d20ea1691e"
58
- integrity sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==
59
-
60
- "@parcel/watcher-win32-ia32@2.5.6":
61
- version "2.5.6"
62
- resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz#9ac922550896dfe47bfc5ae3be4f1bcaf8155d6d"
63
- integrity sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==
64
-
65
- "@parcel/watcher-win32-x64@2.5.6":
66
- version "2.5.6"
67
- resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz#73fdafba2e21c448f0e456bbe13178d8fe11739d"
68
- integrity sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==
5
+ "@parcel/watcher-android-arm64@2.6.0":
6
+ version "2.6.0"
7
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.6.0.tgz#99aaa3223d43807c9340af439cad7e9b6d26ada6"
8
+ integrity sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==
9
+
10
+ "@parcel/watcher-darwin-arm64@2.6.0":
11
+ version "2.6.0"
12
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.6.0.tgz#024496e586b4744f09ce532bbe89fe38ef02a64e"
13
+ integrity sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==
14
+
15
+ "@parcel/watcher-darwin-x64@2.6.0":
16
+ version "2.6.0"
17
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.6.0.tgz#a4621df1359a93d39a332d9bab5ff09016a0608f"
18
+ integrity sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==
19
+
20
+ "@parcel/watcher-freebsd-x64@2.6.0":
21
+ version "2.6.0"
22
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.6.0.tgz#7f565ed1a5b3a5e604e6a4799121518265d62a3d"
23
+ integrity sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==
24
+
25
+ "@parcel/watcher-linux-arm-glibc@2.6.0":
26
+ version "2.6.0"
27
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.6.0.tgz#ad7d3825e67b81999165da42593022045abc0889"
28
+ integrity sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==
29
+
30
+ "@parcel/watcher-linux-arm-musl@2.6.0":
31
+ version "2.6.0"
32
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.6.0.tgz#fe7d1cccb2c483215c090e938cf5cf404d2f9a8c"
33
+ integrity sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==
34
+
35
+ "@parcel/watcher-linux-arm64-glibc@2.6.0":
36
+ version "2.6.0"
37
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.6.0.tgz#7e239dcb4646c4c79f006a7131a48238249530da"
38
+ integrity sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==
39
+
40
+ "@parcel/watcher-linux-arm64-musl@2.6.0":
41
+ version "2.6.0"
42
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.6.0.tgz#c58b8d9c6d8d81594be00dd83aab741c1aaf7e0e"
43
+ integrity sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==
44
+
45
+ "@parcel/watcher-linux-x64-glibc@2.6.0":
46
+ version "2.6.0"
47
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.6.0.tgz#5184fa9a770478d86e56875f4ee163a0abdc8791"
48
+ integrity sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==
49
+
50
+ "@parcel/watcher-linux-x64-musl@2.6.0":
51
+ version "2.6.0"
52
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.6.0.tgz#2d1c55aa7246cbc7670e2612058a8a542c9cf246"
53
+ integrity sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==
54
+
55
+ "@parcel/watcher-win32-arm64@2.6.0":
56
+ version "2.6.0"
57
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.6.0.tgz#15e09432040fee9e2213aa9c10ed589012526def"
58
+ integrity sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==
59
+
60
+ "@parcel/watcher-win32-x64@2.6.0":
61
+ version "2.6.0"
62
+ resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.6.0.tgz#9bee199a2a4accd557b451ac2c1c793f305ae012"
63
+ integrity sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==
69
64
 
70
65
  "@parcel/watcher@^2.4.1":
71
- version "2.5.6"
72
- resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.6.tgz#3f932828c894f06d0ad9cfefade1756ecc6ef1f1"
73
- integrity sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==
66
+ version "2.6.0"
67
+ resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.6.0.tgz#99661f6220070b76a766aba6b7e313a087a1be4f"
68
+ integrity sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==
74
69
  dependencies:
75
70
  detect-libc "^2.0.3"
76
71
  is-glob "^4.0.3"
77
72
  node-addon-api "^7.0.0"
78
- picomatch "^4.0.3"
73
+ picomatch "^4.0.4"
79
74
  optionalDependencies:
80
- "@parcel/watcher-android-arm64" "2.5.6"
81
- "@parcel/watcher-darwin-arm64" "2.5.6"
82
- "@parcel/watcher-darwin-x64" "2.5.6"
83
- "@parcel/watcher-freebsd-x64" "2.5.6"
84
- "@parcel/watcher-linux-arm-glibc" "2.5.6"
85
- "@parcel/watcher-linux-arm-musl" "2.5.6"
86
- "@parcel/watcher-linux-arm64-glibc" "2.5.6"
87
- "@parcel/watcher-linux-arm64-musl" "2.5.6"
88
- "@parcel/watcher-linux-x64-glibc" "2.5.6"
89
- "@parcel/watcher-linux-x64-musl" "2.5.6"
90
- "@parcel/watcher-win32-arm64" "2.5.6"
91
- "@parcel/watcher-win32-ia32" "2.5.6"
92
- "@parcel/watcher-win32-x64" "2.5.6"
93
-
94
- accessible-autocomplete@^3.0.1:
95
- version "3.0.1"
96
- resolved "https://registry.yarnpkg.com/accessible-autocomplete/-/accessible-autocomplete-3.0.1.tgz#8ddf4934d0b4ba6acb28de486dd505e062cdc86e"
97
- integrity sha512-xMshgc2LT5addvvfCTGzIkRrvhbOFeylFSnSMfS/PdjvvvElZkakCwxO3/yJYBWyi1hi3tZloqOJQ5kqqJtH4g==
75
+ "@parcel/watcher-android-arm64" "2.6.0"
76
+ "@parcel/watcher-darwin-arm64" "2.6.0"
77
+ "@parcel/watcher-darwin-x64" "2.6.0"
78
+ "@parcel/watcher-freebsd-x64" "2.6.0"
79
+ "@parcel/watcher-linux-arm-glibc" "2.6.0"
80
+ "@parcel/watcher-linux-arm-musl" "2.6.0"
81
+ "@parcel/watcher-linux-arm64-glibc" "2.6.0"
82
+ "@parcel/watcher-linux-arm64-musl" "2.6.0"
83
+ "@parcel/watcher-linux-x64-glibc" "2.6.0"
84
+ "@parcel/watcher-linux-x64-musl" "2.6.0"
85
+ "@parcel/watcher-win32-arm64" "2.6.0"
86
+ "@parcel/watcher-win32-x64" "2.6.0"
87
+
88
+ accessible-autocomplete@^3.0.2:
89
+ version "3.0.2"
90
+ resolved "https://registry.yarnpkg.com/accessible-autocomplete/-/accessible-autocomplete-3.0.2.tgz#1d6cdd4917ca83083c6af840f9f71b13b516231a"
91
+ integrity sha512-po7fS9YyTFFZjzaenYKtV4JUcb6xh2eFttTsspg5NIX5epQCbderffjW8evYOTuDh+FgJyYPwL9B7qTkhND3gA==
98
92
 
99
93
  anymatch@~3.1.2:
100
94
  version "3.1.3"
@@ -114,10 +108,10 @@ binary-extensions@^2.0.0:
114
108
  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
115
109
  integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
116
110
 
117
- brace-expansion@^5.0.5:
118
- version "5.0.6"
119
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.6.tgz#ec68fe0a641a29d8711579caf641d05bae1f2285"
120
- integrity sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==
111
+ brace-expansion@^5.0.8:
112
+ version "5.0.12"
113
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.12.tgz#995fbb4750a77c4d16a7dc942ff2ca6ef8e675ec"
114
+ integrity sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==
121
115
  dependencies:
122
116
  balanced-match "^4.0.2"
123
117
 
@@ -197,9 +191,9 @@ ignore-by-default@^1.0.1:
197
191
  integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
198
192
 
199
193
  immutable@^5.1.5:
200
- version "5.1.6"
201
- resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.6.tgz#21639bc80f9a0713e141a5f5a154ef9fdabf36dd"
202
- integrity sha512-q1swsS8K7L8usSHuOqF2TAoCCkonYz0SG38wLAggaa4Wml70zixIvt2ql4coQ2C2B3hTjltJry4r6bULwgAXLQ==
194
+ version "5.1.9"
195
+ resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.9.tgz#ac23c3a01992ab665e14ac9ffff298f28cd74a0c"
196
+ integrity sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==
203
197
 
204
198
  is-binary-path@~2.1.0:
205
199
  version "2.1.0"
@@ -226,11 +220,11 @@ is-number@^7.0.0:
226
220
  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
227
221
 
228
222
  minimatch@^10.2.1:
229
- version "10.2.5"
230
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1"
231
- integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==
223
+ version "10.2.6"
224
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.6.tgz#fd956bbe0b77241e9f15ac5dccb1c638060968ef"
225
+ integrity sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==
232
226
  dependencies:
233
- brace-expansion "^5.0.5"
227
+ brace-expansion "^5.0.8"
234
228
 
235
229
  ms@^2.1.3:
236
230
  version "2.1.3"
@@ -268,7 +262,7 @@ picomatch@^2.0.4, picomatch@^2.2.1:
268
262
  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
269
263
  integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
270
264
 
271
- picomatch@^4.0.3:
265
+ picomatch@^4.0.4:
272
266
  version "4.0.7"
273
267
  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.7.tgz#6313360034ccb36b3dc61ecbdff78121f90fe21f"
274
268
  integrity sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==
@@ -279,9 +273,9 @@ pstree.remy@^1.1.8:
279
273
  integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
280
274
 
281
275
  readdirp@^5.0.0:
282
- version "5.0.0"
283
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-5.0.0.tgz#fbf1f71a727891d685bb1786f9ba74084f6e2f91"
284
- integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==
276
+ version "5.1.1"
277
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-5.1.1.tgz#520bca06f9d1ae1b96cc0800dbe84b983d19422c"
278
+ integrity sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==
285
279
 
286
280
  readdirp@~3.6.0:
287
281
  version "3.6.0"
@@ -290,10 +284,10 @@ readdirp@~3.6.0:
290
284
  dependencies:
291
285
  picomatch "^2.2.1"
292
286
 
293
- sass@^1.104.1:
294
- version "1.104.1"
295
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.104.1.tgz#29a4bdb33c48a8bb656e300a33afcafbfcbc8491"
296
- integrity sha512-yDA+1aIG3EHgN4V/BvuhCvu61FF6hEd4e+9DxikUm9U0CAGuvdIZ/UYy7qbOxjhbbWQraoyLlMuzdRGOSV5Bmw==
287
+ sass@^1.106.1:
288
+ version "1.106.1"
289
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.106.1.tgz#53b3df8ebfe0e5e0bc111afe54bd2f6fda089f9c"
290
+ integrity sha512-kD+Gi66vycZcbJt+42NC4z4PXNMcCajVrJPhqoKKXy5cOBMmJQt052CxIBcRjwYXeImHYOpu/ydWWGZQIenl7A==
297
291
  dependencies:
298
292
  chokidar "^5.0.0"
299
293
  immutable "^5.1.5"
@@ -302,9 +296,9 @@ sass@^1.104.1:
302
296
  "@parcel/watcher" "^2.4.1"
303
297
 
304
298
  semver@^7.5.3:
305
- version "7.8.4"
306
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.4.tgz#c73eceebae0616934be8dff28a7fd70757c8e696"
307
- integrity sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==
299
+ version "7.8.5"
300
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69"
301
+ integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==
308
302
 
309
303
  simple-update-notifier@^2.0.0:
310
304
  version "2.0.0"
@@ -314,9 +308,9 @@ simple-update-notifier@^2.0.0:
314
308
  semver "^7.5.3"
315
309
 
316
310
  "source-map-js@>=0.6.2 <2.0.0":
317
- version "1.2.1"
318
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
319
- integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
311
+ version "1.2.2"
312
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.2.tgz#79fb88d97535a21cb27162cb05d211b67acea4ab"
313
+ integrity sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==
320
314
 
321
315
  supports-color@^5.5.0:
322
316
  version "5.5.0"