diff --git a/.eleventy.js b/.eleventy.js index 18446c7f..b83f54f7 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -21,6 +21,7 @@ module.exports = function(eleventyConfig) { "woff2" ]); + eleventyConfig.addPassthroughCopy("src/scripts"); eleventyConfig.addPassthroughCopy("src/CNAME"); diff --git a/cspell.json b/cspell.json new file mode 100644 index 00000000..82d437ad --- /dev/null +++ b/cspell.json @@ -0,0 +1,23 @@ +{ + "version": "0.2", + "language": "en", + "ignorePaths": ["node_modules", ".idea", ".github"], + "dictionaries": ["en_US"], + "files": ["docs/**/*.html"], + "useGitignore": true, + "ignoreWords": [ + "Shakeel", + "Mohamed", + "wordmark", + "Headshot", + "ntrsct", + "AIGA", + "HMCT", + "résumé", + "Ismaili", + "touchpoint", + "touchpoints", + "applieddesigner", + "Salgirah" + ] +} \ No newline at end of file diff --git a/docs/projects/planetary-society/img/TPS - 11.png b/docs/projects/planetary-society/img/TPS - 11.png new file mode 100644 index 00000000..edd19ad2 Binary files /dev/null and b/docs/projects/planetary-society/img/TPS - 11.png differ diff --git a/docs/projects/planetary-society/img/TPS - 9 copy.png b/docs/projects/planetary-society/img/TPS - 9 copy.png new file mode 100644 index 00000000..ff7b9427 Binary files /dev/null and b/docs/projects/planetary-society/img/TPS - 9 copy.png differ diff --git a/docs/projects/planetary-society/img/TPS_band.avif b/docs/projects/planetary-society/img/TPS_band.avif new file mode 100644 index 00000000..4c803bbd Binary files /dev/null and b/docs/projects/planetary-society/img/TPS_band.avif differ diff --git a/docs/projects/planetary-society/img/TPS_guidelines.png b/docs/projects/planetary-society/img/TPS_guidelines.png new file mode 100644 index 00000000..4eea17e4 Binary files /dev/null and b/docs/projects/planetary-society/img/TPS_guidelines.png differ diff --git a/docs/projects/planetary-society/img/TPS_jacket.png b/docs/projects/planetary-society/img/TPS_jacket.png new file mode 100644 index 00000000..c512bc90 Binary files /dev/null and b/docs/projects/planetary-society/img/TPS_jacket.png differ diff --git a/docs/projects/planetary-society/img/TPS_merch.png b/docs/projects/planetary-society/img/TPS_merch.png new file mode 100644 index 00000000..879090f5 Binary files /dev/null and b/docs/projects/planetary-society/img/TPS_merch.png differ diff --git a/docs/projects/planetary-society/img/TPS_uts.png b/docs/projects/planetary-society/img/TPS_uts.png new file mode 100644 index 00000000..26e3e538 Binary files /dev/null and b/docs/projects/planetary-society/img/TPS_uts.png differ diff --git a/docs/projects/planetary-society/index.html b/docs/projects/planetary-society/index.html index b2b33e2b..83cf28d4 100644 --- a/docs/projects/planetary-society/index.html +++ b/docs/projects/planetary-society/index.html @@ -118,6 +118,14 @@
Two-tone business card system.
+
+
A manifesto poster for Planetary Society headquarters, serving as an inspirational reminder for employees.
- 2025 marks 45 years since the Planetary Society was founded. I designed promotional posters for a 45th anniversary retreat on Catalina Island for members and donors. The 45th anniversary identity takes on a distinct color palette and typographic voice inspired by the natural beauty of Catalina Island.
+2025 marks 45 years since the Planetary Society was founded. I designed promotional posters for a 45th anniversary retreat on Catalina Island for members and donors. I named the event, “Under the Stars”.
- Planetary Society Sans is a variable weight font I designed to be the typographic voice for their 45th anniversary. The modular typeface is inspired by planetary orbits, and can be used to create dynamic compositions when used at large scale.
+Planetary Society Sans is a variable weight font I designed to be the typographic voice for their 45th anniversary. The modular typeface is inspired by planetary orbits, and can be used to create dynamic compositions when used at large scale.
+
+ The 45th anniversary identity takes on a distinct brand and typographic voice.
+
+ The color palette was inspired by the natural beauty of Catalina Island.
+
Event tickets for general admission and Planetary Support (VIP) levels of donors. These are samples of a larger printed invitation package, currently in progress.
+ Guest wristbands to verify ticket purchase.
+
diff --git a/docs/projects/salgirah-festival-identity/img/salgirah_motion.avif b/docs/projects/salgirah-festival-identity/img/salgirah_motion.avif
new file mode 100644
index 00000000..58dd846c
Binary files /dev/null and b/docs/projects/salgirah-festival-identity/img/salgirah_motion.avif differ
diff --git a/docs/projects/salgirah-festival-identity/index.html b/docs/projects/salgirah-festival-identity/index.html
index 68816670..1df43b65 100644
--- a/docs/projects/salgirah-festival-identity/index.html
+++ b/docs/projects/salgirah-festival-identity/index.html
@@ -107,9 +107,8 @@ This is a mini-reel of all motion graphics I worked on for #Salgirah85. These animations were used across social media, opening slates for various forms of video content for the festival, and on stage at some live events. Music was selected by The Ismaili Sounds global team.
+
+ This is a mini-reel of all motion graphics I worked on for #Salgirah85. These animations were used across social media, opening slates for various forms of video content for the festival, and on stage at some live events.
+ Process book covering two semesters of research, process, and design execution. Size: 8x10", page count: 180.
+
+ Selected spreads. Page numbers are only on left-hand pages to retain focus on the content.
+
diff --git a/package-lock.json b/package-lock.json
index 119250b1..07dae8be 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,6 +17,7 @@
"alex": "^11.0.0",
"autoprefixer": "^10.4.2",
"concurrently": "^7.2.2",
+ "cspell": "^9.2.0",
"git-date-extractor": "^4.0.1",
"jstransformer-markdown-it": "^3.0.0",
"markdown-it": "^13.0.0",
@@ -269,6 +270,605 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@cspell/cspell-bundled-dicts": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-9.2.0.tgz",
+ "integrity": "sha512-e4qb78SQWqHkRw47W8qFJ3RPijhSLkADF+T0oH8xl3r/golq1RGp2/KrWOqGRRofUSTiIKYqaMX7mbAyFnOxyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/dict-ada": "^4.1.1",
+ "@cspell/dict-al": "^1.1.1",
+ "@cspell/dict-aws": "^4.0.12",
+ "@cspell/dict-bash": "^4.2.1",
+ "@cspell/dict-companies": "^3.2.2",
+ "@cspell/dict-cpp": "^6.0.9",
+ "@cspell/dict-cryptocurrencies": "^5.0.5",
+ "@cspell/dict-csharp": "^4.0.7",
+ "@cspell/dict-css": "^4.0.18",
+ "@cspell/dict-dart": "^2.3.1",
+ "@cspell/dict-data-science": "^2.0.9",
+ "@cspell/dict-django": "^4.1.5",
+ "@cspell/dict-docker": "^1.1.15",
+ "@cspell/dict-dotnet": "^5.0.10",
+ "@cspell/dict-elixir": "^4.0.8",
+ "@cspell/dict-en_us": "^4.4.15",
+ "@cspell/dict-en-common-misspellings": "^2.1.3",
+ "@cspell/dict-en-gb-mit": "^3.1.5",
+ "@cspell/dict-filetypes": "^3.0.13",
+ "@cspell/dict-flutter": "^1.1.1",
+ "@cspell/dict-fonts": "^4.0.5",
+ "@cspell/dict-fsharp": "^1.1.1",
+ "@cspell/dict-fullstack": "^3.2.7",
+ "@cspell/dict-gaming-terms": "^1.1.2",
+ "@cspell/dict-git": "^3.0.7",
+ "@cspell/dict-golang": "^6.0.23",
+ "@cspell/dict-google": "^1.0.9",
+ "@cspell/dict-haskell": "^4.0.6",
+ "@cspell/dict-html": "^4.0.12",
+ "@cspell/dict-html-symbol-entities": "^4.0.4",
+ "@cspell/dict-java": "^5.0.12",
+ "@cspell/dict-julia": "^1.1.1",
+ "@cspell/dict-k8s": "^1.0.12",
+ "@cspell/dict-kotlin": "^1.1.1",
+ "@cspell/dict-latex": "^4.0.4",
+ "@cspell/dict-lorem-ipsum": "^4.0.5",
+ "@cspell/dict-lua": "^4.0.8",
+ "@cspell/dict-makefile": "^1.0.5",
+ "@cspell/dict-markdown": "^2.0.12",
+ "@cspell/dict-monkeyc": "^1.0.11",
+ "@cspell/dict-node": "^5.0.8",
+ "@cspell/dict-npm": "^5.2.12",
+ "@cspell/dict-php": "^4.0.15",
+ "@cspell/dict-powershell": "^5.0.15",
+ "@cspell/dict-public-licenses": "^2.0.14",
+ "@cspell/dict-python": "^4.2.19",
+ "@cspell/dict-r": "^2.1.1",
+ "@cspell/dict-ruby": "^5.0.9",
+ "@cspell/dict-rust": "^4.0.12",
+ "@cspell/dict-scala": "^5.0.8",
+ "@cspell/dict-shell": "^1.1.1",
+ "@cspell/dict-software-terms": "^5.1.4",
+ "@cspell/dict-sql": "^2.2.1",
+ "@cspell/dict-svelte": "^1.0.7",
+ "@cspell/dict-swift": "^2.0.6",
+ "@cspell/dict-terraform": "^1.1.3",
+ "@cspell/dict-typescript": "^3.2.3",
+ "@cspell/dict-vue": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/cspell-json-reporter": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-9.2.0.tgz",
+ "integrity": "sha512-qHdkW8eyknCSDEsqCG8OHBMal03LQf21H2LVWhtwszEQ4BQRKcWctc+VIgkO69F/jLaN2wi/yhhMufXWHAEzIg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-types": "9.2.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/cspell-pipe": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-9.2.0.tgz",
+ "integrity": "sha512-RO3adcsr7Ek+4511nyEOWDhOYYU1ogRs1Mo5xx3kDIdcKAJzhFdGry35T2wqft4dPASLCXcemBrhoS+hdQ+z+Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/cspell-resolver": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-9.2.0.tgz",
+ "integrity": "sha512-0Xvwq0iezfO71Alw+DjsGxacAzydqOAxdXnY4JknHuxt2l8GTSMjRwj65QAflv3PN6h1QoRZEeWdiKtusceWAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "global-directory": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/cspell-service-bus": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-9.2.0.tgz",
+ "integrity": "sha512-ZDvcOTFk3cCVW+OjlkljeP7aSuV8tIguVn+GMco1/A+961hsEP20hngK9zJtyfpXqyvJKtvCVlyzS+z8VRrZGg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/cspell-types": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-9.2.0.tgz",
+ "integrity": "sha512-hL4ltFwiARpFxlfXt4GiTWQxIFyZp4wrlp7dozZbitYO6QlYc5fwQ8jBc5zFUqknuH4gx/sCMLNXhAv3enNGZQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/dict-ada": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.1.1.tgz",
+ "integrity": "sha512-E+0YW9RhZod/9Qy2gxfNZiHJjCYFlCdI69br1eviQQWB8yOTJX0JHXLs79kOYhSW0kINPVUdvddEBe6Lu6CjGQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-al": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-al/-/dict-al-1.1.1.tgz",
+ "integrity": "sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-aws": {
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-4.0.14.tgz",
+ "integrity": "sha512-qLPR+OFmpzyUcuUYyCQFIURDDUGIlQsdGirPyvaIrXxs2giCKG97cAuFz5EleL3/Lo7uJAVDw0lt4Ka7wIRhjQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-bash": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.2.1.tgz",
+ "integrity": "sha512-SBnzfAyEAZLI9KFS7DUG6Xc1vDFuLllY3jz0WHvmxe8/4xV3ufFE3fGxalTikc1VVeZgZmxYiABw4iGxVldYEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/dict-shell": "1.1.1"
+ }
+ },
+ "node_modules/@cspell/dict-companies": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.2.3.tgz",
+ "integrity": "sha512-7ekwamRYeS7G3I3LEKM3t0WIyAytCbsx2I2h2z2eEvF+b3TmtJVcV7UI7BScLue3bep4sPB/b4CV3BUv3QfyzQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-cpp": {
+ "version": "6.0.9",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-6.0.9.tgz",
+ "integrity": "sha512-Xdq9MwGh0D5rsnbOqFW24NIClXXRhN11KJdySMibpcqYGeomxB2ODFBuhj1H7azO7kVGkGH0Okm4yQ2TRzBx0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-cryptocurrencies": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.5.tgz",
+ "integrity": "sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-csharp": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.7.tgz",
+ "integrity": "sha512-H16Hpu8O/1/lgijFt2lOk4/nnldFtQ4t8QHbyqphqZZVE5aS4J/zD/WvduqnLY21aKhZS6jo/xF5PX9jyqPKUA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-css": {
+ "version": "4.0.18",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.18.tgz",
+ "integrity": "sha512-EF77RqROHL+4LhMGW5NTeKqfUd/e4OOv6EDFQ/UQQiFyWuqkEKyEz0NDILxOFxWUEVdjT2GQ2cC7t12B6pESwg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-dart": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.3.1.tgz",
+ "integrity": "sha512-xoiGnULEcWdodXI6EwVyqpZmpOoh8RA2Xk9BNdR7DLamV/QMvEYn8KJ7NlRiTSauJKPNkHHQ5EVHRM6sTS7jdg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-data-science": {
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.9.tgz",
+ "integrity": "sha512-wTOFMlxv06veIwKdXUwdGxrQcK44Zqs426m6JGgHIB/GqvieZQC5n0UI+tUm5OCxuNyo4OV6mylT4cRMjtKtWQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-django": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.5.tgz",
+ "integrity": "sha512-AvTWu99doU3T8ifoMYOMLW2CXKvyKLukPh1auOPwFGHzueWYvBBN+OxF8wF7XwjTBMMeRleVdLh3aWCDEX/ZWg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-docker": {
+ "version": "1.1.16",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.16.tgz",
+ "integrity": "sha512-UiVQ5RmCg6j0qGIxrBnai3pIB+aYKL3zaJGvXk1O/ertTKJif9RZikKXCEgqhaCYMweM4fuLqWSVmw3hU164Iw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-dotnet": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.10.tgz",
+ "integrity": "sha512-ooar8BP/RBNP1gzYfJPStKEmpWy4uv/7JCq6FOnJLeD1yyfG3d/LFMVMwiJo+XWz025cxtkM3wuaikBWzCqkmg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-elixir": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.8.tgz",
+ "integrity": "sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-en_us": {
+ "version": "4.4.16",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.16.tgz",
+ "integrity": "sha512-/R47sUbUmba2dG/0LZyE6P6gX/DRF1sCcYNQNWyPk/KeidQRNZG+FH9U0KRvX42/2ZzMge6ebXH3WAJ52w0Vqw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-en-common-misspellings": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.1.3.tgz",
+ "integrity": "sha512-v1I97Hr1OrK+mwHsVzbY4vsPxx6mA5quhxzanF6XuRofz00wH4HPz8Q3llzRHxka5Wl/59gyan04UkUrvP4gdA==",
+ "dev": true,
+ "license": "CC BY-SA 4.0"
+ },
+ "node_modules/@cspell/dict-en-gb-mit": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.6.tgz",
+ "integrity": "sha512-3JJGxuPhDK5rMDYPzJYAdjjsBddEyV54rXfUQpOCl7c7weMhNDWfC2q4h3cKNDj7Isud1q2RM+DlSxQWf40OTw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-filetypes": {
+ "version": "3.0.13",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.13.tgz",
+ "integrity": "sha512-g6rnytIpQlMNKGJT1JKzWkC+b3xCliDKpQ3ANFSq++MnR4GaLiifaC4JkVON11Oh/UTplYOR1nY3BR4X30bswA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-flutter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-flutter/-/dict-flutter-1.1.1.tgz",
+ "integrity": "sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-fonts": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.5.tgz",
+ "integrity": "sha512-BbpkX10DUX/xzHs6lb7yzDf/LPjwYIBJHJlUXSBXDtK/1HaeS+Wqol4Mlm2+NAgZ7ikIE5DQMViTgBUY3ezNoQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-fsharp": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-fsharp/-/dict-fsharp-1.1.1.tgz",
+ "integrity": "sha512-imhs0u87wEA4/cYjgzS0tAyaJpwG7vwtC8UyMFbwpmtw+/bgss+osNfyqhYRyS/ehVCWL17Ewx2UPkexjKyaBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-fullstack": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.2.7.tgz",
+ "integrity": "sha512-IxEk2YAwAJKYCUEgEeOg3QvTL4XLlyArJElFuMQevU1dPgHgzWElFevN5lsTFnvMFA1riYsVinqJJX0BanCFEg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-gaming-terms": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.1.2.tgz",
+ "integrity": "sha512-9XnOvaoTBscq0xuD6KTEIkk9hhdfBkkvJAIsvw3JMcnp1214OCGW8+kako5RqQ2vTZR3Tnf3pc57o7VgkM0q1Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-git": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-3.0.7.tgz",
+ "integrity": "sha512-odOwVKgfxCQfiSb+nblQZc4ErXmnWEnv8XwkaI4sNJ7cNmojnvogYVeMqkXPjvfrgEcizEEA4URRD2Ms5PDk1w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-golang": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.23.tgz",
+ "integrity": "sha512-oXqUh/9dDwcmVlfUF5bn3fYFqbUzC46lXFQmi5emB0vYsyQXdNWsqi6/yH3uE7bdRE21nP7Yo0mR1jjFNyLamg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-google": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-google/-/dict-google-1.0.9.tgz",
+ "integrity": "sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-haskell": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.6.tgz",
+ "integrity": "sha512-ib8SA5qgftExpYNjWhpYIgvDsZ/0wvKKxSP+kuSkkak520iPvTJumEpIE+qPcmJQo4NzdKMN8nEfaeci4OcFAQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-html": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.12.tgz",
+ "integrity": "sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-html-symbol-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.4.tgz",
+ "integrity": "sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-java": {
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.12.tgz",
+ "integrity": "sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-julia": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-julia/-/dict-julia-1.1.1.tgz",
+ "integrity": "sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-k8s": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.12.tgz",
+ "integrity": "sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-kotlin": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-kotlin/-/dict-kotlin-1.1.1.tgz",
+ "integrity": "sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-latex": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-4.0.4.tgz",
+ "integrity": "sha512-YdTQhnTINEEm/LZgTzr9Voz4mzdOXH7YX+bSFs3hnkUHCUUtX/mhKgf1CFvZ0YNM2afjhQcmLaR9bDQVyYBvpA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-lorem-ipsum": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.5.tgz",
+ "integrity": "sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-lua": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.8.tgz",
+ "integrity": "sha512-N4PkgNDMu9JVsRu7JBS/3E/dvfItRgk9w5ga2dKq+JupP2Y3lojNaAVFhXISh4Y0a6qXDn2clA6nvnavQ/jjLA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-makefile": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-makefile/-/dict-makefile-1.0.5.tgz",
+ "integrity": "sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-markdown": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.12.tgz",
+ "integrity": "sha512-ufwoliPijAgWkD/ivAMC+A9QD895xKiJRF/fwwknQb7kt7NozTLKFAOBtXGPJAB4UjhGBpYEJVo2elQ0FCAH9A==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@cspell/dict-css": "^4.0.18",
+ "@cspell/dict-html": "^4.0.12",
+ "@cspell/dict-html-symbol-entities": "^4.0.4",
+ "@cspell/dict-typescript": "^3.2.3"
+ }
+ },
+ "node_modules/@cspell/dict-monkeyc": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-monkeyc/-/dict-monkeyc-1.0.11.tgz",
+ "integrity": "sha512-7Q1Ncu0urALI6dPTrEbSTd//UK0qjRBeaxhnm8uY5fgYNFYAG+u4gtnTIo59S6Bw5P++4H3DiIDYoQdY/lha8w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-node": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-5.0.8.tgz",
+ "integrity": "sha512-AirZcN2i84ynev3p2/1NCPEhnNsHKMz9zciTngGoqpdItUb2bDt1nJBjwlsrFI78GZRph/VaqTVFwYikmncpXg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-npm": {
+ "version": "5.2.13",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.13.tgz",
+ "integrity": "sha512-yE7DfpiQjDFW6TLr5/fsSj4BlUy1A8lsuz2LQQHv4lQAAkZ4RsePYFL9DkRRfEtxn8CZYetUnU74/jQbfsnyrA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-php": {
+ "version": "4.0.15",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.15.tgz",
+ "integrity": "sha512-iepGB2gtToMWSTvybesn4/lUp4LwXcEm0s8vasJLP76WWVkq1zYjmeS+WAIzNgsuURyZ/9mGqhS0CWMuo74ODw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-powershell": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.15.tgz",
+ "integrity": "sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-public-licenses": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.14.tgz",
+ "integrity": "sha512-8NhNzQWALF6+NlLeKZKilSHbeW9MWeiD+NcrjehMAcovKFbsn8smmQG/bVxw+Ymtd6WEgNpLgswAqNsbSQQ4og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-python": {
+ "version": "4.2.19",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.2.19.tgz",
+ "integrity": "sha512-9S2gTlgILp1eb6OJcVZeC8/Od83N8EqBSg5WHVpx97eMMJhifOzePkE0kDYjyHMtAFznCQTUu0iQEJohNQ5B0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/dict-data-science": "^2.0.9"
+ }
+ },
+ "node_modules/@cspell/dict-r": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.1.1.tgz",
+ "integrity": "sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-ruby": {
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.9.tgz",
+ "integrity": "sha512-H2vMcERMcANvQshAdrVx0XoWaNX8zmmiQN11dZZTQAZaNJ0xatdJoSqY8C8uhEMW89bfgpN+NQgGuDXW2vmXEw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-rust": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.12.tgz",
+ "integrity": "sha512-z2QiH+q9UlNhobBJArvILRxV8Jz0pKIK7gqu4TgmEYyjiu1TvnGZ1tbYHeu9w3I/wOP6UMDoCBTty5AlYfW0mw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-scala": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.8.tgz",
+ "integrity": "sha512-YdftVmumv8IZq9zu1gn2U7A4bfM2yj9Vaupydotyjuc+EEZZSqAafTpvW/jKLWji2TgybM1L2IhmV0s/Iv9BTw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-shell": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.1.1.tgz",
+ "integrity": "sha512-T37oYxE7OV1x/1D4/13Y8JZGa1QgDCXV7AVt3HLXjn0Fe3TaNDvf5sU0fGnXKmBPqFFrHdpD3uutAQb1dlp15g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-software-terms": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.1.5.tgz",
+ "integrity": "sha512-MX5beBP3pLmIM0mjqfrHbie3EEfyLWZ8ZqW56jcLuRlLoDcfC0FZsr66NCARgCgEwsWiidHFe87+7fFsnwqY6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-sql": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.2.1.tgz",
+ "integrity": "sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-svelte": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.7.tgz",
+ "integrity": "sha512-hGZsGqP0WdzKkdpeVLBivRuSNzOTvN036EBmpOwxH+FTY2DuUH7ecW+cSaMwOgmq5JFSdTcbTNFlNC8HN8lhaQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-swift": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.6.tgz",
+ "integrity": "sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-terraform": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-terraform/-/dict-terraform-1.1.3.tgz",
+ "integrity": "sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-typescript": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz",
+ "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dict-vue": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.5.tgz",
+ "integrity": "sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@cspell/dynamic-import": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-9.2.0.tgz",
+ "integrity": "sha512-2/k4LR8CQqbgIPQGELbCdt9xgg9+aQ7pMwOtllKvnFYBtwNiwqcZjlzAam2gtvD5DghKX2qrcSHG5A7YP5cX9A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/url": "9.2.0",
+ "import-meta-resolve": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/dynamic-import/node_modules/import-meta-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
+ "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/@cspell/filetypes": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-9.2.0.tgz",
+ "integrity": "sha512-6wmCa3ZyI647H7F4w6kb9PCJ703JKSgFTB8EERTdIoGySbgVp5+qMIIoZ//wELukdjgcufcFZ5pBrhRDRsemRA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/strong-weak-map": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-9.2.0.tgz",
+ "integrity": "sha512-5mpIMiIOCu4cBqy1oCTXISgJuOCQ6R/e38AkvnYWfmMIx7fCdx8n+mF52wX9m61Ng28Sq8VL253xybsWcCxHug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@cspell/url": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/@cspell/url/-/url-9.2.0.tgz",
+ "integrity": "sha512-plB0wwdAESqBl4xDAT2db2/K1FZHJXfYlJTiV6pkn0XffTGyg4UGLaSCm15NzUoPxdSmzqj5jQb7y+mB9kFK8g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
"node_modules/@iarna/toml": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
@@ -982,6 +1582,13 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/array-timsort": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz",
+ "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -1371,6 +1978,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -1489,6 +2106,35 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/chalk-template": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-1.1.0.tgz",
+ "integrity": "sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk-template?sponsor=1"
+ }
+ },
+ "node_modules/chalk-template/node_modules/chalk": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.5.0.tgz",
+ "integrity": "sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
"node_modules/character-entities": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz",
@@ -1580,6 +2226,23 @@
"node": ">=8"
}
},
+ "node_modules/clear-module": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz",
+ "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^2.0.0",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/cli-boxes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
@@ -1643,7 +2306,24 @@
"integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
"engines": {
- "node": ">=14"
+ "node": ">=14"
+ }
+ },
+ "node_modules/comment-json": {
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.5.tgz",
+ "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-timsort": "^1.0.3",
+ "core-util-is": "^1.0.3",
+ "esprima": "^4.0.1",
+ "has-own-prop": "^2.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/concat-map": {
@@ -1829,6 +2509,238 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/cspell": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell/-/cspell-9.2.0.tgz",
+ "integrity": "sha512-AKzaFMem2jRcGpAY2spKP0z15jpZeX1WTDNHCDsB8/YvnhnOfWXc0S5AF+4sfU1cQgHWYGFOolMuTri0ZQdV+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-json-reporter": "9.2.0",
+ "@cspell/cspell-pipe": "9.2.0",
+ "@cspell/cspell-types": "9.2.0",
+ "@cspell/dynamic-import": "9.2.0",
+ "@cspell/url": "9.2.0",
+ "chalk": "^5.4.1",
+ "chalk-template": "^1.1.0",
+ "commander": "^14.0.0",
+ "cspell-config-lib": "9.2.0",
+ "cspell-dictionary": "9.2.0",
+ "cspell-gitignore": "9.2.0",
+ "cspell-glob": "9.2.0",
+ "cspell-io": "9.2.0",
+ "cspell-lib": "9.2.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "flatted": "^3.3.3",
+ "semver": "^7.7.2",
+ "tinyglobby": "^0.2.14"
+ },
+ "bin": {
+ "cspell": "bin.mjs",
+ "cspell-esm": "bin.mjs"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/streetsidesoftware/cspell?sponsor=1"
+ }
+ },
+ "node_modules/cspell-config-lib": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-9.2.0.tgz",
+ "integrity": "sha512-Yc8+hT+uIWWCi6WMhOL6HDYbBCP2qig1tgKGThHVeOx6GviieV10TZ5kQ+P7ONgoqw2nmm7uXIC19dGYx3DblQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-types": "9.2.0",
+ "comment-json": "^4.2.5",
+ "smol-toml": "^1.4.1",
+ "yaml": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell-config-lib/node_modules/yaml": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ }
+ },
+ "node_modules/cspell-dictionary": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-9.2.0.tgz",
+ "integrity": "sha512-lV4VtjsDtxu8LyCcb6DY7Br4e/Aw1xfR8QvjYhHaJ8t03xry9STey5Rkfp+lz+hlVevNcn3lfCaacGuXyD+lLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-pipe": "9.2.0",
+ "@cspell/cspell-types": "9.2.0",
+ "cspell-trie-lib": "9.2.0",
+ "fast-equals": "^5.2.2"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell-gitignore": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-9.2.0.tgz",
+ "integrity": "sha512-gXDQZ7czTPwmEg1qtsUIjVEFm9IfgTO8rA02O8eYIveqjFixbSV3fIYOgoxZSZYxjt3O44m8+/zAFC1RE4CM/Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/url": "9.2.0",
+ "cspell-glob": "9.2.0",
+ "cspell-io": "9.2.0"
+ },
+ "bin": {
+ "cspell-gitignore": "bin.mjs"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell-glob": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-9.2.0.tgz",
+ "integrity": "sha512-viycZDyegzW2AKPFqvX5RveqTrB0sKgexlCu2A8z8eumpYYor5sD1NP05VDOqkAF4hDuiGqkHn6iNo0L1wNgLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/url": "9.2.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell-glob/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/cspell-grammar": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-9.2.0.tgz",
+ "integrity": "sha512-qthAmWcNHpYAmufy7YWVg9xwrYANkVlI40bgC2uGd8EnKssm/qOPhqXXNS+kLf+q0NmJM5nMgRLhCC23xSp3JA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-pipe": "9.2.0",
+ "@cspell/cspell-types": "9.2.0"
+ },
+ "bin": {
+ "cspell-grammar": "bin.mjs"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell-io": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-9.2.0.tgz",
+ "integrity": "sha512-oxKiqFLcz629FmOId8UpdDznpMvCgpuktg4nkD2G9pYpRh+fRLZpP4QtZPyvJqvpUIzFhIOznMeHjsiBYHOZUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-service-bus": "9.2.0",
+ "@cspell/url": "9.2.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell-lib": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-9.2.0.tgz",
+ "integrity": "sha512-RnhDIsETw6Ex0UaK3PFoJ2FwWMWfJPtdpNpv1qgmJwoGD4CzwtIqPOLtZ24zqdCP8ZnNTF/lwV/9rZVqifYjsw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-bundled-dicts": "9.2.0",
+ "@cspell/cspell-pipe": "9.2.0",
+ "@cspell/cspell-resolver": "9.2.0",
+ "@cspell/cspell-types": "9.2.0",
+ "@cspell/dynamic-import": "9.2.0",
+ "@cspell/filetypes": "9.2.0",
+ "@cspell/strong-weak-map": "9.2.0",
+ "@cspell/url": "9.2.0",
+ "clear-module": "^4.1.2",
+ "comment-json": "^4.2.5",
+ "cspell-config-lib": "9.2.0",
+ "cspell-dictionary": "9.2.0",
+ "cspell-glob": "9.2.0",
+ "cspell-grammar": "9.2.0",
+ "cspell-io": "9.2.0",
+ "cspell-trie-lib": "9.2.0",
+ "env-paths": "^3.0.0",
+ "fast-equals": "^5.2.2",
+ "gensequence": "^7.0.0",
+ "import-fresh": "^3.3.1",
+ "resolve-from": "^5.0.0",
+ "vscode-languageserver-textdocument": "^1.0.12",
+ "vscode-uri": "^3.1.0",
+ "xdg-basedir": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell-trie-lib": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-9.2.0.tgz",
+ "integrity": "sha512-6GHL1KvLQzcPBSNY6QWOabq8YwRJAnNKamA0O/tRKy+11Hy99ysD4xvfu3kKYPAcobp5ZykX4nudHxy8yrEvng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspell/cspell-pipe": "9.2.0",
+ "@cspell/cspell-types": "9.2.0",
+ "gensequence": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cspell/node_modules/chalk": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.5.0.tgz",
+ "integrity": "sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/cspell/node_modules/commander": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz",
+ "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -2216,6 +3128,19 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/env-paths": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz",
+ "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/errno": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
@@ -2352,6 +3277,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/fast-equals": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.2.2.tgz",
+ "integrity": "sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/fast-glob": {
"version": "3.2.12",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
@@ -2368,6 +3303,13 @@
"node": ">=8.6.0"
}
},
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fastq": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
@@ -2478,6 +3420,13 @@
"node": ">=8"
}
},
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/foreground-child": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
@@ -2583,6 +3532,16 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
+ "node_modules/gensequence": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-7.0.0.tgz",
+ "integrity": "sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -2961,6 +3920,32 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/global-directory": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz",
+ "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ini": "4.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/global-directory/node_modules/ini": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz",
+ "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
"node_modules/global-dirs": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
@@ -3132,6 +4117,16 @@
"node": ">=8"
}
},
+ "node_modules/has-own-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz",
+ "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
@@ -3423,6 +4418,46 @@
"node": ">= 4"
}
},
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-fresh/node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-fresh/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/import-lazy": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
@@ -5814,6 +6849,19 @@
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
"dev": true
},
+ "node_modules/parent-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz",
+ "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/parse-english": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/parse-english/-/parse-english-5.0.0.tgz",
@@ -7138,6 +8186,16 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -7170,6 +8228,16 @@
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
"dev": true
},
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/responselike": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
@@ -7341,10 +8409,11 @@
}
},
"node_modules/semver": {
- "version": "7.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
- "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"dev": true,
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
@@ -7430,6 +8499,19 @@
"node": ">=8.0.0"
}
},
+ "node_modules/smol-toml": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.1.tgz",
+ "integrity": "sha512-CxdwHXyYTONGHThDbq5XdwbFsuY4wlClRGejfE2NtwUtiHYsP1QtNsHb/hnj31jKYSchztJsaA8pSQoVzkfCFg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/cyyynthia"
+ }
+ },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -7865,6 +8947,51 @@
"xtend": "~4.0.0"
}
},
+ "node_modules/tinyglobby": {
+ "version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
+ "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.4.6",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
+ "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -8649,6 +9776,20 @@
"node": ">=0.10.0"
}
},
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
+ "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/walk-up-path": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
diff --git a/package.json b/package.json
index d3b942be..dd41f7f2 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"dev": "concurrently -k \"npm:start\" \"npm:postcss:w\"",
"start": "npm run-script postcss && npx @11ty/eleventy --serve --incremental --input=src --output=docs",
"build": "npx @11ty/eleventy --input=src --output=docs && npm run-script postcss",
- "posttest": "alex --html ./docs/",
+ "posttest": "npx cspell 'docs/**/*.html' && alex --html ./docs/",
"test": "npx playwright test",
"postcss": "postcss src/styles.css -o docs/dist/tailwind.css",
"postcss:w": "postcss -w src/styles.css -o docs/dist/tailwind.css --poll",
@@ -32,6 +32,7 @@
"alex": "^11.0.0",
"autoprefixer": "^10.4.2",
"concurrently": "^7.2.2",
+ "cspell": "^9.2.0",
"git-date-extractor": "^4.0.1",
"jstransformer-markdown-it": "^3.0.0",
"markdown-it": "^13.0.0",
diff --git a/src/projects/planetary-society/img/TPS - 11.png b/src/projects/planetary-society/img/TPS - 11.png
new file mode 100644
index 00000000..edd19ad2
Binary files /dev/null and b/src/projects/planetary-society/img/TPS - 11.png differ
diff --git a/src/projects/planetary-society/img/TPS - 9 copy.png b/src/projects/planetary-society/img/TPS - 9 copy.png
new file mode 100644
index 00000000..ff7b9427
Binary files /dev/null and b/src/projects/planetary-society/img/TPS - 9 copy.png differ
diff --git a/src/projects/planetary-society/img/TPS_band.avif b/src/projects/planetary-society/img/TPS_band.avif
new file mode 100644
index 00000000..4c803bbd
Binary files /dev/null and b/src/projects/planetary-society/img/TPS_band.avif differ
diff --git a/src/projects/planetary-society/img/TPS_guidelines.png b/src/projects/planetary-society/img/TPS_guidelines.png
new file mode 100644
index 00000000..4eea17e4
Binary files /dev/null and b/src/projects/planetary-society/img/TPS_guidelines.png differ
diff --git a/src/projects/planetary-society/img/TPS_jacket.png b/src/projects/planetary-society/img/TPS_jacket.png
new file mode 100644
index 00000000..c512bc90
Binary files /dev/null and b/src/projects/planetary-society/img/TPS_jacket.png differ
diff --git a/src/projects/planetary-society/img/TPS_merch.png b/src/projects/planetary-society/img/TPS_merch.png
new file mode 100644
index 00000000..879090f5
Binary files /dev/null and b/src/projects/planetary-society/img/TPS_merch.png differ
diff --git a/src/projects/planetary-society/img/TPS_uts.png b/src/projects/planetary-society/img/TPS_uts.png
new file mode 100644
index 00000000..26e3e538
Binary files /dev/null and b/src/projects/planetary-society/img/TPS_uts.png differ
diff --git a/src/projects/planetary-society/index.pug b/src/projects/planetary-society/index.pug
index d04e85b8..57b8ccf3 100644
--- a/src/projects/planetary-society/index.pug
+++ b/src/projects/planetary-society/index.pug
@@ -35,6 +35,7 @@ block content
//- TODO: production work to resize all images for this project
//- TODO: need jacket mockups somehow in context
.grid-1
+ //- TODO: tall bell curve easing on the last transition; re-render + convert to avif
+portfolioImg("./img/Planetary_Society_logo_reveal.gif", "", "Logo reveal animation inspired by the big bang.")
+portfolioImg("./img/TPS - 1.png", "Planetary Society posters at Paseo Colorado a nearby outdoor mall in Pasadena, California", "Planetary Society posters at the nearby Paseo Colorado outdoor mall.")
.grid-2
@@ -42,20 +43,33 @@ block content
+portfolioImg("./img/Planetary_Society_ID_overview.png", "", "Overview of the identity system, I chose a serif typeface to break the standard of retro-sci-fi many aerospace companies use. In doing so, any brand messaging takes on a timeless feeling aligned with my concept of contemplation about space.")
.grid-1
+portfolioImg("./img/TPS - 2.png", "", "Two-tone business card system.")
+ .grid-2
+ //- TODO: hat, etc.
+ //- TODO: a better jacket mockup would be nice
+ //- +portfolioImg("./img/TPS_jacket.png", "", "")
+ +portfolioImg("./img/TPS_guidelines.png", "", "")
+ +portfolioImg("./img/TPS_merch.png", "", "")
+ .grid-1
+portfolioImg("./img/TPS - 8.png", "", "A manifesto poster for Planetary Society headquarters, serving as an inspirational reminder for employees.")
.grid-2
+portfolioImg("./img/TPS - 7.png", "", "Exterior signage at Planetary Society headquarters in Pasadena, CA. Photography and editing by me.")
+portfolioImg("./img/TPS - 6.png", "", "Building signage at Planetary Society headquarters in Pasadena, CA. Photography and editing by me.")
.grid-1
//- TOD: can I mock up the metallic poster that I wanted to print? (yes)
- +portfolioImg("./img/TPS - 4.png", "", "2025 marks 45 years since the Planetary Society was founded. I designed promotional posters for a 45th anniversary retreat on Catalina Island for members and donors. The 45th anniversary identity takes on a distinct color palette and typographic voice inspired by the natural beauty of Catalina Island.")
- //- .grid-2
- //- TODO: why are these colors different omg
- +portfolioImg("./img/TPS - 3.png", "", "Modular typeface inspired by planetary orbits. The new colors are inspired by lush seascapes on Catalina Island.")
- .grid-1
- +portfolioImg("./img/planetary-society-sans.gif", "Planetary Society Sans variable weight font animation.", "Planetary Society Sans is a variable weight font I designed to be the typographic voice for their 45th anniversary. The modular typeface is inspired by planetary orbits, and can be used to create dynamic compositions when used at large scale.")
- .grid-1
- +portfolioImg("./img/TPS - 9.png", "", "Event tickets for general admission and Planetary Support (VIP) levels of donors. These are samples of a larger printed invitation package, currently in progress.")
+ +portfolioImg("./img/TPS - 4.png", "", "2025 marks 45 years since the Planetary Society was founded. I designed promotional posters for a 45th anniversary retreat on Catalina Island for members and donors. I named the event, “Under the Stars”.")
+ +portfolioImg("./img/planetary-society-sans.gif", "Planetary Society Sans variable weight font animation.", "Planetary Society Sans is a variable weight font I designed to be the typographic voice for their 45th anniversary. The modular typeface is inspired by planetary orbits, and can be used to create dynamic compositions when used at large scale.")
+ .grid-2
+ +portfolioImg("./img/TPS - 11.png", "", "The 45th anniversary identity takes on a distinct brand and typographic voice.")
+ +portfolioImg("./img/TPS_uts.png", "", "The color palette was inspired by the natural beauty of Catalina Island.")
+ .grid-2
+ //- TODO: temp workaround, made a copy to crop the ticket mockup to 16:9
+ +portfolioImg("./img/TPS - 9 copy.png", "", "Event tickets for general admission and Planetary Support (VIP) levels of donors. These are samples of a larger printed invitation package, currently in progress.")
+ //- TODO: redo this avif with both GA and VIP; make it a perfect loop
+ //- also... check: centered, latest font, color on edges
+ //- use metallic paper texture from the tickets .psd
+ +portfolioImg("./img/TPS_band.avif", "", "Guest wristbands to verify ticket purchase.")
+ //- TODO: more merch
+ //- TODO: process!!!!
.grid-2
+portfolioImg("./img/TPS - 15.png", "", "After meeting with the Marketing Director at their HQ, they chose two of my posters to display in the office.")
+portfolioImg("./img/TPS - 16.png", "", "One poster was chosen for display in the ArtCenter student gallery.")
diff --git a/src/projects/salgirah-festival-identity/img/salgirah_motion.avif b/src/projects/salgirah-festival-identity/img/salgirah_motion.avif
new file mode 100644
index 00000000..58dd846c
Binary files /dev/null and b/src/projects/salgirah-festival-identity/img/salgirah_motion.avif differ
diff --git a/src/projects/salgirah-festival-identity/index.pug b/src/projects/salgirah-festival-identity/index.pug
index 4fe66d9c..dc7b1924 100644
--- a/src/projects/salgirah-festival-identity/index.pug
+++ b/src/projects/salgirah-festival-identity/index.pug
@@ -34,8 +34,10 @@ block content
.grid-1
+portfolioImg("./img/85th-Salgirah---1.png", "", "Full-color logo. The colors come from the Ismaili community’s flag, seen in the photograph of the late His Highness the Aga Khan (below).")
+ //- TODO: re-organize this project with WOW up top, then more elements, conclude with kit of parts and process
.grid-1
- +youtube("https://www.youtube.com/embed/J4gO_TFNdxw", "This is a mini-reel of all motion graphics I worked on for #Salgirah85. These animations were used across social media, opening slates for various forms of video content for the festival, and on stage at some live events. Music was selected by The Ismaili Sounds global team.")
+ //- TODO: may need to speed this up a bit
+ +portfolioImg("./img/salgirah_motion.avif", "", "This is a mini-reel of all motion graphics I worked on for #Salgirah85. These animations were used across social media, opening slates for various forms of video content for the festival, and on stage at some live events.")
//- TODO: can repurpose this video onto Labyrinth or elsewhere, fine to hide it for now
//- .grid-1
//- +youtube("https://www.youtube.com/embed/HtRtGYQx480?t=375s", "Above is the recording of my presentation of this project (at 6:15) from the 2022 AIGA Portfolio Festival.")
@@ -60,6 +62,7 @@ block content
.grid-1
+imgForSlider("./img/85th-Salgirah---cover.png", "", "Dubai World Trade Centre. The Ismaili community in Dubai, UAE held their first in-person celebration since the COVID-19 pandemic at the Dubai WTC. Unfortunately I was not able to attend for multiple reasons, but received some photos from the local team. All assets were designed by the local team in Dubai.")
+ //- TODO: this is hiding so much great stuff, better to go .grid-8 or .grid-2 on mobile
.grid-2
+slider()
+imgForSlider("./img/Salgirah---10.png", "", "The geometry of 86 didn’t resolve so nicely as 85. The following year I got a call after the global team realized they couldn’t simply “add another diamond” for that year’s identity.")
diff --git a/src/projects/thesis/img/Thesis_book_cover.png b/src/projects/thesis/img/Thesis_book_cover.png
new file mode 100644
index 00000000..6ff45f6a
Binary files /dev/null and b/src/projects/thesis/img/Thesis_book_cover.png differ
diff --git a/src/projects/thesis/img/Thesis_book_spreads.png b/src/projects/thesis/img/Thesis_book_spreads.png
new file mode 100644
index 00000000..a3ceb7e7
Binary files /dev/null and b/src/projects/thesis/img/Thesis_book_spreads.png differ
diff --git a/src/projects/thesis/index.pug b/src/projects/thesis/index.pug
index f09c7b14..a9b5bd96 100644
--- a/src/projects/thesis/index.pug
+++ b/src/projects/thesis/index.pug
@@ -49,6 +49,11 @@ block content
+portfolioImg("./img/thesis_social_2.png", "", "The 12 designer archetypes are documented with case studies and descriptions.")
+ hr
+ h2 Process Book
+ .grid-2
+ +portfolioImg("./img/Thesis_book_cover.png", "", "Process book covering two semesters of research, process, and design execution. Size: 8x10\", page count: 180.")
+ +portfolioImg("./img/Thesis_book_spreads.png", "", "Selected spreads. Page numbers are only on left-hand pages to retain focus on the content.")
//- TODO: process section is not complete
hr
diff --git a/tests/home.spec.js b/tests/home.spec.js
index a1509d05..5d18b505 100644
--- a/tests/home.spec.js
+++ b/tests/home.spec.js
@@ -14,6 +14,14 @@ test("Build generates pages", async () => {
});
*/
+// TODO: check that all media links work
+// - list dirs in ./docs
+// - filter known dirs (.idea, about, blog, blog-archive, dist, gradshow, img, labyrinth, links, mentions, posts, projects, scripts)
+// - remaining list is all media types
+// ...
+// - go through all projects, add mediatypes to a Set
+// - check Set against media types form disk
+
test('homepage has title', async ({ page }) => {
await page.goto('http://localhost:8080');
await expect(page).toHaveTitle("Shakeel Mohamed – Strategic Brand Designer in Los Angeles");
diff --git a/todo.md b/todo.md
index 6cbd0674..3f14dd03 100644
--- a/todo.md
+++ b/todo.md
@@ -1,15 +1,12 @@
# TODO
-## Important, not urgent
-
-- [ ] Add DMARC policy for gmail
-
For conversion from mp4 to avif (eventually, phase out all gifs):
```shell
ffmpeg -i ontology_cover.mp4 -c:v libaom-av1 -crf 20 -b:v 0 -still-picture 0 ontology_cover.avif
```
Figure out how to CLI automate spell check like this app: https://www.spl.ing/report-card?website=shakeelmohamed.com&uuid=e4e2c283-6e32-4327-97f6-955a0a38ef2d
+- Need a custom dictionary for cspell: https://cspell.org/docs/dictionaries#dictionary-definition
Good reference for pug x 11ty:
https://cardiff.marketing/pug-in-eleventy-making-it-work/
@@ -157,7 +154,6 @@ Others
- [ ] Rework semantics for SEO for: h1/h2/etc
- [ ] JS to prevent bad breaks (widows / orphans)
- [ ] - [ ] Responsive image loading... add avif/etc optimized loadtime support; see https://github.com/saneef/eleventy-plugin-img2picture
-- [ ] figure out how to generate the tag pages (e.g. .com/branding)
- [ ] figure out how to show extra process (another slider, hidden section, etc.)
## Consider Revisiting
@@ -173,6 +169,8 @@ Others
## New done lol...
+- [x] figure out how to generate the tag pages (e.g. .com/branding)
+- [x] Add DMARC policy for gmail
- [X] MUST leverage more of tech experience as experience which led to design, not starting from zero.
- [X] Clear narrative is more important than anything, especially on ATS and designed resume
- [X] Build at least the homepage in Figma before tweaking the scale