From caa2f2a161d18cb533d1cb47a6f40de73ded9763 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Tue, 10 Jun 2025 11:34:57 -0500 Subject: [PATCH 01/13] Attempting to fix automation problems --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 76817c9..aa5f7be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /usr/src/app # Install app dependencies COPY package*.json ./ COPY .npmrc ./ -COPY yarn.lock ./ +#COPY yarn.lock ./ RUN yarn install --frozen-lockfile # Build and test diff --git a/package.json b/package.json index 7c5c066..5b405a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.16", + "version": "1.0.17", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { From 65b7aa9d4cc2ae610caf1e2999309793c96a6551 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Tue, 10 Jun 2025 11:52:34 -0500 Subject: [PATCH 02/13] Had commented out the wrong line in the Dockerfile --- Dockerfile | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index aa5f7be..5d9ebd4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,8 +5,8 @@ WORKDIR /usr/src/app # Install app dependencies COPY package*.json ./ -COPY .npmrc ./ -#COPY yarn.lock ./ +#COPY .npmrc ./ +COPY yarn.lock ./ RUN yarn install --frozen-lockfile # Build and test diff --git a/package.json b/package.json index 5b405a2..b2956bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.17", + "version": "1.0.18", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { From a1ef2e57e6f20b20a07ec4c3d8cfe387d82f67f7 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Tue, 10 Jun 2025 11:56:46 -0500 Subject: [PATCH 03/13] Attempting to fix integrity issue when building the image --- package.json | 3 ++- yarn.lock | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index b2956bb..81dd8b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.18", + "version": "1.0.19", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { @@ -10,6 +10,7 @@ }, "dependencies": { "@BridgemanAccessible/ba-auth": "^1.0.0", + "@BridgemanAccessible/ba-logging": "^1.0.0", "@BridgemanAccessible/ba-web-framework": "^1.0.0", "@BridgemanAccessible/listmonk-node-client": "^1.0.0", "ejs": "^3.1.6", diff --git a/yarn.lock b/yarn.lock index 9df5ef4..43d74ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,8 +22,8 @@ "@BridgemanAccessible/ba-logging@^1.0.0": version "1.0.0" - resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/ba-logging/-/ba-logging-1.0.0.tgz#354bbf9c4e9e8c6e72b9e3e4b353519aac54f6a2" - integrity sha512-LOkh1PL7U31NVtZrWOLRbPvmBchE/Mp1CzTWwFDRch9lTAITYvfrPLhWcBLDm98sE64fBluMqeok8ZEfqPoq2Q== + resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/ba-logging/-/ba-logging-1.0.0.tgz#367c4aa6fbc5278073f9750f76406e2a25aba9df" + integrity sha512-PuryL6BIrZgny8iKDPrZSoOwrGvr2kDVpKjNzJk6Z1o16vbxNRguU0hHCPCYVhpxdgFORJfH6GJlgY4kkk8Qlg== dependencies: axios "^1.8.4" express "^4.21.2" From 98d68c6edc533173b17587bf421ca572587f714f Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Tue, 10 Jun 2025 12:14:02 -0500 Subject: [PATCH 04/13] More attempts to fix integrity issues while building image --- package.json | 4 +-- yarn.lock | 74 ++++++++++++++++++++++++++-------------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 81dd8b0..840a405 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.19", + "version": "1.0.20", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { @@ -11,7 +11,7 @@ "dependencies": { "@BridgemanAccessible/ba-auth": "^1.0.0", "@BridgemanAccessible/ba-logging": "^1.0.0", - "@BridgemanAccessible/ba-web-framework": "^1.0.0", + "@BridgemanAccessible/ba-web-framework": "^1.0.11", "@BridgemanAccessible/listmonk-node-client": "^1.0.0", "ejs": "^3.1.6", "express": "^4.17.1", diff --git a/yarn.lock b/yarn.lock index 43d74ce..0853a7c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -28,10 +28,10 @@ axios "^1.8.4" express "^4.21.2" -"@BridgemanAccessible/ba-web-framework@^1.0.0": - version "1.0.0" - resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/ba-web-framework/-/ba-web-framework-1.0.0.tgz#f9a1825fabb3aaf76d1064f27c412018b9da738a" - integrity sha512-zugaSwYJwvDSSIBtGlqrHVs3LG3l48i8mgNLmnMfG8xDbem9UKgYmUwr/d2+jr92Zg0AMr8jA4dftiLVol5cnw== +"@BridgemanAccessible/ba-web-framework@^1.0.11": + version "1.0.11" + resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/ba-web-framework/-/ba-web-framework-1.0.11.tgz#64c0fe4a02444385f766d4a04ac855804a1a951c" + integrity sha512-GsMOiQfSk3sH9ORUxcgsRcsY2GMdoCGH3CXFwl3p8zZXSR0Dw+wQYc5Ibdz+mVwsukaVEpJG4nm+754Fpb6hHQ== dependencies: "@BridgemanAccessible/ba-auth" "^1.0.0" express "^4.19.2" @@ -46,10 +46,10 @@ dependencies: axios "^1.7.7" -"@asamuzakjp/css-color@^3.1.2": - version "3.1.3" - resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.1.3.tgz#e408e8756a0dc561ccf20f52931034ea509ee760" - integrity sha512-u25AyjuNrRFGb1O7KmWEu0ExN6iJMlUmDSlOPW/11JF8khOrIGG6oCoYpC+4mZlthNVhFUahk68lNrNI91f6Yg== +"@asamuzakjp/css-color@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz#cc42f5b85c593f79f1fa4f25d2b9b321e61d1794" + integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw== dependencies: "@csstools/css-calc" "^2.1.3" "@csstools/css-color-parser" "^3.0.9" @@ -230,28 +230,28 @@ resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.2.tgz#82592c9a7c2b83c293d9161894e2a6471feb97b8" integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== -"@csstools/css-calc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.3.tgz#6f68affcb569a86b91965e8622d644be35a08423" - integrity sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw== +"@csstools/css-calc@^2.1.3", "@csstools/css-calc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" + integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== "@csstools/css-color-parser@^3.0.9": - version "3.0.9" - resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.9.tgz#8d81b77d6f211495b5100ec4cad4c8828de49f6b" - integrity sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw== + version "3.0.10" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz#79fc68864dd43c3b6782d2b3828bc0fa9d085c10" + integrity sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg== dependencies: "@csstools/color-helpers" "^5.0.2" - "@csstools/css-calc" "^2.1.3" + "@csstools/css-calc" "^2.1.4" "@csstools/css-parser-algorithms@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" - integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" + integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== "@csstools/css-tokenizer@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" - integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" + integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== "@gulpjs/messages@^1.1.0": version "1.1.0" @@ -1357,11 +1357,11 @@ create-require@^1.1.0: integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cssstyle@^4.0.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.3.1.tgz#68a3c9f5a70aa97d5a6ebecc9805e511fc022eb8" - integrity sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q== + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.4.0.tgz#a185e81564a6047693586d904d278cbe8565ba07" + integrity sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A== dependencies: - "@asamuzakjp/css-color" "^3.1.2" + "@asamuzakjp/css-color" "^3.2.0" rrweb-cssom "^0.8.0" dashdash@^1.12.0: @@ -1572,10 +1572,10 @@ enhanced-resolve@^5.17.1: graceful-fs "^4.2.4" tapable "^2.2.0" -entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" + integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== errno@^0.1.3: version "0.1.8" @@ -3009,11 +3009,11 @@ parse-passwd@^1.0.0: integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== parse5@^7.1.2: - version "7.2.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.2.1.tgz#8928f55915e6125f430cc44309765bf17556a33a" - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== dependencies: - entities "^4.5.0" + entities "^6.0.0" parseurl@~1.3.3: version "1.3.3" @@ -4221,9 +4221,9 @@ wrappy@1: integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.18.0: - version "8.18.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb" - integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== + version "8.18.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.2.tgz#42738b2be57ced85f46154320aabb51ab003705a" + integrity sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ== xml-name-validator@^5.0.0: version "5.0.0" From 2fa68b6cb68446c8851b644d43603bfc81a2285e Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Tue, 10 Jun 2025 15:11:20 -0500 Subject: [PATCH 05/13] Fixed issues stemming from mismatch between code and new dependency version --- package.json | 2 +- src/server.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 840a405..870ce22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.20", + "version": "1.0.21", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { diff --git a/src/server.ts b/src/server.ts index b9f90b0..03b7ba7 100644 --- a/src/server.ts +++ b/src/server.ts @@ -10,7 +10,7 @@ const domain = process.env.DOMAIN || 'localhost'; * * @param app The Express app that gets created/started. */ -function onStart(app: Application) { +function onStart(app: App) { // Currently within the Server class implementation, // which is then implemented by the accounts dashboard, // only the RFC8414 path/callback is setup by default @@ -18,7 +18,7 @@ function onStart(app: Application) { // this should be easy enough to change but don't want to fiddle with it right now //const oidcLink = PointerServer.createOIDCLink('account.bridgemanaccessible.ca'); const rfc8414Link = PointerServer.createRFC8414Link('account.bridgemanaccessible.ca'); - PointerServer.setup(app, { links: [/*oidcLink, */rfc8414Link] }); + PointerServer.setup(app.getExpressApp(), { links: [/*oidcLink, */rfc8414Link] }); } async function main() { From d2db2037f44dba2801e336535ada38fbcb6fc9b1 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Tue, 10 Jun 2025 15:18:19 -0500 Subject: [PATCH 06/13] Need to trip the action one more time as fixed a network issue on runner (had nothing to do with repo) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 870ce22..610b1f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.21", + "version": "1.0.22", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { From 4e1a13b5377494d9263ca1e903ff590dabacf608 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Wed, 11 Jun 2025 14:18:49 -0500 Subject: [PATCH 07/13] Mostly added a contact page instead of direct mail link. But lots of little things mostly around cleanup too. --- src/pages/about.ejs | 14 +- src/pages/contact.ejs | 70 +++ src/pages/education-and-training.ejs | 1 + src/pages/includes/header.ejs | 6 +- src/pages/new-design-2.ejs | 49 -- src/pages/new-design-3.ejs | 146 ----- src/pages/services.ejs | 211 ++++--- src/pages/services.old.ejs | 67 +++ src/routes/AboutController.ts | 14 +- src/routes/ContactController.ts | 16 + src/routes/HomeController.ts | 6 +- src/routes/ServicesController.ts | 2 +- src/static/css/contact.css | 273 +++++++++ src/static/css/nav.css | 5 + src/static/css/new-design-2.css | 196 ------- src/static/css/new-design.css | 141 ----- .../css/{new-design-3.css => services.css} | 0 yarn.lock | 547 ++++++++++-------- 18 files changed, 905 insertions(+), 859 deletions(-) create mode 100644 src/pages/contact.ejs create mode 100644 src/pages/education-and-training.ejs delete mode 100644 src/pages/new-design-2.ejs delete mode 100644 src/pages/new-design-3.ejs create mode 100644 src/pages/services.old.ejs create mode 100644 src/routes/ContactController.ts create mode 100644 src/static/css/contact.css delete mode 100644 src/static/css/new-design-2.css delete mode 100644 src/static/css/new-design.css rename src/static/css/{new-design-3.css => services.css} (100%) diff --git a/src/pages/about.ejs b/src/pages/about.ejs index dcf3238..96908e4 100644 --- a/src/pages/about.ejs +++ b/src/pages/about.ejs @@ -64,6 +64,11 @@ if (typeof(person.image) !== 'undefined') { %> A photo of <%= person.fname %> <%= person.lname %> + <% + } + else { + %> + <% } %> @@ -88,7 +93,14 @@ <% if (typeof(person.email) !== 'undefined') { %> - Contact + Email + <% + } + %> + <% + if (typeof(person.phone) !== 'undefined') { + %> + Call <% } %> diff --git a/src/pages/contact.ejs b/src/pages/contact.ejs new file mode 100644 index 0000000..cfcff38 --- /dev/null +++ b/src/pages/contact.ejs @@ -0,0 +1,70 @@ +
+
+

Connect with Bridgeman Accessible

+

We're here to help you build a more inclusive digital world. Reach out with any questions, feedback, or to discuss your accessibility needs.

+
+
+ +
+
+ + + +
+
+ + \ No newline at end of file diff --git a/src/pages/education-and-training.ejs b/src/pages/education-and-training.ejs new file mode 100644 index 0000000..df4cd31 --- /dev/null +++ b/src/pages/education-and-training.ejs @@ -0,0 +1 @@ +

Education and Training

\ No newline at end of file diff --git a/src/pages/includes/header.ejs b/src/pages/includes/header.ejs index af0c0f8..8587810 100644 --- a/src/pages/includes/header.ejs +++ b/src/pages/includes/header.ejs @@ -25,6 +25,10 @@ <% } else { %>
  • About Us
  • <% } %> -
  • Contact Us
  • + <% if (title === 'Contact') { %> +
  • Contact Us
  • + <% } else { %> +
  • Contact Us
  • + <% } %> \ No newline at end of file diff --git a/src/pages/new-design-2.ejs b/src/pages/new-design-2.ejs deleted file mode 100644 index 4810b6e..0000000 --- a/src/pages/new-design-2.ejs +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - Thermometer Layout - - - -
    -
    -
    -

    Section Title 1

    -
    -

    This is the content for the first section. It can contain multiple paragraphs and other elements.

    -
    -
    - -
    -
    - -
    -

    Another Section

    -
    -

    More interesting content for the second section goes here.

    -
    -
    - -
    -
    - -
    - -
    -
    -
    -
    -
    - - \ No newline at end of file diff --git a/src/pages/new-design-3.ejs b/src/pages/new-design-3.ejs deleted file mode 100644 index 6965b00..0000000 --- a/src/pages/new-design-3.ejs +++ /dev/null @@ -1,146 +0,0 @@ - -
    -
    -
    -
    -

    Self-Serve Tools (Products)

    - Price: Varies -
    -
    -

    - We provide a variety of self-serve tools that can be used to help make technology (or people's use of technology) more accessible. - These tools are designed to be user-friendly and can be used by individuals or organizations without the need for specialized training or expertise. -

    -
      -
    • Accessibility Events Platform (AEP)
    • -
    -
    - -
    - -
    -
    -

    Event, Media, Documents and Website Support

    - Price: $125/hour (subject to change) -
    -
    -

    - We provide technical support for situations where there are disability/accessibility specific requirements or concerns. -

    -

    Event Support

    -

    - We specialize in helping facilitate any technical needs for accessibility features such as CART & captions, ASL/LSQ, and more. - Our services are available for both online and hybrid events, and may be available for in-person events on a case by case basis. - Noting, our office is located in Winnipeg, Manitoba, Canada and we are not able to travel outside of the city for in-person events at this time. -

    - -

    Media Accessibility

    -

    We can help clients to remediate (make accessible) any media that they have created or are using.

    -

    Document Accessibility

    -

    We can help clients to remediate (make accessible) any documents that they have created or are using.

    -

    - Our past work has focused on PDFs, Word documents, PowerPoints and Excel spreadsheets. - We are open to working with other document types as well, but with other formats we may not be able to provide the same level of support. -

    -

    Website Advising/Testing

    -

    - We do offer some limited website testing and advising services (that don't include development). - Though this is somewhat limited (at least as A La Carte) compared to our many, many competitors in this area. -

    -
    -
    - Read More -
    -
    - -
    -
    -

    Consulting and Co-Development

    - Price: $80/consultant or developer/hour (subject to change) -
    -
    -

    - We work very closely with or alongside developers to make software and hardware accessible. - Our team has extensive experience in not only accessibility (which many of our compeitors do as well) but in software development and engineering as well. - Which means we provide you the uniquely specific experience and guidance that goes so much deeper than "you should do X because of Y which makes it more accessible" but the - "your app is doing X which isn't accessible because of Y but if you look at line N in file M of your code you can do Z to fix it". -

    -

    - This comes with the caveat that we are often more interested in the how than the what. - Which means our clients are expected to have a good idea of what they want to build and what solutions may or may not work for them. - We can help with this to an extent but we are not a design or content creation agency and we do not provide design or content development services. - We have often had partners like disability specific organizations that can help with accessible design and content creation and we are happy to connect you and work with them as appropriate. -

    -

    - In specific cases where the product or service will provide a meaningful and significant contribution to advancing the accessibility of technology we also offer co-development not only on accessibility but on the product or service in general. - When applicable, we don't just bring accessibility into the development but also development expertise in areas such as infrastructure, security, testing and more. -

    -
      -
    • Accessibility issue root cause analysis (and solution suggestion)
    • -
    • Technial design as it relates to accessibility integration or subsystems
    • -
    • Assistive technology or accessibility tool integration (ex. accessibility testing in CI pipelines suggestion and setup)
    • -
    • Training and education (on developer tools, coding languages, APIs or other technical topics around accessibility)
    • -
    -
    - -
    - -
    -
    -

    Disability Organization Technical Support

    - Price: $45/contractor/hour - minimum 10 hours (subject to change) -
    -
    -

    - We provide IT support to disability-specific organizations or organiztions that work significanlty with people living with disabilities and help them become more digitally literate and efficient. - Our team has experience working with a variety of organizations and can provide customized solutions to meet their unique needs. -

    -
      -
    • IT support and troubleshooting
    • -
    • Training and education on technology use
    • -
    • Assistive technology support
    • -
    • Database management
    • -
    • Website design and development
    • -
    -
    - -
    - -
    - -
    - \ No newline at end of file diff --git a/src/pages/services.ejs b/src/pages/services.ejs index 9700db3..6965b00 100644 --- a/src/pages/services.ejs +++ b/src/pages/services.ejs @@ -1,67 +1,146 @@ -

    Our Services

    + +
    +
    +
    +
    +

    Self-Serve Tools (Products)

    + Price: Varies +
    +
    +

    + We provide a variety of self-serve tools that can be used to help make technology (or people's use of technology) more accessible. + These tools are designed to be user-friendly and can be used by individuals or organizations without the need for specialized training or expertise. +

    +
      +
    • Accessibility Events Platform (AEP)
    • +
    +
    + +
    -
    -

    Event and Assistive Technology Support

    - Price: $125/hour (subject to change) -

    - We provide technical support for situations where there are disability/accessibility specific requirements or concerns. -

    -

    Event Support

    -

    - We specialize in features such as captions, ASL/LSQ, English/French interpretation, and more. - Our services are available for both online and hybrid events, and may be available for in-person events on a case by case basis. -

    -

    - More specifically, we often provide the following services (though may be open to others upon request): -

    -
      -
    • Event planning and coordination as it relates to needed technology and features (including researching and reporting on needed equipment, licenses or other resources or requirements)
    • -
    • Event setup and troubleshooting
    • -
    • Event moderation and technical problem troubleshooting
    • -
    • Event recording and editing
    • -
    -

    Specialized Technology Support

    -

    - We allow clients to feel confident that their employees of any abilities will be well supported when it comes to technology. -

    -
    -
    -

    Co-Development and Consulting

    - Price: $80/hour (subject to change) -

    - We work very closely with or alongside developers to make software and hardware accessible. - Our team has extensive experience in not only accessibility (which many of our compeitors do as well) but in software development and engineering as well. - Which means we provide you the uniquely specific experience and guidance that goes so much deeper than "you should do X because of Y which makes it more accessible" but the - "your app is doing X which isn't accessible because of Y but if you look at line N in file M of your code you can do Z to fix it". -

    -

    - This comes with the caveat that we are often more interested in the how than the what. Which means our clients are expected to have a good idea of what they want to build and - what solutions may or may not work for them. We can help with this to an extent but we are not a design or content creation agency and we do not provide design or content development services. - We have often had partners like disability specific organizations that can help with accessible design and content creation and we are happy to connect you and work with them as appropriate. -

    -

    - In specific cases where the product or service will provide a meaningful and significant contribution to advancing the accessibility of technology we also offer co-development not only on accessibility but on the product or service in general. - When applicable, we don't just bring accessibility into the development but also development expertise in areas such as infrastructure, security, testing and more. -

    -
      -
    • Accessibility issue root cause analysis (and solution suggestion)
    • -
    • Technial design as it relates to accessibility integration or subsystems
    • -
    • Assistive technology or accessibility tool integration (ex. accessibility testing in CI pipelines suggestion and setup)
    • -
    • Training and education (on developer tools, coding languages, APIs or other technical topics around accessibility)
    • -
    -
    -
    -

    Disability Organization Technical Support

    - Price: $45/hour (subject to change) -

    - We provide IT support to disability-specific organizations and help them become more digitally literate and efficient. - Our team has experience working with a variety of organizations and can provide customized solutions to meet their unique needs. -

    -
      -
    • IT support and troubleshooting
    • -
    • Training and education
    • -
    • Assistive technology support
    • -
    • Database management
    • -
    • Website design and development (limited)
    • -
    -
    \ No newline at end of file +
    +
    +

    Event, Media, Documents and Website Support

    + Price: $125/hour (subject to change) +
    +
    +

    + We provide technical support for situations where there are disability/accessibility specific requirements or concerns. +

    +

    Event Support

    +

    + We specialize in helping facilitate any technical needs for accessibility features such as CART & captions, ASL/LSQ, and more. + Our services are available for both online and hybrid events, and may be available for in-person events on a case by case basis. + Noting, our office is located in Winnipeg, Manitoba, Canada and we are not able to travel outside of the city for in-person events at this time. +

    + +

    Media Accessibility

    +

    We can help clients to remediate (make accessible) any media that they have created or are using.

    +

    Document Accessibility

    +

    We can help clients to remediate (make accessible) any documents that they have created or are using.

    +

    + Our past work has focused on PDFs, Word documents, PowerPoints and Excel spreadsheets. + We are open to working with other document types as well, but with other formats we may not be able to provide the same level of support. +

    +

    Website Advising/Testing

    +

    + We do offer some limited website testing and advising services (that don't include development). + Though this is somewhat limited (at least as A La Carte) compared to our many, many competitors in this area. +

    +
    +
    + Read More +
    +
    + +
    +
    +

    Consulting and Co-Development

    + Price: $80/consultant or developer/hour (subject to change) +
    +
    +

    + We work very closely with or alongside developers to make software and hardware accessible. + Our team has extensive experience in not only accessibility (which many of our compeitors do as well) but in software development and engineering as well. + Which means we provide you the uniquely specific experience and guidance that goes so much deeper than "you should do X because of Y which makes it more accessible" but the + "your app is doing X which isn't accessible because of Y but if you look at line N in file M of your code you can do Z to fix it". +

    +

    + This comes with the caveat that we are often more interested in the how than the what. + Which means our clients are expected to have a good idea of what they want to build and what solutions may or may not work for them. + We can help with this to an extent but we are not a design or content creation agency and we do not provide design or content development services. + We have often had partners like disability specific organizations that can help with accessible design and content creation and we are happy to connect you and work with them as appropriate. +

    +

    + In specific cases where the product or service will provide a meaningful and significant contribution to advancing the accessibility of technology we also offer co-development not only on accessibility but on the product or service in general. + When applicable, we don't just bring accessibility into the development but also development expertise in areas such as infrastructure, security, testing and more. +

    +
      +
    • Accessibility issue root cause analysis (and solution suggestion)
    • +
    • Technial design as it relates to accessibility integration or subsystems
    • +
    • Assistive technology or accessibility tool integration (ex. accessibility testing in CI pipelines suggestion and setup)
    • +
    • Training and education (on developer tools, coding languages, APIs or other technical topics around accessibility)
    • +
    +
    + +
    + +
    +
    +

    Disability Organization Technical Support

    + Price: $45/contractor/hour - minimum 10 hours (subject to change) +
    +
    +

    + We provide IT support to disability-specific organizations or organiztions that work significanlty with people living with disabilities and help them become more digitally literate and efficient. + Our team has experience working with a variety of organizations and can provide customized solutions to meet their unique needs. +

    +
      +
    • IT support and troubleshooting
    • +
    • Training and education on technology use
    • +
    • Assistive technology support
    • +
    • Database management
    • +
    • Website design and development
    • +
    +
    + +
    + +
    + +
    + \ No newline at end of file diff --git a/src/pages/services.old.ejs b/src/pages/services.old.ejs new file mode 100644 index 0000000..9700db3 --- /dev/null +++ b/src/pages/services.old.ejs @@ -0,0 +1,67 @@ +

    Our Services

    + +
    +

    Event and Assistive Technology Support

    + Price: $125/hour (subject to change) +

    + We provide technical support for situations where there are disability/accessibility specific requirements or concerns. +

    +

    Event Support

    +

    + We specialize in features such as captions, ASL/LSQ, English/French interpretation, and more. + Our services are available for both online and hybrid events, and may be available for in-person events on a case by case basis. +

    +

    + More specifically, we often provide the following services (though may be open to others upon request): +

    +
      +
    • Event planning and coordination as it relates to needed technology and features (including researching and reporting on needed equipment, licenses or other resources or requirements)
    • +
    • Event setup and troubleshooting
    • +
    • Event moderation and technical problem troubleshooting
    • +
    • Event recording and editing
    • +
    +

    Specialized Technology Support

    +

    + We allow clients to feel confident that their employees of any abilities will be well supported when it comes to technology. +

    +
    +
    +

    Co-Development and Consulting

    + Price: $80/hour (subject to change) +

    + We work very closely with or alongside developers to make software and hardware accessible. + Our team has extensive experience in not only accessibility (which many of our compeitors do as well) but in software development and engineering as well. + Which means we provide you the uniquely specific experience and guidance that goes so much deeper than "you should do X because of Y which makes it more accessible" but the + "your app is doing X which isn't accessible because of Y but if you look at line N in file M of your code you can do Z to fix it". +

    +

    + This comes with the caveat that we are often more interested in the how than the what. Which means our clients are expected to have a good idea of what they want to build and + what solutions may or may not work for them. We can help with this to an extent but we are not a design or content creation agency and we do not provide design or content development services. + We have often had partners like disability specific organizations that can help with accessible design and content creation and we are happy to connect you and work with them as appropriate. +

    +

    + In specific cases where the product or service will provide a meaningful and significant contribution to advancing the accessibility of technology we also offer co-development not only on accessibility but on the product or service in general. + When applicable, we don't just bring accessibility into the development but also development expertise in areas such as infrastructure, security, testing and more. +

    +
      +
    • Accessibility issue root cause analysis (and solution suggestion)
    • +
    • Technial design as it relates to accessibility integration or subsystems
    • +
    • Assistive technology or accessibility tool integration (ex. accessibility testing in CI pipelines suggestion and setup)
    • +
    • Training and education (on developer tools, coding languages, APIs or other technical topics around accessibility)
    • +
    +
    +
    +

    Disability Organization Technical Support

    + Price: $45/hour (subject to change) +

    + We provide IT support to disability-specific organizations and help them become more digitally literate and efficient. + Our team has experience working with a variety of organizations and can provide customized solutions to meet their unique needs. +

    +
      +
    • IT support and troubleshooting
    • +
    • Training and education
    • +
    • Assistive technology support
    • +
    • Database management
    • +
    • Website design and development (limited)
    • +
    +
    \ No newline at end of file diff --git a/src/routes/AboutController.ts b/src/routes/AboutController.ts index 7e0350a..0a93083 100644 --- a/src/routes/AboutController.ts +++ b/src/routes/AboutController.ts @@ -30,9 +30,19 @@ export class AboutController extends BaseController { 'Alan started Bridgeman Accessible because he saw over and over again companies that were lead by non-disabled people and non-developers trying to solve digital accessibility problems. ' + 'Moreover, they would only every consult or give advice but never build or innovate in ways that would help the community and the industry in a meaningful and impactful way.', image: 'alan.jpeg', - website: 'https://alanbridgeman.ca/', - email: 'alan@alanbridgeman.ca' + //website: 'https://alanbridgeman.ca/', + email: 'alan@bridgemanaccessible.com', + phone: '+1 (431) 478-1655 Ext. 200' }, + { + fname: 'Mohamed', + lname: 'Behi', + position: 'Vice President (Training & Education)', + bio: '' + + 'Mohamed is a passionate advocate for disability rights and accessibility. He has been involved in the disability community for many years, working with various organizations to promote inclusion and accessibility. ', + email: 'mohamed@bridgemanaccessible.com', + phone: '+1 (431) 478-1655 Ext. 201' + } //{ // fname: 'John', // lname: 'Oberton', diff --git a/src/routes/ContactController.ts b/src/routes/ContactController.ts new file mode 100644 index 0000000..52325c5 --- /dev/null +++ b/src/routes/ContactController.ts @@ -0,0 +1,16 @@ +import { Request, Response } from 'express'; +import { Controller, GET, Page, BaseController } from '@BridgemanAccessible/ba-web-framework'; + +/** The ContactController class is responsible for handling the contact page of the site. */ +@Controller() +export class ContactController extends BaseController { + /** + * Route for rendering the contact page. + * + * @param req The request object. + * @param res The response object. + */ + @Page('Contact', 'contact.ejs', [], ['contact']) + @GET('/contact') + private contact(req: Request, res: Response) {} +} \ No newline at end of file diff --git a/src/routes/HomeController.ts b/src/routes/HomeController.ts index d1ec3d3..e149a74 100644 --- a/src/routes/HomeController.ts +++ b/src/routes/HomeController.ts @@ -22,7 +22,7 @@ export class HomeController extends BaseController { }; } - @Page('New Design', 'new-design-3.ejs', [], ['new-design-3']) - @GET('/new-design') - private newPage(req: Request, res: Response) {} + //@Page('New Design', 'new-design-3.ejs', [], ['new-design-3']) + //@GET('/new-design') + //private newPage(req: Request, res: Response) {} } \ No newline at end of file diff --git a/src/routes/ServicesController.ts b/src/routes/ServicesController.ts index 9457478..39ddb01 100644 --- a/src/routes/ServicesController.ts +++ b/src/routes/ServicesController.ts @@ -12,7 +12,7 @@ export class ServicesController extends BaseController { * @param req The request object. * @param res The response object. */ - @Page('Services', 'services.ejs') + @Page('Services', 'services.ejs', [], ['services']) @GET('/services') private services(req: Request, res: Response) {} } \ No newline at end of file diff --git a/src/static/css/contact.css b/src/static/css/contact.css new file mode 100644 index 0000000..0e59794 --- /dev/null +++ b/src/static/css/contact.css @@ -0,0 +1,273 @@ +/* General Reset & Base Styles (Assume some global styles exist, but these are good additions) */ +:root { + /* Define your brand colors */ + --primary-color: #0056b3; /* A deep blue for Bridgeman Accessible */ + --secondary-color: #28a745; /* A complementary green */ + --accent-color: #ffc107; /* A bright accent color */ + --text-color: light-dark(#333, #f8f9fa); /* Dark text for light mode, light text for dark mode */ + --light-text-color: #f8f9fa; + --background-light: light-dark(#f4f7f6, #343a40); /* Light background for light mode, dark for dark mode */ + --background-dark: light-dark(#e9ecef, #212529); /* Dark background for dark mode */ + --border-color: light-dark(#ced4da, #495057); /* Light border for light mode, dark for dark mode */ + + /* Font sizes (adjust as needed) */ + --font-size-base: 1rem; + --font-size-large: 1.25rem; + --font-size-xl: 2rem; + --font-size-xxl: 2.5rem; + + /* Spacing */ + --spacing-xs: 0.5rem; + --spacing-sm: 1rem; + --spacing-md: 1.5rem; + --spacing-lg: 2rem; + --spacing-xl: 3rem; + + /* Border Radius */ + --border-radius: 8px; + + /* Shadow */ + --box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); +} + +body { + font-family: 'Arial', sans-serif; /* Or your preferred brand font */ + line-height: 1.6; + color: var(--text-color); + background-color: var(--background-light); + margin: 0; + padding: 0; +} + +/* --- Section Styling --- */ +.contact-hero { + background: linear-gradient(to right, var(--primary-color), #003366); /* Darker blue blend */ + color: var(--light-text-color); + padding: var(--spacing-xl) var(--spacing-sm); + text-align: center; + box-shadow: var(--box-shadow); + margin-bottom: var(--spacing-lg); +} + +.contact-hero-content { + max-width: 800px; + margin: 0 auto; +} + +.contact-hero h1 { + font-size: var(--font-size-xxl); + margin-bottom: var(--spacing-sm); + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2); +} + +.contact-hero p { + font-size: var(--font-size-large); + opacity: 0.9; +} + +.contact-details-section, +.feedback-section { + padding: var(--spacing-xl) var(--spacing-sm); + background-color: var(--background-light); +} + +.contact-details-container { + display: flex; + flex-wrap: wrap; /* Allows wrapping on smaller screens */ + gap: var(--spacing-xl); /* Space between blocks */ + max-width: 1000px; + margin: 0 auto; + justify-content: center; /* Center blocks when they wrap */ +} + +.contact-info-block, +.newsletter-block { + flex: 1; /* Allows blocks to grow and shrink */ + min-width: 300px; /* Minimum width before wrapping */ + background-color: #fff; + padding: var(--spacing-lg); + border-radius: var(--border-radius); + box-shadow: var(--box-shadow); + display: flex; + flex-direction: column; +} + +.feedback-container { + max-width: 700px; + margin: 0 auto; + background-color: #fff; + padding: var(--spacing-lg); + border-radius: var(--border-radius); + box-shadow: var(--box-shadow); +} + +/* --- Headings --- */ +h2 { + color: var(--primary-color); + font-size: var(--font-size-xl); + margin-bottom: var(--spacing-md); + border-bottom: 2px solid var(--accent-color); /* Underline effect */ + padding-bottom: var(--spacing-xs); +} + +/* --- Contact Information Styles --- */ +.contact-info-block .contact-item { + font-size: var(--font-size-large); + margin-bottom: var(--spacing-md); + display: flex; /* For icon alignment */ + align-items: center; +} + +.contact-info-block .icon-link { + display: flex; + align-items: center; + color: var(--primary-color); + text-decoration: none; + transition: color 0.3s ease; +} + +.contact-info-block .icon-link:hover, +.contact-info-block .icon-link:focus { + color: var(--secondary-color); + outline: 2px solid var(--secondary-color); /* Accessibility focus */ + outline-offset: 2px; +} + +.contact-info-block .icon { + margin-right: var(--spacing-sm); + font-size: var(--font-size-large); + color: var(--accent-color); +} + + +/* --- Form Styles --- */ +.form-group { + margin-bottom: var(--spacing-md); +} + +.form-group label { + display: block; + margin-bottom: var(--spacing-xs); + font-weight: bold; + color: var(--text-color); +} + +.form-group input[type="text"], +.form-group input[type="email"], +.form-group textarea { + width: 100%; + padding: var(--spacing-xs) var(--spacing-sm); + border: 1px solid var(--border-color); + border-radius: var(--border-radius); + font-size: var(--font-size-base); + color: var(--text-color); + box-sizing: border-box; /* Include padding in width */ + transition: border-color 0.3s ease, box-shadow 0.3s ease; +} + +.form-group input[type="text"]:focus, +.form-group input[type="email"]:focus, +.form-group textarea:focus { + border-color: var(--primary-color); + box-shadow: 0 0 0 3px rgba(0, 86, 179, 0.2); /* Focus ring */ + outline: none; /* Remove default outline */ +} + +.form-group textarea { + resize: vertical; /* Allow vertical resizing */ + min-height: 100px; +} + +.required { + color: #dc3545; /* Red for required indicator */ + font-weight: normal; + font-size: 0.85em; +} + +/* --- Button Styles --- */ +.button { + display: inline-block; + padding: var(--spacing-sm) var(--spacing-md); + border: none; + border-radius: var(--border-radius); + font-size: var(--font-size-large); + font-weight: bold; + cursor: pointer; + text-align: center; + text-decoration: none; + transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease; +} + +.primary-button { + background-color: var(--primary-color); + color: var(--light-text-color); +} + +.primary-button:hover, +.primary-button:focus { + background-color: #004494; /* Darker primary */ + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); + outline: 2px solid var(--accent-color); /* Accessible focus */ + outline-offset: 2px; +} + +.secondary-button { + background-color: var(--secondary-color); + color: var(--light-text-color); + margin-top: var(--spacing-md); /* Space below forms */ +} + +.secondary-button:hover, +.secondary-button:focus { + background-color: #218838; /* Darker secondary */ + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); + outline: 2px solid var(--accent-color); /* Accessible focus */ + outline-offset: 2px; +} + + +/* --- Responsive Adjustments --- */ +@media (max-width: 768px) { + .contact-details-container { + flex-direction: column; /* Stack blocks vertically on smaller screens */ + gap: var(--spacing-lg); + } + + .contact-info-block, + .newsletter-block { + min-width: unset; /* Remove min-width to allow full width */ + width: 100%; /* Take full width */ + } + + .contact-hero h1 { + font-size: var(--font-size-xl); + } + + .contact-hero p { + font-size: var(--font-size-base); + } + + .contact-details-section, + .feedback-section { + padding: var(--spacing-lg) var(--spacing-sm); + } +} + +@media (max-width: 480px) { + .contact-hero { + padding: var(--spacing-lg) var(--spacing-xs); + } + .contact-hero h1 { + font-size: var(--font-size-large); + } + .contact-hero p { + font-size: 0.9rem; + } + h2 { + font-size: var(--font-size-large); + } + .button { + width: 100%; /* Full width buttons on very small screens */ + padding: var(--spacing-sm) var(--spacing-xs); + } +} \ No newline at end of file diff --git a/src/static/css/nav.css b/src/static/css/nav.css index bb6f305..e873c26 100644 --- a/src/static/css/nav.css +++ b/src/static/css/nav.css @@ -82,6 +82,11 @@ nav { color: light-dark(#333, #DDD); } +.nav-links.active li:last-child a { + background-color: light-dark(#0077c2, #005f99); + color: light-dark(#fff, #000); +} + @media screen and (min-width: 768px) { nav { align-items: center; diff --git a/src/static/css/new-design-2.css b/src/static/css/new-design-2.css deleted file mode 100644 index d9d5fd2..0000000 --- a/src/static/css/new-design-2.css +++ /dev/null @@ -1,196 +0,0 @@ -body { - font-family: sans-serif; - margin: 0; - padding: 0; - background-color: #f4f4f4; - display: flex; /* Enable flexbox for overall layout */ -} - -.page-container { - display: flex; /* Enable flexbox for main content and thermometer areas */ - width: 100%; - max-width: 1200px; /* Optional: Limit page width */ - margin: 20px auto; /* Center the container */ - padding: 20px; - box-sizing: border-box; - position: relative; /* For positioning the triangle connectors */ -} - -.content-area { - width: 85%; - padding-right: 5%; /* Spacing for the triangle */ - box-sizing: border-box; -} - -.card-section { - background-color: white; - border: 1px solid #ddd; - box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.05); - border-radius: 8px; - margin-bottom: 20px; - padding: 20px; - position: relative; /* To potentially position elements within the card */ -} - -.card-header h2 { - margin-top: 0; - color: #333; -} - -.card-content { - color: #555; - line-height: 1.6; - margin-bottom: 15px; -} - -.card-bottom .read-more { - background-color: #007bff; - color: white; - border: none; - padding: 10px 15px; - border-radius: 5px; - cursor: pointer; - font-size: 0.9em; -} - -.card-bottom .read-more:hover { - background-color: #0056b3; -} - -.thermometer-area { - width: 10%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: flex-start; /* Align items to the top */ - padding-left: 5px; /* Spacing from the content area */ - box-sizing: border-box; -} - -.thermometer-graphic-container { - display: flex; - flex-direction: row; /* Label to the right of the graphic */ - align-items: center; /* Vertically align label and graphic */ - margin-top: 20px; /* Adjust top margin as needed */ -} - -.thermometer-graphic { - background: linear-gradient(to bottom, #fdd835, #e1f5fe); /* Two-color fade/gradient */ - width: 30px; /* Adjust thickness as needed */ - height: 200px; /* Adjust height as needed */ - border-radius: 15px; - border: 1px solid #ccc; - position: relative; /* For positioning the bulb */ -} - -.thermometer-bulb { - position: absolute; - bottom: 0; - left: 50%; - transform: translateX(-50%); - width: 40px; /* Adjust bulb width */ - height: 40px; /* Adjust bulb height */ - background-color: #f44336; /* Thermometer bulb color */ - border-radius: 50%; - border: 1px solid #ccc; - margin-bottom: -10px; /* Overlap with the main graphic */ -} - -.thermometer-label { - font-size: 0.8em; - color: #777; - margin-left: 10px; - text-align: left; -} - -.triangle-connector-container { - position: absolute; - top: 0; - left: 85%; /* Align with the right edge of the content area */ - width: 5%; /* The gap between content and thermometer */ - height: 100%; - display: flex; - flex-direction: column; - justify-content: space-around; /* Distribute triangles vertically */ - align-items: flex-end; /* Align triangles to the right */ - padding: 20px 0; /* Add some vertical padding */ - box-sizing: border-box; - pointer-events: none; /* Allow clicks to pass through */ -} - -.triangle-connector { - width: 0; - height: 0; - border-top: 15px solid transparent; /* Adjust size */ - border-left: 15px solid white; /* Match card background */ - border-bottom: 15px solid transparent; /* Adjust size */ -} - -/* Target the top triangle */ -.triangle-connector.top { - border-top-width: 0; /* Start from a point */ - border-bottom-width: 20px; /* Adjust vertical expansion */ - border-left-width: 20px; /* Adjust horizontal expansion */ - border-left-color: white; -} - -/* Target the bottom triangle */ -.triangle-connector.bottom { - border-top-width: 20px; /* Adjust vertical expansion */ - border-left-width: 20px; /* Adjust horizontal expansion */ - border-bottom-width: 0; /* End at a point */ - border-left-color: white; - /* You might need to adjust positioning based on card placement */ -} - - -/* Visually hidden class for accessibility */ -.visually-hidden { - position: absolute !important; - width: 1px !important; - height: 1px !important; - overflow: hidden !important; - clip: rect(0 0 0 0) !important; - margin: -1px !important; - padding: 0 !important; - border: 0 !important; -} - -/* Basic responsive adjustments */ -@media (max-width: 768px) { - body { - flex-direction: column; /* Stack elements on smaller screens */ - align-items: center; - } - - .page-container { - flex-direction: column; - width: 95%; - } - - .content-area { - width: 100%; - padding-right: 0; - } - - .thermometer-area { - width: 80%; - flex-direction: row; /* Label and graphic side by side */ - justify-content: center; - margin-top: 20px; - padding-left: 0; - } - - .thermometer-graphic-container { - flex-direction: row; - } - - .thermometer-label { - writing-mode: horizontal-tb; - margin-left: 10px; - } - - .triangle-connector-container { - display: none; /* Hide triangles on smaller screens */ - } -} \ No newline at end of file diff --git a/src/static/css/new-design.css b/src/static/css/new-design.css deleted file mode 100644 index 73daaba..0000000 --- a/src/static/css/new-design.css +++ /dev/null @@ -1,141 +0,0 @@ -body { - font-family: sans-serif; - margin: 0; - padding: 0; - background-color: #f4f4f4; - display: flex; /* Enable flexbox for overall layout */ -} - -.page-container { - display: flex; /* Enable flexbox for main content and thermometer areas */ - width: 100%; - max-width: 1200px; /* Optional: Limit page width */ - margin: 20px auto; /* Center the container */ - padding: 20px; - box-sizing: border-box; -} - -.content-area { - width: 85%; - padding-right: 5%; /* Spacing for the triangle */ - box-sizing: border-box; -} - -.card-section { - background-color: white; - border: 1px solid #ddd; - box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.05); - border-radius: 8px; - margin-bottom: 20px; - padding: 20px; -} - -.card-header h2 { - margin-top: 0; - color: #333; -} - -.card-content { - color: #555; - line-height: 1.6; - margin-bottom: 15px; -} - -.card-bottom .read-more { - background-color: #007bff; - color: white; - border: none; - padding: 10px 15px; - border-radius: 5px; - cursor: pointer; - font-size: 0.9em; -} - -.card-bottom .read-more:hover { - background-color: #0056b3; -} - -.thermometer-area { - width: 10%; - display: flex; - flex-direction: column; - align-items: center; - padding-left: 5px; /* Spacing from the content area */ - box-sizing: border-box; -} - -.thermometer-label { - font-size: 0.8em; - color: #777; - margin-bottom: 10px; - text-align: center; - writing-mode: vertical-lr; /* Make the label vertical */ -} - -.thermometer-graphic { - background: linear-gradient(to bottom, #fdd835, #e1f5fe); /* Two-color fade/gradient */ - width: 30px; /* Adjust thickness as needed */ - height: 200px; /* Adjust height as needed */ - border-radius: 15px; - border: 1px solid #ccc; -} - -.triangle-connector { - width: 0; - height: 0; - border-top: 20px solid transparent; /* Adjust height to control triangle size */ - border-left: 20px solid white; /* Match card background */ - border-bottom: calc(100% - 20px) solid transparent; /* Adjust based on top border */ - position: absolute; - top: 0; - right: 10%; /* Align with the thermometer area */ - box-sizing: border-box; - pointer-events: none; /* Allow clicks to pass through */ -} - -/* Visually hidden class for accessibility */ -.visually-hidden { - position: absolute !important; - width: 1px !important; - height: 1px !important; - overflow: hidden !important; - clip: rect(0 0 0 0) !important; - margin: -1px !important; - padding: 0 !important; - border: 0 !important; -} - -/* Basic responsive adjustments */ -@media (max-width: 768px) { - body { - flex-direction: column; /* Stack elements on smaller screens */ - align-items: center; - } - - .page-container { - flex-direction: column; - width: 95%; - } - - .content-area { - width: 100%; - padding-right: 0; - } - - .thermometer-area { - width: 80%; - flex-direction: row; /* Label and graphic side by side */ - justify-content: center; - margin-top: 20px; - padding-left: 0; - } - - .thermometer-label { - writing-mode: horizontal-tb; - margin-right: 10px; - } - - .triangle-connector { - display: none; /* Hide triangle on smaller screens */ - } -} \ No newline at end of file diff --git a/src/static/css/new-design-3.css b/src/static/css/services.css similarity index 100% rename from src/static/css/new-design-3.css rename to src/static/css/services.css diff --git a/yarn.lock b/yarn.lock index 0853a7c..aea1c4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,9 +3,9 @@ "@BridgemanAccessible/ba-auth@^1.0.0": - version "1.0.0" - resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/ba-auth/-/ba-auth-1.0.0.tgz#43354492004d8db99b5510a59745c782138ff16f" - integrity sha512-V56uAS5qxIQD8UETHejekR3o8VOb960FJxj/XRyuy1mGDb/4kkrfem3Ps6CN/azDl8rR9BcG+f8Y/2SYtCqmpw== + version "1.0.4" + resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/ba-auth/-/ba-auth-1.0.4.tgz#e2aa9aead1ced89ec4dcd5cfc085c807cecee8bb" + integrity sha512-Si/r5Nwytafd61DslOka+GwtlT99YmttClTXVzUBmK/kfomnsyihzB3eRUukd0S688QzB6fX78w2oD7bB0E4Gw== dependencies: "@BridgemanAccessible/ba-logging" "^1.0.0" "@azure/identity" "^4.0.1" @@ -40,9 +40,9 @@ reflect-metadata "^0.2.2" "@BridgemanAccessible/listmonk-node-client@^1.0.0": - version "1.0.0" - resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/listmonk-node-client/-/listmonk-node-client-1.0.0.tgz#93eccc7b09c9cb0f44db4ae39fe9ed598335b6db" - integrity sha512-vaUyfCxwd1MhFXR5uiRnQjJCgcmCmU/OJf0HZXyjLyqai9St6Un9cqgGZmz4dBxUqVGXFMssdtAUuO1sx1T48Q== + version "1.0.4" + resolved "https://npm.pkg.bridgemanaccessible.ca/@BridgemanAccessible/listmonk-node-client/-/listmonk-node-client-1.0.4.tgz#32c5a761eb4a93f8814d587b0f22f6a48818d593" + integrity sha512-z+8ee31aUDJdVwJsWjJUIIAerGLAhhm8OHfQ65w6kJu4KEEb1vN1wIwHN068SHfGRf8njHBTKSe3Sk9OzvTh5g== dependencies: axios "^1.7.7" @@ -57,7 +57,19 @@ "@csstools/css-tokenizer" "^3.0.3" lru-cache "^10.4.3" -"@azure/abort-controller@^2.0.0": +"@azure-rest/core-client@^2.3.3": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@azure-rest/core-client/-/core-client-2.4.0.tgz#b31f7885078cb89e480da43f0ba2d7d49cf45302" + integrity sha512-CjMFBcmnt0YNdRcxSSoZbtZNXudLlicdml7UrPsV03nHiWB+Bq5cu5ctieyaCuRtU7jm7+SOFtiE/g4pBFPKKA== + dependencies: + "@azure/abort-controller" "^2.0.0" + "@azure/core-auth" "^1.3.0" + "@azure/core-rest-pipeline" "^1.5.0" + "@azure/core-tracing" "^1.0.1" + "@typespec/ts-http-runtime" "^0.2.2" + tslib "^2.6.2" + +"@azure/abort-controller@^2.0.0", "@azure/abort-controller@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-2.1.2.tgz#42fe0ccab23841d9905812c58f1082d27784566d" integrity sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA== @@ -74,28 +86,28 @@ tslib "^2.6.2" "@azure/core-client@^1.3.0", "@azure/core-client@^1.5.0", "@azure/core-client@^1.9.2": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.3.tgz#9ca8f3bdc730d10d58f65c9c2c9ca992bc15bb67" - integrity sha512-/wGw8fJ4mdpJ1Cum7s1S+VQyXt1ihwKLzfabS1O/RDADnmzVc01dHn44qD0BvGH6KlZNzOMW95tEpKqhkCChPA== + version "1.9.4" + resolved "https://registry.yarnpkg.com/@azure/core-client/-/core-client-1.9.4.tgz#bb9bb85edc780fc65630b6d8ffa172c3633ca8fe" + integrity sha512-f7IxTD15Qdux30s2qFARH+JxgwxWLG2Rlr4oSkPGuLWm+1p5y1+C04XGLA0vmX6EtqfutmjvpNmAfgwVIS5hpw== dependencies: "@azure/abort-controller" "^2.0.0" "@azure/core-auth" "^1.4.0" - "@azure/core-rest-pipeline" "^1.9.1" + "@azure/core-rest-pipeline" "^1.20.0" "@azure/core-tracing" "^1.0.0" "@azure/core-util" "^1.6.1" "@azure/logger" "^1.0.0" tslib "^2.6.2" -"@azure/core-http-compat@^2.0.1": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-2.2.0.tgz#20ff535b2460151ea7e68767287996c84cd28738" - integrity sha512-1kW8ZhN0CfbNOG6C688z5uh2yrzALE7dDXHiR9dY4vt+EbhGZQSbjDa5bQd2rf3X2pdWMsXbqbArxUyeNdvtmg== +"@azure/core-http-compat@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@azure/core-http-compat/-/core-http-compat-2.3.0.tgz#e9d396299211e742308827674082c13bd638c6bf" + integrity sha512-qLQujmUypBBG0gxHd0j6/Jdmul6ttl24c8WGiLXIk7IHXdBlfoBqW27hyz3Xn6xbfdyVSarl1Ttbk0AwnZBYCw== dependencies: "@azure/abort-controller" "^2.0.0" "@azure/core-client" "^1.3.0" - "@azure/core-rest-pipeline" "^1.19.0" + "@azure/core-rest-pipeline" "^1.20.0" -"@azure/core-lro@^2.2.0": +"@azure/core-lro@^2.7.2": version "2.7.2" resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.7.2.tgz#787105027a20e45c77651a98b01a4d3b01b75a08" integrity sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw== @@ -105,46 +117,46 @@ "@azure/logger" "^1.0.0" tslib "^2.6.2" -"@azure/core-paging@^1.1.1": +"@azure/core-paging@^1.6.2": version "1.6.2" resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.6.2.tgz#40d3860dc2df7f291d66350b2cfd9171526433e7" integrity sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA== dependencies: tslib "^2.6.2" -"@azure/core-rest-pipeline@^1.17.0", "@azure/core-rest-pipeline@^1.19.0", "@azure/core-rest-pipeline@^1.8.0", "@azure/core-rest-pipeline@^1.8.1", "@azure/core-rest-pipeline@^1.9.1": - version "1.19.1" - resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.19.1.tgz#e740676444777a04dc55656d8660131dfd926924" - integrity sha512-zHeoI3NCs53lLBbWNzQycjnYKsA1CVKlnzSNuSFcUDwBp8HHVObePxrM7HaX+Ha5Ks639H7chNC9HOaIhNS03w== +"@azure/core-rest-pipeline@^1.17.0", "@azure/core-rest-pipeline@^1.19.0", "@azure/core-rest-pipeline@^1.20.0", "@azure/core-rest-pipeline@^1.5.0", "@azure/core-rest-pipeline@^1.8.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@azure/core-rest-pipeline/-/core-rest-pipeline-1.21.0.tgz#65a3600da9f3b635e59aadc0a75212b7815bc7b5" + integrity sha512-a4MBwe/5WKbq9MIxikzgxLBbruC5qlkFYlBdI7Ev50Y7ib5Vo/Jvt5jnJo7NaWeJ908LCHL0S1Us4UMf1VoTfg== dependencies: "@azure/abort-controller" "^2.0.0" "@azure/core-auth" "^1.8.0" "@azure/core-tracing" "^1.0.1" "@azure/core-util" "^1.11.0" "@azure/logger" "^1.0.0" - http-proxy-agent "^7.0.0" - https-proxy-agent "^7.0.0" + "@typespec/ts-http-runtime" "^0.2.3" tslib "^2.6.2" -"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1": +"@azure/core-tracing@^1.0.0", "@azure/core-tracing@^1.0.1", "@azure/core-tracing@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.2.0.tgz#7be5d53c3522d639cf19042cbcdb19f71bc35ab2" integrity sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg== dependencies: tslib "^2.6.2" -"@azure/core-util@^1.0.0", "@azure/core-util@^1.10.0", "@azure/core-util@^1.11.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.6.1": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.11.0.tgz#f530fc67e738aea872fbdd1cc8416e70219fada7" - integrity sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g== +"@azure/core-util@^1.10.0", "@azure/core-util@^1.11.0", "@azure/core-util@^1.2.0", "@azure/core-util@^1.6.1": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.12.0.tgz#0b8c2837e6d67c3fbaeae20df34cf07f66b3480d" + integrity sha512-13IyjTQgABPARvG90+N2dXpC+hwp466XCdQXPCRlbWHgd3SJd5Q1VvaBGv6k1BIa4MQm6hAF1UBU1m8QUxV8sQ== dependencies: "@azure/abort-controller" "^2.0.0" + "@typespec/ts-http-runtime" "^0.2.2" tslib "^2.6.2" "@azure/identity@^4.0.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-4.9.1.tgz#ee4b9435f1b96bea5985e7dec989760a67d9a119" - integrity sha512-986D7Cf1AOwYqSDtO/FnMAyk/Jc8qpftkGsxuehoh4F85MhQ4fICBGX/44+X1y78lN4Sqib3Bsoaoh/FvOGgmg== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@azure/identity/-/identity-4.10.0.tgz#10cfe49207b4d111ebe3aab3ade47561c2852c6d" + integrity sha512-iT53Sre2NJK6wzMWnvpjNiR3md597LZ3uK/5kQD2TkrY9vqhrY5bt2KwELNjkOWQ9n8S/92knj/QEykTtjMNqQ== dependencies: "@azure/abort-controller" "^2.0.0" "@azure/core-auth" "^1.9.0" @@ -173,48 +185,49 @@ tslib "^2.2.0" "@azure/keyvault-keys@^4.8.0": - version "4.9.0" - resolved "https://registry.yarnpkg.com/@azure/keyvault-keys/-/keyvault-keys-4.9.0.tgz#83ad2370429d1f576e6c5c59ff165761e2d8feab" - integrity sha512-ZBP07+K4Pj3kS4TF4XdkqFcspWwBHry3vJSOFM5k5ZABvf7JfiMonvaFk2nBF6xjlEbMpz5PE1g45iTMme0raQ== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@azure/keyvault-keys/-/keyvault-keys-4.10.0.tgz#75476e8f28580dc23bbc9dac6d1654e131d6efd5" + integrity sha512-eDT7iXoBTRZ2n3fLiftuGJFD+yjkiB1GNqzU2KbY1TLYeXeSPVTVgn2eJ5vmRTZ11978jy2Kg2wI7xa9Tyr8ag== dependencies: - "@azure/abort-controller" "^2.0.0" - "@azure/core-auth" "^1.3.0" - "@azure/core-client" "^1.5.0" - "@azure/core-http-compat" "^2.0.1" - "@azure/core-lro" "^2.2.0" - "@azure/core-paging" "^1.1.1" - "@azure/core-rest-pipeline" "^1.8.1" - "@azure/core-tracing" "^1.0.0" - "@azure/core-util" "^1.0.0" + "@azure-rest/core-client" "^2.3.3" + "@azure/abort-controller" "^2.1.2" + "@azure/core-auth" "^1.9.0" + "@azure/core-http-compat" "^2.2.0" + "@azure/core-lro" "^2.7.2" + "@azure/core-paging" "^1.6.2" + "@azure/core-rest-pipeline" "^1.19.0" + "@azure/core-tracing" "^1.2.0" + "@azure/core-util" "^1.11.0" "@azure/keyvault-common" "^2.0.0" - "@azure/logger" "^1.0.0" - tslib "^2.2.0" + "@azure/logger" "^1.1.4" + tslib "^2.8.1" "@azure/logger@^1.0.0", "@azure/logger@^1.1.4": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.1.4.tgz#223cbf2b424dfa66478ce9a4f575f59c6f379768" - integrity sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.2.0.tgz#a79aefcdd57d2a96603fab59c9a66e0d9022a564" + integrity sha512-0hKEzLhpw+ZTAfNJyRrn6s+V0nDWzXk9OjBr2TiGIu0OfMr5s2V4FpKLTAK3Ca5r5OKLbf4hkOGDPyiRjie/jA== dependencies: + "@typespec/ts-http-runtime" "^0.2.2" tslib "^2.6.2" "@azure/msal-browser@^4.2.0": - version "4.11.0" - resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-4.11.0.tgz#e9d9651d692969e68c78ef873ed9a69e02389a64" - integrity sha512-0p5Ut3wORMP+975AKvaSPIO4UytgsfAvJ7RxaTx+nkP+Hpkmm93AuiMkBWKI2x9tApU/SLgIyPz/ZwLYUIWb5Q== + version "4.13.1" + resolved "https://registry.yarnpkg.com/@azure/msal-browser/-/msal-browser-4.13.1.tgz#a3a9d225c3431083f76d05ac1dd9ce8a70fd6595" + integrity sha512-oTp2zhVljB2CRp87swOTsBcqLDrvZq9In+yDMBzuuMN4z2wrIU6ITHBZlLfs+FaAVmM1zY3k7ITekXaJ2bsDKA== dependencies: - "@azure/msal-common" "15.5.1" + "@azure/msal-common" "15.7.0" -"@azure/msal-common@15.5.1": - version "15.5.1" - resolved "https://registry.yarnpkg.com/@azure/msal-common/-/msal-common-15.5.1.tgz#3b34c81013530e1425a1fad40f3ac1238e1780f8" - integrity sha512-oxK0khbc4Bg1bKQnqDr7ikULhVL2OHgSrIq0Vlh4b6+hm4r0lr6zPMQE8ZvmacJuh+ZZGKBM5iIObhF1q1QimQ== +"@azure/msal-common@15.7.0": + version "15.7.0" + resolved "https://registry.yarnpkg.com/@azure/msal-common/-/msal-common-15.7.0.tgz#03833058fc21e16f5dde0540ebe6233dfdd0dd2b" + integrity sha512-m9M5hoFoxhe/HlXNVa4qBHekrX60CVPkWzsjhKQGuzw/OPOmurosKRPDIMn8fug/E1hHI5v33DvT1LVJfItjcg== "@azure/msal-node@^3.5.0": - version "3.5.1" - resolved "https://registry.yarnpkg.com/@azure/msal-node/-/msal-node-3.5.1.tgz#8bb233cbeeda83f64af4cc29569f1b5312c9b9ad" - integrity sha512-dkgMYM5B6tI88r/oqf5bYd93WkenQpaWwiszJDk7avVjso8cmuKRTW97dA1RMi6RhihZFLtY1VtWxU9+sW2T5g== + version "3.6.0" + resolved "https://registry.yarnpkg.com/@azure/msal-node/-/msal-node-3.6.0.tgz#4b9bd4b8bbdd6914ec6a09834672639cd0059a3c" + integrity sha512-MRZ38Ou6l9LiRkz/968mG0czfIvD1PxMZ/3Jyz5k00ZMnhNOwv+DIliEcy//laoWDobAAq+/cz97xefCcHPgjg== dependencies: - "@azure/msal-common" "15.5.1" + "@azure/msal-common" "15.7.0" jsonwebtoken "^9.0.0" uuid "^8.3.0" @@ -480,9 +493,9 @@ integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@types/body-parser@*": - version "1.19.5" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" - integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + version "1.19.6" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.6.tgz#1859bebb8fd7dac9918a45d54c1971ab8b5af474" + integrity sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g== dependencies: "@types/connect" "*" "@types/node" "*" @@ -511,9 +524,9 @@ "@types/json-schema" "*" "@types/estree@*", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/expect@^1.20.4": version "1.20.4" @@ -531,9 +544,9 @@ "@types/send" "*" "@types/express@^4.17.13": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" - integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== + version "4.17.23" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.23.tgz#35af3193c640bfd4d7fe77191cd0ed411a433bef" + integrity sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.33" @@ -549,9 +562,9 @@ "@types/node" "*" "@types/glob-stream@*": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@types/glob-stream/-/glob-stream-8.0.2.tgz#56234435cd20f9b7b08c993be9267d661f9b914d" - integrity sha512-kyuRfGE+yiSJWzSO3t74rXxdZNdYfLcllO0IUha4eX1fl40pm9L02Q/TEc3mykTLjoWz4STBNwYnUWdFu3I0DA== + version "8.0.3" + resolved "https://registry.yarnpkg.com/@types/glob-stream/-/glob-stream-8.0.3.tgz#01033062e1a5e58daff3befe9378fc0e329b538a" + integrity sha512-vctgrT9AH/GK3TRaIbRUU0TZn12GBU4kzelZdPyJp1Sc8L/6Wrq21UrtN4+x4saqTg6COUIUtFV6JSYcVln/EQ== dependencies: "@types/node" "*" "@types/picomatch" "*" @@ -568,11 +581,11 @@ chokidar "^3.3.1" "@types/http-errors@*": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" - integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.5.tgz#5b749ab2b16ba113423feb1a64a95dcd30398472" + integrity sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg== -"@types/json-schema@*", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -595,11 +608,11 @@ integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== "@types/node@*": - version "22.13.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.4.tgz#3fe454d77cd4a2d73c214008b3e331bfaaf5038a" - integrity sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg== + version "24.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.0.0.tgz#14a278ce74dd33993f2c4e5dd614760728c0fba8" + integrity sha512-yZQa2zm87aRVcqDyH5+4Hv9KYgSdgwX1rFnGvpbzMaC7YAljmhBET93TPiTd3ObwTL+gSpIzPKg5BqVxdCvxKg== dependencies: - undici-types "~6.20.0" + undici-types "~7.8.0" "@types/node@20.3.1": version "20.3.1" @@ -607,14 +620,14 @@ integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg== "@types/picomatch@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/picomatch/-/picomatch-3.0.2.tgz#27edebec66726b2aabdca71338d129ffe9fffcf9" - integrity sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA== + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/picomatch/-/picomatch-4.0.0.tgz#28da88d1bddf40f84f1b2bd7b0e978cf7592696b" + integrity sha512-J1Bng+wlyEERWSgJQU1Pi0HObCLVcr994xT/M+1wcl/yNRTGBupsCxthgkdYG+GCOMaQH7iSVUY3LJVBBqG7MQ== "@types/qs@*": - version "6.9.18" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2" - integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== + version "6.14.0" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5" + integrity sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ== "@types/range-parser@*": version "1.2.7" @@ -622,17 +635,17 @@ integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/send@*": - version "0.17.4" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" - integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + version "0.17.5" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.5.tgz#d991d4f2b16f2b1ef497131f00a9114290791e74" + integrity sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w== dependencies: "@types/mime" "^1" "@types/node" "*" "@types/serve-static@*": - version "1.15.7" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" - integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + version "1.15.8" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.8.tgz#8180c3fbe4a70e8f00b9f70b9ba7f08f35987877" + integrity sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg== dependencies: "@types/http-errors" "*" "@types/node" "*" @@ -660,9 +673,9 @@ async-done "~1.3.2" "@types/vinyl-fs@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/vinyl-fs/-/vinyl-fs-3.0.5.tgz#b38e4baf4a37f3f9a1e999872d88fff399af16f3" - integrity sha512-ckYz9giHgV6U10RFuf9WsDQ3X86EFougapxHmmoxLK7e6ICQqO8CE+4V/3lBN148V5N1pb4nQMmMjyScleVsig== + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/vinyl-fs/-/vinyl-fs-3.0.6.tgz#e01b2a9fb4e37aabe386cc458472924b2f36e2de" + integrity sha512-e9GHnmABNUnJ4D99OjVO5s87TfYpmEs7/VKbVS/rt0KkZnKA2vIMyEC5K0H7W/XBiRUO4pdaZxvVUmzjRnrydA== dependencies: "@types/glob-stream" "*" "@types/node" "*" @@ -676,6 +689,15 @@ "@types/expect" "^1.20.4" "@types/node" "*" +"@typespec/ts-http-runtime@^0.2.2", "@typespec/ts-http-runtime@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@typespec/ts-http-runtime/-/ts-http-runtime-0.2.3.tgz#5a5796588ba050b57bda58852697d6173377b647" + integrity sha512-oRhjSzcVjX8ExyaF8hC0zzTqxlVuRlgMHL/Bh4w3xB9+wjbm0FpXylVU/lBrn+kgphwYTrOk3tp+AVShGmlYCg== + dependencies: + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + tslib "^2.6.2" + "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" @@ -822,10 +844,10 @@ acorn-walk@^8.1.1: dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.8.2: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== +acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.3" @@ -1010,9 +1032,9 @@ aws4@^1.12.0: integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== axios@^1.6.7, axios@^1.7.7, axios@^1.8.4: - version "1.8.4" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.8.4.tgz#78990bb4bc63d2cae072952d374835950a82f447" - integrity sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw== + version "1.9.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.9.0.tgz#25534e3b72b54540077d33046f77e3b8d7081901" + integrity sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -1097,17 +1119,17 @@ body-parser@1.20.3: unpipe "1.0.0" brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" @@ -1119,16 +1141,16 @@ braces@^3.0.3, braces@~3.0.2: fill-range "^7.1.1" browserslist@^4.24.0: - version "4.24.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" - integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== + version "4.25.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.0.tgz#986aa9c6d87916885da2b50d8eb577ac8d133b2c" + integrity sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA== dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" + caniuse-lite "^1.0.30001718" + electron-to-chromium "^1.5.160" node-releases "^2.0.19" - update-browserslist-db "^1.1.1" + update-browserslist-db "^1.1.3" -buffer-equal-constant-time@1.0.1: +buffer-equal-constant-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== @@ -1163,7 +1185,7 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== @@ -1182,17 +1204,17 @@ call-bind@^1.0.8: set-function-length "^1.2.2" call-bound@^1.0.2, call-bound@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681" - integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== dependencies: - call-bind-apply-helpers "^1.0.1" - get-intrinsic "^1.2.6" + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" -caniuse-lite@^1.0.30001688: - version "1.0.30001699" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001699.tgz#a102cf330d153bf8c92bfb5be3cd44c0a89c8c12" - integrity sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w== +caniuse-lite@^1.0.30001718: + version "1.0.30001722" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz#ec25a2b3085b25b9079b623db83c22a70882ce85" + integrity sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA== caseless@~0.12.0: version "0.12.0" @@ -1387,9 +1409,9 @@ debug@2.6.9: ms "2.0.0" debug@4, debug@^4.3.4: - version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== dependencies: ms "^2.1.3" @@ -1537,10 +1559,10 @@ ejs@^3.1.6, ejs@^3.1.9: dependencies: jake "^10.8.5" -electron-to-chromium@^1.5.73: - version "1.5.99" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.99.tgz#4817c7526d71b66e6c56c3e5231fe1113653a85d" - integrity sha512-77c/+fCyL2U+aOyqfIFi89wYLBeSTCs55xCZL0oFH0KjqsvSvyh6AdQ+UIl1vgpnQQE6g+/KK8hOIupH6VwPtg== +electron-to-chromium@^1.5.160: + version "1.5.166" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz#3fff386ed473cc2169dbe2d3ace9592262601114" + integrity sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw== emoji-regex@^8.0.0: version "8.0.0" @@ -1595,17 +1617,27 @@ es-errors@^1.3.0: integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-module-lexer@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.6.0.tgz#da49f587fd9e68ee2404fe4e256c0c7d3a81be21" - integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== -es-object-atoms@^1.0.0: +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.0" +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + es6-promise@^4.2.8: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" @@ -1772,9 +1804,9 @@ fastest-levenshtein@^1.0.7: integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.13.0, fastq@^1.6.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.0.tgz#a82c6b7c2bb4e44766d865f07997785fecfdcb89" - integrity sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA== + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== dependencies: reusify "^1.0.4" @@ -1862,12 +1894,14 @@ forever-agent@~0.6.1: integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48" - integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw== + version "4.0.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.3.tgz#608b1b3f3e28be0fccf5901fc85fb3641e5cf0ae" + integrity sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" mime-types "^2.1.12" forwarded@0.2.0: @@ -1925,23 +1959,23 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" - integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: - call-bind-apply-helpers "^1.0.1" + call-bind-apply-helpers "^1.0.2" es-define-property "^1.0.1" es-errors "^1.3.0" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - get-proto "^1.0.0" + get-proto "^1.0.1" gopd "^1.2.0" has-symbols "^1.1.0" hasown "^2.0.2" math-intrinsics "^1.1.0" -get-proto@^1.0.0: +get-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== @@ -1994,10 +2028,10 @@ glob-stream@^6.1.0: to-absolute-glob "^2.0.0" unique-stream "^2.0.2" -glob-stream@^8.0.0: - version "8.0.2" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-8.0.2.tgz#09e5818e41c16dd85274d72c7a7158d307426313" - integrity sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw== +glob-stream@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-8.0.3.tgz#87e63153aadf05bd0207cde1a253ee39d91458b9" + integrity sha512-fqZVj22LtFJkHODT+M4N1RJQ3TjnnQhfE9GwZI8qXscYarnhpip70poMldRnP8ipQ/w0B621kOhfc53/J9bd/A== dependencies: "@gulpjs/to-absolute-glob" "^4.0.0" anymatch "^3.1.3" @@ -2082,17 +2116,17 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -gulp-cli@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-3.0.0.tgz#577008f5323fad6106b44db24803c27c3a649841" - integrity sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA== +gulp-cli@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-3.1.0.tgz#92590e9b209142b176c95ad5c7066d2592017268" + integrity sha512-zZzwlmEsTfXcxRKiCHsdyjZZnFvXWM4v1NqBJSYbuApkvVKivjcmOS2qruAJ+PkEHLFavcDKH40DPc1+t12a9Q== dependencies: "@gulpjs/messages" "^1.1.0" chalk "^4.1.2" copy-props "^4.0.0" gulplog "^2.2.0" interpret "^3.1.1" - liftoff "^5.0.0" + liftoff "^5.0.1" mute-stdout "^2.0.0" replace-homedir "^2.0.0" semver-greatest-satisfied-range "^2.0.0" @@ -2101,9 +2135,9 @@ gulp-cli@^3.0.0: yargs "^16.2.0" gulp-sass@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-6.0.0.tgz#91e651d86baf53bf7de8a537b1a38ea839968a4b" - integrity sha512-FGb4Uab4jnH2GnSfBGd6uW3+imvNodAGfsjGcUhEtpNYPVx+TK2tp5uh7MO0sSR7aIf1Sm544werc+zV7ejHHw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-6.0.1.tgz#28d292b5e9ca143d763e14fce87d6723b6d1b749" + integrity sha512-4wonidxB8lGPHvahelpGavUBJAuERSl+OIVxPCyQthK4lSJhZ/u3/qjFcyAtnMIXDl6fXTn34H4BXsN7gt54kQ== dependencies: lodash.clonedeep "^4.5.0" picocolors "^1.0.0" @@ -2125,14 +2159,14 @@ gulp-typescript@^6.0.0-alpha.1: vinyl-fs "^3.0.3" gulp@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-5.0.0.tgz#78f4b8ac48a0bf61b354d39e5be844de2c5cc3f3" - integrity sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg== + version "5.0.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-5.0.1.tgz#c43f37aa34569e101fb6da4e0b464677305acd36" + integrity sha512-PErok3DZSA5WGMd6XXV3IRNO0mlB+wW3OzhFJLEec1jSERg2j1bxJ6e5Fh6N6fn3FH2T9AP4UYNb/pYlADB9sA== dependencies: glob-watcher "^6.0.0" - gulp-cli "^3.0.0" + gulp-cli "^3.1.0" undertaker "^2.0.0" - vinyl-fs "^4.0.0" + vinyl-fs "^4.0.2" gulplog@^2.2.0: version "2.2.0" @@ -2158,11 +2192,18 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: dependencies: es-define-property "^1.0.0" -has-symbols@^1.1.0: +has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" @@ -2245,14 +2286,14 @@ ignore-by-default@^1.0.1: integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== ignore@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.3.tgz#397ef9315dfe0595671eefe8b633fec6943ab733" - integrity sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA== + version "7.0.5" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" + integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== immutable@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.0.3.tgz#aa037e2313ea7b5d400cd9298fa14e404c933db1" - integrity sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw== + version "5.1.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.2.tgz#e8169476414505e5a4fa650107b65e1227d16d4b" + integrity sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ== inflight@^1.0.4: version "1.0.6" @@ -2562,11 +2603,11 @@ jsprim@^2.0.2: verror "1.10.0" jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + version "1.4.2" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.2.tgz#16011ac6db48de7b102777e57897901520eec7b9" + integrity sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw== dependencies: - buffer-equal-constant-time "1.0.1" + buffer-equal-constant-time "^1.0.1" ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" @@ -2602,10 +2643,10 @@ lead@^4.0.0: resolved "https://registry.yarnpkg.com/lead/-/lead-4.0.0.tgz#5317a49effb0e7ec3a0c8fb9c1b24fb716aab939" integrity sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg== -liftoff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-5.0.0.tgz#0e5ed275bc334caec0e551ecf08bb22be583e236" - integrity sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg== +liftoff@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-5.0.1.tgz#e2329e7f1e19e98c8dba71185f2078e6dbbc5c1f" + integrity sha512-wwLXMbuxSF8gMvubFcFRp56lkFV69twvbU5vDPbaw+Q+/rF8j0HKjGbIdlSi+LuJm9jf7k9PB+nTxnsLMPcv2Q== dependencies: extend "^3.0.2" findup-sync "^5.0.0" @@ -2848,13 +2889,13 @@ node-releases@^2.0.19: integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== node-vault@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.10.2.tgz#d5629c2e88744183474bba2ce54e1e08c4d15e8e" - integrity sha512-//uc9/YImE7Dx0QHdwMiAzLaOumiKUnOUP8DymgtkZ8nsq6/V2LKvEu6kw91Lcruw8lWUfj4DO7CIXNPRWBuuA== + version "0.10.5" + resolved "https://registry.yarnpkg.com/node-vault/-/node-vault-0.10.5.tgz#f86818435387ddb4508875120c06096ec09cdaa3" + integrity sha512-sIyB/5296U2tMT7hH1nrkoYUXkRxuLsG40fgUHaBhzM+G/uyBKBo+QNsvKqE5FNq24QJM+tr97N+knLQiEEcSg== dependencies: debug "^4.3.4" mustache "^4.2.0" - postman-request "^2.88.1-postman.33" + postman-request "^2.88.1-postman.42" tv4 "^1.3.0" nodemon@^2.0.13: @@ -2963,9 +3004,9 @@ once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: wrappy "1" open@^10.1.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/open/-/open-10.1.1.tgz#5fd814699e47ae3e1a09962d39f4f4441cae6c22" - integrity sha512-zy1wx4+P3PfhXSEPJNtZmJXfhkkIaxU1VauWIrDZw1O7uJRDRJtKr9n3Ic4NgbA16KyOxOXO2ng9gYwCdXuSXA== + version "10.1.2" + resolved "https://registry.yarnpkg.com/open/-/open-10.1.2.tgz#d5df40984755c9a9c3c93df8156a12467e882925" + integrity sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw== dependencies: default-browser "^5.2.1" define-lazy-prop "^3.0.0" @@ -3077,7 +3118,7 @@ plugin-error@^1.0.1: arr-union "^3.1.0" extend-shallow "^3.0.2" -postman-request@^2.88.1-postman.33: +postman-request@^2.88.1-postman.42: version "2.88.1-postman.42" resolved "https://registry.yarnpkg.com/postman-request/-/postman-request-2.88.1-postman.42.tgz#b7c9b07edcd7b0d4930a2a4c53ec06c4682357e7" integrity sha512-lepCE8QU0izagxxA31O/MHj8IUguwLlpqeVK7A8vHK401FPvN/PTIzWHm29c/L3j3kTUE7dhZbq8vvbyQ7S2Bw== @@ -3231,9 +3272,9 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable util-deprecate "~1.0.1" readdirp@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.1.tgz#bd115327129672dc47f87408f05df9bd9ca3ef55" - integrity sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw== + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== readdirp@~3.6.0: version "3.6.0" @@ -3338,9 +3379,9 @@ resolve@^1.20.0: supports-preserve-symlinks-flag "^1.0.0" reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rrweb-cssom@^0.7.1: version "0.7.1" @@ -3380,9 +3421,9 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass@^1.85.0: - version "1.85.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.85.0.tgz#0127ef697d83144496401553f0a0e87be83df45d" - integrity sha512-3ToiC1xZ1Y8aU7+CkgCI/tqyuPXEmYGJXO7H4uqp0xkLXUqp88rQQ4j1HmP37xSJLbCJPaIiv+cT1y+grssrww== + version "1.89.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.89.2.tgz#a771716aeae774e2b529f72c0ff2dfd46c9de10e" + integrity sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" @@ -3397,10 +3438,10 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -schema-utils@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" - integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== +schema-utils@^4.3.0, schema-utils@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" @@ -3425,9 +3466,9 @@ semver@^6.3.0: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.5.4: - version "7.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" - integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== semver@~7.0.0: version "7.0.0" @@ -3617,9 +3658,9 @@ stream-shift@^1.0.0: integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== streamx@^2.12.0, streamx@^2.12.5, streamx@^2.13.2, streamx@^2.14.0: - version "2.22.0" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.22.0.tgz#cd7b5e57c95aaef0ff9b2aef7905afa62ec6e4a7" - integrity sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw== + version "2.22.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.22.1.tgz#c97cbb0ce18da4f4db5a971dc9ab68ff5dc7f5a5" + integrity sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA== dependencies: fast-fifo "^1.3.2" text-decoder "^1.1.0" @@ -3695,9 +3736,9 @@ symbol-tree@^3.2.4: integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + version "2.2.2" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.2.tgz#ab4984340d30cb9989a490032f086dbb8b56d872" + integrity sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg== teex@^1.0.1: version "1.0.1" @@ -3707,9 +3748,9 @@ teex@^1.0.1: streamx "^2.12.5" terser-webpack-plugin@^5.3.11: - version "5.3.11" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz#93c21f44ca86634257cac176f884f942b7ba3832" - integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== dependencies: "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" @@ -3718,12 +3759,12 @@ terser-webpack-plugin@^5.3.11: terser "^5.31.1" terser@^5.31.1: - version "5.39.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" - integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== + version "5.42.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.42.0.tgz#1db8493aa0f3f866e488ec0fcf7e0c28eb43a2f5" + integrity sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ== dependencies: "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" + acorn "^8.14.0" commander "^2.20.0" source-map-support "~0.5.20" @@ -3849,7 +3890,7 @@ ts-node@^10.2.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^2.2.0, tslib@^2.6.2: +tslib@^2.2.0, tslib@^2.6.2, tslib@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -3873,9 +3914,9 @@ type-is@~1.6.18: mime-types "~2.1.24" typescript@^5.4.2: - version "5.7.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.3.tgz#919b44a7dbb8583a9b856d162be24a54bf80073e" - integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== + version "5.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== unc-path-regex@^0.1.2: version "0.1.2" @@ -3902,10 +3943,10 @@ undertaker@^2.0.0: last-run "^2.0.0" undertaker-registry "^2.0.0" -undici-types@~6.20.0: - version "6.20.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" - integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== +undici-types@~7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.8.0.tgz#de00b85b710c54122e44fbfd911f8d70174cd294" + integrity sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw== unicorn-magic@^0.3.0: version "0.3.0" @@ -3935,10 +3976,10 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz#97e9c96ab0ae7bcac08e9ae5151d26e6bc6b5580" - integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: escalade "^3.2.0" picocolors "^1.1.1" @@ -4036,13 +4077,13 @@ vinyl-fs@^3.0.3: vinyl "^2.0.0" vinyl-sourcemap "^1.1.0" -vinyl-fs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-4.0.0.tgz#06cb36efc911c6e128452f230b96584a9133c3a1" - integrity sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw== +vinyl-fs@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-4.0.2.tgz#d46557653e4a7109f29d626a9cf478680c7f8c70" + integrity sha512-XRFwBLLTl8lRAOYiBqxY279wY46tVxLaRhSwo3GzKEuLz1giffsOquWWboD/haGf5lx+JyTigCFfe7DWHoARIA== dependencies: fs-mkdirp-stream "^2.0.1" - glob-stream "^8.0.0" + glob-stream "^8.0.3" graceful-fs "^4.2.11" iconv-lite "^0.6.3" is-valid-glob "^1.0.0" @@ -4053,7 +4094,7 @@ vinyl-fs@^4.0.0: streamx "^2.14.0" to-through "^3.0.0" value-or-function "^4.0.0" - vinyl "^3.0.0" + vinyl "^3.0.1" vinyl-sourcemap "^2.0.0" vinyl-sourcemap@^1.1.0: @@ -4100,13 +4141,12 @@ vinyl@^2.0.0, vinyl@^2.2.0, vinyl@^2.2.1: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vinyl@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-3.0.0.tgz#11e14732bf56e2faa98ffde5157fe6c13259ff30" - integrity sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g== +vinyl@^3.0.0, vinyl@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-3.0.1.tgz#5f5ff85255bda2b5da25e4b3bd80b3fc077fb5a9" + integrity sha512-0QwqXteBNXgnLCdWdvPQBX6FXRHtIH3VhJPTd5Lwn28tJXc34YqSCWUmkOvtJHBmB3gGoPtrOKk3Ts8/kEZ9aA== dependencies: clone "^2.1.2" - clone-stats "^1.0.0" remove-trailing-separator "^1.1.0" replace-ext "^2.0.0" teex "^1.0.1" @@ -4119,9 +4159,9 @@ w3c-xmlserializer@^5.0.0: xml-name-validator "^5.0.0" watchpack@^2.4.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" - integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + version "2.4.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" + integrity sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -4132,9 +4172,9 @@ webidl-conversions@^7.0.0: integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== + version "3.3.2" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.3.2.tgz#0ab55ab0b380ce53c45ca40cb7b33bab3149ea85" + integrity sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA== webpack-stream@^7.0.0: version "7.0.0" @@ -4151,12 +4191,13 @@ webpack-stream@^7.0.0: vinyl "^2.2.1" webpack@^5.98.0: - version "5.98.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.98.0.tgz#44ae19a8f2ba97537978246072fb89d10d1fbd17" - integrity sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA== + version "5.99.9" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.99.9.tgz#d7de799ec17d0cce3c83b70744b4aedb537d8247" + integrity sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" "@webassemblyjs/ast" "^1.14.1" "@webassemblyjs/wasm-edit" "^1.14.1" "@webassemblyjs/wasm-parser" "^1.14.1" @@ -4173,7 +4214,7 @@ webpack@^5.98.0: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^4.3.0" + schema-utils "^4.3.2" tapable "^2.1.1" terser-webpack-plugin "^5.3.11" watchpack "^2.4.1" From d5382d3bfd45667707f1a54f12b7e4d7b98b6ca4 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Wed, 11 Jun 2025 14:19:55 -0500 Subject: [PATCH 08/13] Forgot to bump version number to trigger automation --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 610b1f4..8da52d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.22", + "version": "1.0.23", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { From 2a46f2ab3bd0ed5ff9d5460a4407c573b8cfdec5 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Wed, 11 Jun 2025 14:42:52 -0500 Subject: [PATCH 09/13] Bumping the version number again to trigger automation. Had a runner issue that should now be fixed. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8da52d1..a847c94 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.23", + "version": "1.0.24", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { From e093a67fdda5a615f398c551021b26daafb43dff Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Wed, 11 Jun 2025 15:03:02 -0500 Subject: [PATCH 10/13] Mostly just little fixes for the contact page --- package.json | 2 +- src/pages/contact.ejs | 2 +- src/static/css/contact.css | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index a847c94..0fa39d4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.24", + "version": "1.0.25", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { diff --git a/src/pages/contact.ejs b/src/pages/contact.ejs index cfcff38..46a6791 100644 --- a/src/pages/contact.ejs +++ b/src/pages/contact.ejs @@ -10,7 +10,7 @@

    Get In Touch

    - + info@bridgemwnwccessible.com

    diff --git a/src/static/css/contact.css b/src/static/css/contact.css index 0e59794..958f2da 100644 --- a/src/static/css/contact.css +++ b/src/static/css/contact.css @@ -84,7 +84,7 @@ body { .newsletter-block { flex: 1; /* Allows blocks to grow and shrink */ min-width: 300px; /* Minimum width before wrapping */ - background-color: #fff; + background-color: light-dark(#fff, #343a40); padding: var(--spacing-lg); border-radius: var(--border-radius); box-shadow: var(--box-shadow); @@ -95,7 +95,7 @@ body { .feedback-container { max-width: 700px; margin: 0 auto; - background-color: #fff; + background-color: light-dark(#fff, #343a40); padding: var(--spacing-lg); border-radius: var(--border-radius); box-shadow: var(--box-shadow); From a439ec483a908d9b86a24f17f39b042a83dffb6a Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Wed, 11 Jun 2025 15:18:54 -0500 Subject: [PATCH 11/13] Super tiny change I'm annoyed about --- package.json | 2 +- src/pages/contact.ejs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0fa39d4..8bbe0cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.25", + "version": "1.0.26", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { diff --git a/src/pages/contact.ejs b/src/pages/contact.ejs index 46a6791..d95b255 100644 --- a/src/pages/contact.ejs +++ b/src/pages/contact.ejs @@ -11,7 +11,7 @@

    Get In Touch

    - info@bridgemwnwccessible.com + info@bridgemanaccessible.com

    From ab8af728b429742aff4f6b20cfd5151ae7660037 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Thu, 19 Jun 2025 21:33:11 -0500 Subject: [PATCH 12/13] Attempting to fix issue with WebFinger implementation where route mistakenly gives 404 --- package.json | 2 +- src/server.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8bbe0cf..a66df00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.26", + "version": "1.0.27", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { diff --git a/src/server.ts b/src/server.ts index 03b7ba7..ee69bab 100644 --- a/src/server.ts +++ b/src/server.ts @@ -19,6 +19,7 @@ function onStart(app: App) { //const oidcLink = PointerServer.createOIDCLink('account.bridgemanaccessible.ca'); const rfc8414Link = PointerServer.createRFC8414Link('account.bridgemanaccessible.ca'); PointerServer.setup(app.getExpressApp(), { links: [/*oidcLink, */rfc8414Link] }); + app.getInitializer().getRouter().addOutsideFrameworkRoute('/.well-known/webfinger'); } async function main() { From 1444ff900309c96412c569235662c690dd195490 Mon Sep 17 00:00:00 2001 From: Alan Bridgeman Date: Sat, 12 Jul 2025 15:29:48 -0500 Subject: [PATCH 13/13] Added a bunch of stuff for SEO mostly (some other little stuff but most of it is half done at this point) --- package.json | 2 +- src/pages/about-us/our-team.ejs | 65 +++++++++ src/pages/about-us/principals.ejs | 118 ++++++++++++++++ src/pages/about.ejs | 128 +++++++++--------- src/pages/base.ejs | 4 +- src/pages/includes/header.ejs | 25 +++- .../accessible-resources-winnipeg.ejs | 21 +++ .../disabled-accommodations-winnipeg.ejs | 22 +++ src/pages/seo-terms/index.ejs | 42 ++++++ .../sign-language-translators-winnipeg.ejs | 17 +++ .../translator-services-winnipeg.ejs | 17 +++ src/routes/AboutController.ts | 14 +- src/routes/SEOController.ts | 72 ++++++++++ src/static/robots.txt | 0 src/static/xml/sitemap.xml | 27 ++++ 15 files changed, 501 insertions(+), 73 deletions(-) create mode 100644 src/pages/about-us/our-team.ejs create mode 100644 src/pages/about-us/principals.ejs create mode 100644 src/pages/seo-terms/accessible-resources-winnipeg.ejs create mode 100644 src/pages/seo-terms/disabled-accommodations-winnipeg.ejs create mode 100644 src/pages/seo-terms/index.ejs create mode 100644 src/pages/seo-terms/sign-language-translators-winnipeg.ejs create mode 100644 src/pages/seo-terms/translator-services-winnipeg.ejs create mode 100644 src/routes/SEOController.ts create mode 100644 src/static/robots.txt create mode 100644 src/static/xml/sitemap.xml diff --git a/package.json b/package.json index a66df00..f9d6844 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ba-website", - "version": "1.0.27", + "version": "1.0.28", "description": "The Bridgeman Accessible main website", "main": "server.js", "scripts": { diff --git a/src/pages/about-us/our-team.ejs b/src/pages/about-us/our-team.ejs new file mode 100644 index 0000000..98c46c3 --- /dev/null +++ b/src/pages/about-us/our-team.ejs @@ -0,0 +1,65 @@ +

    Our Team

    +

    + Our team is made up of experienced professionals who are passionate about digital accessibility. + Here are a few of our key team members: +

    +
      + <% + people.forEach( + (person) => { + %> +
    • +
      +
      + <% + if (typeof(person.image) !== 'undefined') { + %> + A photo of <%= person.fname %> <%= person.lname %> + <% + } + else { + %> + + <% + } + %> +
      +
      +

      <%= person.fname %> <%= person.lname %>

      +

      <%= person.position %>

      + <% + if (typeof(person.bio) !== 'undefined') { + %> +

      <%= person.bio %>

      + <% + } + %> + <% + if (typeof(person.website) !== 'undefined') { + %> + Website + <% + } + %> + <% + if (typeof(person.email) !== 'undefined') { + %> + Email + <% + } + %> + <% + if (typeof(person.phone) !== 'undefined') { + %> + Call + <% + } + %> +
      +
      +
    • + <% + } + ); + %> +
    \ No newline at end of file diff --git a/src/pages/about-us/principals.ejs b/src/pages/about-us/principals.ejs new file mode 100644 index 0000000..7433f26 --- /dev/null +++ b/src/pages/about-us/principals.ejs @@ -0,0 +1,118 @@ +%# + principles.ejs + This template should be included within a main base layout. + It requires FontAwesome Pro to be loaded in the main . +%> + +
    +
    +

    Built on Principle: Our Technology & Values

    +

    + At Bridgeman Accessible, our commitment to digital inclusion runs deeper than the products you see. For years, we have been meticulously building a digital foundation based on a simple, powerful idea: the best way to serve our community is to build with principle, integrity, and unparalleled expertise. +

    +
    +
    + +
    +
    +
    +
    +

    Designed by Experts, For Everyone

    +

    + Our work is a direct reflection of who we are. We are proud that our entire technology team is composed of people with disabilities. + This is not a footnote; it is our greatest strategic advantage. +

    +

    + Our lived experiences give us an intuitive and profound understanding of accessibility that cannot be learned from a manual. + We build with an unwavering commitment to quality and real-world usability because we are the community we serve. + The result is a platform that is not just compliant, but authentically and fundamentally accessible in its very DNA. +

    +
    +
    +
    +
    +
    + +
    +
    +
    +

    A Single, Secure Digital Key

    +

    We believe your digital experience should be seamless and secure. That’s why we’ve invested heavily in creating a unified account platform that serves as your single key to our entire digital world.

    +
    +
    +
    + +

    Simplicity & Convenience

    +

    With one secure login, you can access every tool and service we offer. No more juggling multiple passwords or accounts.

    +
    +
    + +

    Uncompromising Security

    +

    Your trust is our priority. We use the latest industry-standard security protocols to protect your information and ensure your data is safe.

    +
    +
    +
    +
    + +
    +
    +
    +

    A Foundation of Digital Sovereignty

    +

    We consciously choose a different path from big tech. To guarantee the highest level of security and privacy, we own and operate our own core infrastructure right here in Canada, on our own hardware.

    +
    +
    +
    +
    +
      +
    • + +
      +

      You Control Your Data

      +

      By self-hosting, we offer our clients true data sovereignty. Your data stays here, under the protection of Canadian privacy laws.

      +
      +
    • +
    • + +
      +

      Enhanced Security

      +

      We have complete control over our technology stack, reducing external dependencies and strengthening our security posture.

      +
      +
    • +
    • + +
      +

      Value-Driven Choices

      +

      This approach reflects our commitment to our community and country over pure profit, ensuring our technology aligns with our values.

      +
      +
    • +
    +
    +
    +
    +
    + +
    +
    +
    +

    Excellence You Can Rely On

    +

    Our commitment to building on principle delivers tangible benefits for our clients and community.

    +
    +
      +
    • + + Rock-Solid Reliability +
    • +
    • + + Agility and Innovation +
    • +
    • + + Authentic Partnership +
    • +
    + +
    +
    \ No newline at end of file diff --git a/src/pages/about.ejs b/src/pages/about.ejs index 96908e4..57dccb0 100644 --- a/src/pages/about.ejs +++ b/src/pages/about.ejs @@ -49,67 +49,67 @@ -
    -

    Our Team

    -

    Our team is made up of experienced professionals who are passionate about digital accessibility. Here are a few of our key team members:

    -
      - <% - people.forEach( - (person) => { - %> -
    • -
      -
      - <% - if (typeof(person.image) !== 'undefined') { - %> - A photo of <%= person.fname %> <%= person.lname %> - <% - } - else { - %> - - <% - } - %> -
      -
      -

      <%= person.fname %> <%= person.lname %>

      -

      <%= person.position %>

      - <% - if (typeof(person.bio) !== 'undefined') { - %> -

      <%= person.bio %>

      - <% - } - %> - <% - if (typeof(person.website) !== 'undefined') { - %> - Website - <% - } - %> - <% - if (typeof(person.email) !== 'undefined') { - %> - Email - <% - } - %> - <% - if (typeof(person.phone) !== 'undefined') { - %> - Call - <% - } - %> -
      -
      -
    • - <% - } - ); - %> -
    -
    \ No newline at end of file +<%#
    %> +<%#

    Our Team

    %> +<%#

    Our team is made up of experienced professionals who are passionate about digital accessibility. Here are a few of our key team members:

    %> +<%#
      %> +<%# < %> +<%# people.forEach( %> +<%# (person) => { %> +<%# > %> +<%#
    • %> +<%#
      %> +<%#
      %> +<%# < %> +<%# if (typeof(person.image) !== 'undefined') { %> +<%# > %> +<%# A photo of <= person.fname > <= person.lname > %> +<%# < %> +<%# } %> +<%# else { %> +<%# > %> +<%# %> +<%# < %> +<%# } %> +<%# > %> +<%#
      %> +<%#
      %> +<%#

      <= person.fname > <= person.lname >

      %> +<%#

      <= person.position >

      %> +<%# < %> +<%# if (typeof(person.bio) !== 'undefined') { %> +<%# > %> +<%#

      <= person.bio >

      %> +<%# < %> +<%# } %> +<%# > %> +<%# < %> +<%# if (typeof(person.website) !== 'undefined') { %> +<%# > %> +<%# Website %> +<%# < %> +<%# } %> +<%# > %> +<%# < %> +<%# if (typeof(person.email) !== 'undefined') { %> +<%# > %> +<%# Email %> +<%# < %> +<%# } %> +<%# > %> +<%# < %> +<%# if (typeof(person.phone) !== 'undefined') { %> +<%# > %> +<%# Call %> +<%# < %> +<%# } %> +<%# > %> +<%#
      %> +<%#
      %> +<%#
    • %> +<%# < %> +<%# } %> +<%# ); %> +<%# > %> +<%#
    %> +<%#
    %> \ No newline at end of file diff --git a/src/pages/base.ejs b/src/pages/base.ejs index 3a93b7e..ec93d4b 100644 --- a/src/pages/base.ejs +++ b/src/pages/base.ejs @@ -2,8 +2,8 @@ - - + + <%= title %> - Bridgeman Accessible diff --git a/src/pages/includes/header.ejs b/src/pages/includes/header.ejs index 8587810..3926509 100644 --- a/src/pages/includes/header.ejs +++ b/src/pages/includes/header.ejs @@ -20,11 +20,30 @@ <% } else { %>
  • Products
  • <% } %> - <% if (title === 'About') { %> -
  • About Us
  • + <% if (title === 'Search Terms') { %> +
  • Search Terms
  • <% } else { %> -
  • About Us
  • +
  • Search Terms
  • <% } %> + <% if (title === 'Contact') { %>
  • Contact Us
  • <% } else { %> diff --git a/src/pages/seo-terms/accessible-resources-winnipeg.ejs b/src/pages/seo-terms/accessible-resources-winnipeg.ejs new file mode 100644 index 0000000..c951295 --- /dev/null +++ b/src/pages/seo-terms/accessible-resources-winnipeg.ejs @@ -0,0 +1,21 @@ +

    Accessible Resources Winnipeg

    +

    + At Bridgeman Accessible, we understand that people living with disabilities face unique challenges. + And one of our fundamental goals is to help create and support a more inclusive digital experience for everyone. +

    +

    + To that extent, we are based in Winnipeg and are, to the extent possible, willing and open to working with mostly businesses (but some individuals in very specific circumstances) to create and maintain their digital accessibility. + Including helping them find relevant accessibility related resources that exist in the community. +

    +

    + As examples, we can help with: +

    +
      +
    • Finding and recommending local resources for accommodation services (ex. sign language interpretation, CART/captioning, etc...)
    • +
    • Connecting with organizations that provide assistive technology
    • +
    • Identifying community groups focused on disability advocacy
    • +
    +

    + Our team is dedicated to fostering an inclusive environment where all individuals can thrive. + If you or someone you know is looking for resources please don't hesitate to reach out. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/disabled-accommodations-winnipeg.ejs b/src/pages/seo-terms/disabled-accommodations-winnipeg.ejs new file mode 100644 index 0000000..2fea14b --- /dev/null +++ b/src/pages/seo-terms/disabled-accommodations-winnipeg.ejs @@ -0,0 +1,22 @@ +

    Disabled Accommodations Winnipeg

    +

    + At Bridgeman Accessible, we understand that people living with disabilities face unique challenges. + And one of our fundamental goals is to help create and support a more inclusive digital experience for everyone. +

    +

    + To that extent, we are based in Winnipeg and are, to the extent possible, willing and open to working with businesses to create and maintain their digital accessibility. + Including helping them put in place and be comfortable with digital accessibility accommodations. +

    +

    + As examples, we can help with: +

    +
      +
    • Conducting digital accessibility audits
    • +
    • Providing training on digital accessibility best practices
    • +
    • Assisting with the implementation of accessible design principles
    • +
    • Offering ongoing support and consultation on digital accessibility matters
    • +
    +

    + Our team is dedicated to fostering an inclusive environment where all individuals can thrive. + If you or someone you know requires assistance, please don't hesitate to reach out. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/index.ejs b/src/pages/seo-terms/index.ejs new file mode 100644 index 0000000..70be4ae --- /dev/null +++ b/src/pages/seo-terms/index.ejs @@ -0,0 +1,42 @@ +

    Search (SEO) Terms

    +

    + We'll be completely honest in saying this and the other pages in this section exist purely to help us boost our Advertising (and particularly Google Ads) and Search Engine Optimization (SEO) rankings. +

    +

    Here are some of the key terms and phrases we use for advertising on search engines (keep in mind we limit our area based on financial constraints etc...):

    + +

    Additional relevant terms include:

    +
      +
    • Digital Accessibility
    • +
    • Web Accessibility
    • +
    • Inclusive Design
    • +
    • Accessibility Digital Standards
    • +
    • WCAG Compliance
    • +
    • Accessible Web Development
    • +
    • Assistive Technology (sometimes abbreviated a11y)
    • +
    • User Experience (UX)
    • +
    • Digital Inclusion
    • +
    • Accessibility Audits
    • +
    +

    + We think these terms can help us connect with individuals and organizations seeking to improve their digital accessibility practices. + Which is what we're all about. +

    +

    + If you have any questions or suggestions regarding these terms, please feel free to contact us. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/sign-language-translators-winnipeg.ejs b/src/pages/seo-terms/sign-language-translators-winnipeg.ejs new file mode 100644 index 0000000..40300b8 --- /dev/null +++ b/src/pages/seo-terms/sign-language-translators-winnipeg.ejs @@ -0,0 +1,17 @@ +

    Translator Services Winnipeg

    +

    + Upfront, we DO NOT provide direct translation services of any kind. + We do work with translators (specifically sign language translators of different kinds) throughout our work to ensure our content is accessible to all. + And we endeavor to make these interactions as easy as possible using digital tools and resources. +

    +

    + But, again, we DO NOT provide direct translation services of any kind. +

    +

    + To be transparent, we go back-and-forth on whether this is something we should include as a search term. + We do not want to mislead anyone into thinking we provide these services. + But we also recognize that people may search for this more than "niche" things like "digital accessibility support" or similar. +

    +

    + If you as a potential customer have any questions or an opinion on this search phrase please feel free to contact us and let us know. +

    \ No newline at end of file diff --git a/src/pages/seo-terms/translator-services-winnipeg.ejs b/src/pages/seo-terms/translator-services-winnipeg.ejs new file mode 100644 index 0000000..40300b8 --- /dev/null +++ b/src/pages/seo-terms/translator-services-winnipeg.ejs @@ -0,0 +1,17 @@ +

    Translator Services Winnipeg

    +

    + Upfront, we DO NOT provide direct translation services of any kind. + We do work with translators (specifically sign language translators of different kinds) throughout our work to ensure our content is accessible to all. + And we endeavor to make these interactions as easy as possible using digital tools and resources. +

    +

    + But, again, we DO NOT provide direct translation services of any kind. +

    +

    + To be transparent, we go back-and-forth on whether this is something we should include as a search term. + We do not want to mislead anyone into thinking we provide these services. + But we also recognize that people may search for this more than "niche" things like "digital accessibility support" or similar. +

    +

    + If you as a potential customer have any questions or an opinion on this search phrase please feel free to contact us and let us know. +

    \ No newline at end of file diff --git a/src/routes/AboutController.ts b/src/routes/AboutController.ts index 0a93083..f141f74 100644 --- a/src/routes/AboutController.ts +++ b/src/routes/AboutController.ts @@ -12,9 +12,17 @@ export class AboutController extends BaseController { * @param req The request object. * @param res The response object. */ - @Page('About', 'about.ejs') + @Page('About Us', 'about.ejs') @GET('/about') - private about(req: Request, res: Response) { + private aboutPage(req: Request, res: Response) {} + + @Page('Our Principals', 'about/principals.ejs') + @GET('/about/principals') + private principalsPage(req: Request, res: Response) {} + + @Page('Our Team', 'about/our-team.ejs') + @GET('/about/our-team') + private ourTeamPage(req: Request, res: Response) { return { people: [ { @@ -37,7 +45,7 @@ export class AboutController extends BaseController { { fname: 'Mohamed', lname: 'Behi', - position: 'Vice President (Training & Education)', + position: 'Education & Training Consultant', bio: '' + 'Mohamed is a passionate advocate for disability rights and accessibility. He has been involved in the disability community for many years, working with various organizations to promote inclusion and accessibility. ', email: 'mohamed@bridgemanaccessible.com', diff --git a/src/routes/SEOController.ts b/src/routes/SEOController.ts new file mode 100644 index 0000000..4f28e9c --- /dev/null +++ b/src/routes/SEOController.ts @@ -0,0 +1,72 @@ +import { Request, Response } from 'express'; + +import { Controller, GET, Page, BaseController } from '@BridgemanAccessible/ba-web-framework'; + +@Controller() +export class SEOController extends BaseController { + @Page('Search Terms', 'seo/index.ejs') + @GET('/seo') + private seoIndex(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'disabled accommodations winnipeg', 'translator services winnipeg', 'sign language translators winnipeg', 'accessible resources winnipeg', 'assistive tech winnipeg'].join(', '), + description: 'Bridgeman Accessible SEO terms and pages for better search engine visibility.' + } + } + + @Page('Disabled Accommodations Winnipeg', 'seo/disabled-accommodations-winnipeg.ejs') + @GET('/seo/disabled-accommodations-winnipeg') + private disabledAccommodationsWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'disabled accommodations winnipeg'].join(', '), + description: 'Disabled accommodations in Winnipeg are essential for ensuring accessibility and inclusivity. Bridgeman Accessible provides insights and resources on this topic.' + } + } + + @Page('Translator Services Winnipeg', 'seo/translator-services-winnipeg.ejs') + @GET('/seo/translator-services-winnipeg') + private translatorServicesWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'translator services winnipeg'].join(', '), + description: 'Translator services in Winnipeg are essential for bridging communication gaps. Bridgeman Accessible provides information on available translation services.' + } + } + + @Page('Sign Language Translators Winnipeg', 'seo/sign-language-translators-winnipeg.ejs') + @GET('/seo/sign-language-translators-winnipeg') + private signLanguageTranslatorsWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'sign language translators winnipeg'].join(', '), + description: 'Sign language translators in Winnipeg play a vital role in communication accessibility. Bridgeman Accessible provides information on what sign language translation services it provides.' + } + } + + @Page('Accessible Resources Winnipeg', 'seo/accessible-resources-winnipeg.ejs') + @GET('/seo/accessible-resources-winnipeg') + private accessibleResourcesWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'accessible resources winnipeg'].join(', '), + description: 'Accessible resources in Winnipeg are essential for promoting inclusivity. Bridgeman Accessible offers a range of resources to support accessibility initiatives.' + } + } + + @Page('Assistive Tech Winnipeg', 'seo/assistive-tech-winnipeg.ejs') + @GET('/seo/assistive-tech-winnipeg') + private assistiveTechWinnipegPage(req: Request, res: Response) { + return { + keywords: ['Bridgeman Accessible', 'SEO', 'Winnipeg', 'assistive tech winnipeg'].join(', '), + description: 'Assistive technology in Winnipeg is crucial for enhancing accessibility. Bridgeman Accessible provides information and resources on assistive tech solutions.' + } + } + + @GET('/site-map.xml') + private siteMap(req: Request, res: Response) { + res.type('xml'); + res.sendFile('src/static/xml/sitemap.xml', { root: __dirname + '/../..' }); + } + + @GET('/robots.txt') + private robotsTxt(req: Request, res: Response) { + res.type('text/plain'); + res.sendFile('src/static/robots.txt', { root: __dirname + '/../..' }); + } +} \ No newline at end of file diff --git a/src/static/robots.txt b/src/static/robots.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/static/xml/sitemap.xml b/src/static/xml/sitemap.xml new file mode 100644 index 0000000..629f291 --- /dev/null +++ b/src/static/xml/sitemap.xml @@ -0,0 +1,27 @@ + + + + https://bridgemanaccessible.ca/ + 2025-07-12 + + + https://bridgemanaccessible.ca/services + 2025-07-12 + + + https://bridgemanaccessible.ca/products + 2025-07-12 + + + https://bridgemanaccessible.ca/seo + 2025-07-12 + + + https://bridgemanaccessible.ca/about + 2025-07-12 + + + https://bridgemanaccessible.ca/contact + 2025-07-12 + + \ No newline at end of file