From c00fbbeb21b834c337a97149decf704309091634 Mon Sep 17 00:00:00 2001 From: Matthias Fleschuetz <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:55:47 +0100 Subject: [PATCH 01/28] website docusaurus major upgrade --- website/package-lock.json | 1095 ++++++++++++++++++++----------------- website/package.json | 11 +- 2 files changed, 595 insertions(+), 511 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 2c9d3d5f..e22d1651 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -8,17 +8,17 @@ "name": "website", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "3.9.2", + "@docusaurus/core": "^3.9.2", "@docusaurus/plugin-client-redirects": "^3.9.2", - "@docusaurus/preset-classic": "3.9.2", + "@docusaurus/preset-classic": "^3.9.2", "@easyops-cn/docusaurus-search-local": "^0.52.2", "@mdx-js/react": "^3.0.0", "@saucelabs/theme-github-codeblock": "^0.3.0", "clsx": "^2.0.0", "docusaurus-plugin-image-zoom": "^3.0.1", "prism-react-renderer": "^2.3.0", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.9.2", @@ -29,114 +29,147 @@ } }, "node_modules/@algolia/abtesting": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.13.0.tgz", - "integrity": "sha512-Zrqam12iorp3FjiKMXSTpedGYznZ3hTEOAr2oCxI8tbF8bS1kQHClyDYNq/eV0ewMNLyFkgZVWjaS+8spsOYiQ==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.15.2.tgz", + "integrity": "sha512-rF7vRVE61E0QORw8e2NNdnttcl3jmFMWS9B4hhdga12COe+lMa26bQLfcBn/Nbp9/AF/8gXdaRCPsVns3CnjsA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.19.2" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, "node_modules/@algolia/client-abtesting": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.47.0.tgz", - "integrity": "sha512-aOpsdlgS9xTEvz47+nXmw8m0NtUiQbvGWNuSEb7fA46iPL5FxOmOUZkh8PREBJpZ0/H8fclSc7BMJCVr+Dn72w==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.49.2.tgz", + "integrity": "sha512-XyvKCm0RRmovMI/ChaAVjTwpZhXdbgt3iZofK914HeEHLqD1MUFFVLz7M0+Ou7F56UkHXwRbpHwb9xBDNopprQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.47.0.tgz", - "integrity": "sha512-EcF4w7IvIk1sowrO7Pdy4Ako7x/S8+nuCgdk6En+u5jsaNQM4rTT09zjBPA+WQphXkA2mLrsMwge96rf6i7Mow==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.49.2.tgz", + "integrity": "sha512-jq/3qvtmj3NijZlhq7A1B0Cl41GfaBpjJxcwukGsYds6aMSCWrEAJ9pUqw/C9B3hAmILYKl7Ljz3N9SFvekD3Q==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.47.0.tgz", - "integrity": "sha512-Wzg5Me2FqgRDj0lFuPWFK05UOWccSMsIBL2YqmTmaOzxVlLZ+oUqvKbsUSOE5ud8Fo1JU7JyiLmEXBtgDKzTwg==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.49.2.tgz", + "integrity": "sha512-bn0biLequn3epobCfjUqCxlIlurLr4RHu7RaE4trgN+RDcUq6HCVC3/yqq1hwbNYpVtulnTOJzcaxYlSr1fnuw==", "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.47.0.tgz", - "integrity": "sha512-Ci+cn/FDIsDxSKMRBEiyKrqybblbk8xugo6ujDN1GSTv9RIZxwxqZYuHfdLnLEwLlX7GB8pqVyqrUSlRnR+sJA==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.49.2.tgz", + "integrity": "sha512-z14wfFs1T3eeYbCArC8pvntAWsPo9f6hnUGoj8IoRUJTwgJiiySECkm8bmmV47/x0oGHfsVn3kBdjMX0yq0sNA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.47.0.tgz", - "integrity": "sha512-gsLnHPZmWcX0T3IigkDL2imCNtsQ7dR5xfnwiFsb+uTHCuYQt+IwSNjsd8tok6HLGLzZrliSaXtB5mfGBtYZvQ==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.49.2.tgz", + "integrity": "sha512-GpRf7yuuAX93+Qt0JGEJZwgtL0MFdjFO9n7dn8s2pA9mTjzl0Sc5+uTk1VPbIAuf7xhCP9Mve+URGb6J+EYxgA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.47.0.tgz", - "integrity": "sha512-PDOw0s8WSlR2fWFjPQldEpmm/gAoUgLigvC3k/jCSi/DzigdGX6RdC0Gh1RR1P8Cbk5KOWYDuL3TNzdYwkfDyA==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.49.2.tgz", + "integrity": "sha512-HZwApmNkp0DiAjZcLYdQLddcG4Agb88OkojiAHGgcm5DVXobT5uSZ9lmyrbw/tmQBJwgu2CNw4zTyXoIB7YbPA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.47.0.tgz", - "integrity": "sha512-b5hlU69CuhnS2Rqgsz7uSW0t4VqrLMLTPbUpEl0QVz56rsSwr1Sugyogrjb493sWDA+XU1FU5m9eB8uH7MoI0g==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.49.2.tgz", + "integrity": "sha512-y1IOpG6OSmTpGg/CT0YBb/EAhR2nsC18QWp9Jy8HO9iGySpcwaTvs5kHa17daP3BMTwWyaX9/1tDTDQshZzXdg==", "license": "MIT", + "peer": true, "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" @@ -149,90 +182,90 @@ "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.47.0.tgz", - "integrity": "sha512-WvwwXp5+LqIGISK3zHRApLT1xkuEk320/EGeD7uYy+K8WwDd5OjXnhjuXRhYr1685KnkvWkq1rQ/ihCJjOfHpQ==", + "version": "1.49.2", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.49.2.tgz", + "integrity": "sha512-YYJRjaZ2bqk923HxE4um7j/Cm3/xoSkF2HC2ZweOF8cXL3sqnlndSUYmCaxHFjNPWLaSHk2IfssX6J/tdKTULw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.47.0.tgz", - "integrity": "sha512-j2EUFKAlzM0TE4GRfkDE3IDfkVeJdcbBANWzK16Tb3RHz87WuDfQ9oeEW6XiRE1/bEkq2xf4MvZesvSeQrZRDA==", + "version": "1.49.2", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.49.2.tgz", + "integrity": "sha512-9WgH+Dha39EQQyGKCHlGYnxW/7W19DIrEbCEbnzwAMpGAv1yTWCHMPXHxYa+LcL3eCp2V/5idD1zHNlIKmHRHg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.47.0.tgz", - "integrity": "sha512-+kTSE4aQ1ARj2feXyN+DMq0CIDHJwZw1kpxIunedkmpWUg8k3TzFwWsMCzJVkF2nu1UcFbl7xsIURz3Q3XwOXA==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.49.2.tgz", + "integrity": "sha512-K7Gp5u+JtVYgaVpBxF5rGiM+Ia8SsMdcAJMTDV93rwh00DKNllC19o1g+PwrDjDvyXNrnTEbofzbTs2GLfFyKA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "@algolia/client-common": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.47.0.tgz", - "integrity": "sha512-Ja+zPoeSA2SDowPwCNRbm5Q2mzDvVV8oqxCQ4m6SNmbKmPlCfe30zPfrt9ho3kBHnsg37pGucwOedRIOIklCHw==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.49.2.tgz", + "integrity": "sha512-3UhYCcWX6fbtN8ABcxZlhaQEwXFh3CsFtARyyadQShHMPe3mJV9Wel4FpJTa+seugRkbezFz0tt6aPTZSYTBuA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0" + "@algolia/client-common": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.47.0.tgz", - "integrity": "sha512-N6nOvLbaR4Ge+oVm7T4W/ea1PqcSbsHR4O58FJ31XtZjFPtOyxmnhgCmGCzP9hsJI6+x0yxJjkW5BMK/XI8OvA==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.49.2.tgz", + "integrity": "sha512-G94VKSGbsr+WjsDDOBe5QDQ82QYgxvpxRGJfCHZBnYKYsy/jv9qGIDb93biza+LJWizQBUtDj7bZzp3QZyzhPQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0" + "@algolia/client-common": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.47.0.tgz", - "integrity": "sha512-z1oyLq5/UVkohVXNDEY70mJbT/sv/t6HYtCvCwNrOri6pxBJDomP9R83KOlwcat+xqBQEdJHjbrPh36f1avmZA==", + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.49.2.tgz", + "integrity": "sha512-UuihBGHafG/ENsrcTGAn5rsOffrCIRuHMOsD85fZGLEY92ate+BMTUqxz60dv5zerh8ZumN4bRm8eW2z9L11jA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.47.0" + "@algolia/client-common": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", @@ -244,29 +277,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", - "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", - "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", + "peer": true, "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -292,13 +326,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -401,9 +435,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz", - "integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.28.6", @@ -578,25 +612,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -800,14 +834,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.6.tgz", - "integrity": "sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.6" + "@babel/traverse": "^7.29.0" }, "engines": { "node": ">=6.9.0" @@ -979,9 +1013,9 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz", - "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", @@ -1181,15 +1215,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", - "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.5" + "@babel/traverse": "^7.29.0" }, "engines": { "node": ">=6.9.0" @@ -1215,13 +1249,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1485,9 +1519,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz", - "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -1531,13 +1565,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", - "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", @@ -1718,12 +1752,12 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.6.tgz", - "integrity": "sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.6", + "@babel/compat-data": "^7.29.0", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-plugin-utils": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", @@ -1737,7 +1771,7 @@ "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.6", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", "@babel/plugin-transform-async-to-generator": "^7.28.6", "@babel/plugin-transform-block-scoped-functions": "^7.27.1", "@babel/plugin-transform-block-scoping": "^7.28.6", @@ -1748,7 +1782,7 @@ "@babel/plugin-transform-destructuring": "^7.28.5", "@babel/plugin-transform-dotall-regex": "^7.28.6", "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-dynamic-import": "^7.27.1", "@babel/plugin-transform-explicit-resource-management": "^7.28.6", "@babel/plugin-transform-exponentiation-operator": "^7.28.6", @@ -1761,9 +1795,9 @@ "@babel/plugin-transform-member-expression-literals": "^7.27.1", "@babel/plugin-transform-modules-amd": "^7.27.1", "@babel/plugin-transform-modules-commonjs": "^7.28.6", - "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", "@babel/plugin-transform-new-target": "^7.27.1", "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", "@babel/plugin-transform-numeric-separator": "^7.28.6", @@ -1775,7 +1809,7 @@ "@babel/plugin-transform-private-methods": "^7.28.6", "@babel/plugin-transform-private-property-in-object": "^7.28.6", "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.6", + "@babel/plugin-transform-regenerator": "^7.29.0", "@babel/plugin-transform-regexp-modifiers": "^7.28.6", "@babel/plugin-transform-reserved-words": "^7.27.1", "@babel/plugin-transform-shorthand-properties": "^7.27.1", @@ -1788,10 +1822,10 @@ "@babel/plugin-transform-unicode-regex": "^7.27.1", "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "engines": { @@ -1801,6 +1835,19 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -1864,21 +1911,21 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.6.tgz", - "integrity": "sha512-kz2fAQ5UzjV7X7D3ySxmj3vRq89dTpqOZWv76Z6pNPztkwb/0Yj1Mtx1xFrYj6mbIHysxtBot8J4o0JLCblcFw==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.29.2.tgz", + "integrity": "sha512-Lc94FOD5+0aXhdb0Tdg3RUtqT6yWbI/BbFWvlaSJ3gAb9Ks+99nHRDKADVqC37er4eCB0fHyWT+y+K3QOvJKbw==", "license": "MIT", "dependencies": { - "core-js-pure": "^3.43.0" + "core-js-pure": "^3.48.0" }, "engines": { "node": ">=6.9.0" @@ -1899,17 +1946,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", - "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/generator": "^7.28.6", + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.6", + "@babel/parser": "^7.29.0", "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/types": "^7.29.0", "debug": "^4.3.1" }, "engines": { @@ -1917,9 +1964,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -2046,6 +2093,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -2068,6 +2116,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=18" } @@ -2177,6 +2226,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2598,6 +2648,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -3265,9 +3316,9 @@ } }, "node_modules/@docsearch/core": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/@docsearch/core/-/core-4.5.3.tgz", - "integrity": "sha512-x/P5+HVzv9ALtbuJIfpkF8Eyc5RE8YCsFcOgLrrtWa9Ui+53ggZA5seIAanCRORbS4+m982lu7rZmebSiuMIcw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/core/-/core-4.6.0.tgz", + "integrity": "sha512-IqG3oSd529jVRQ4dWZQKwZwQLVd//bWJTz2HiL0LkiHrI4U/vLrBasKB7lwQB/69nBAcCgs3TmudxTZSLH/ZQg==", "license": "MIT", "peerDependencies": { "@types/react": ">= 16.8.0 < 20.0.0", @@ -3287,19 +3338,20 @@ } }, "node_modules/@docsearch/css": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.5.3.tgz", - "integrity": "sha512-kUpHaxn0AgI3LQfyzTYkNUuaFY4uEz/Ym9/N/FvyDE+PzSgZsCyDH9jE49B6N6f1eLCm9Yp64J9wENd6vypdxA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.6.0.tgz", + "integrity": "sha512-YlcAimkXclvqta47g47efzCM5CFxDwv2ClkDfEs/fC/Ak0OxPH2b3czwa4o8O1TRBf+ujFF2RiUwszz2fPVNJQ==", "license": "MIT" }, "node_modules/@docsearch/react": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.5.3.tgz", - "integrity": "sha512-Hm3Lg/FD9HXV57WshhWOHOprbcObF5ptLzcjA5zdgJDzYOMwEN+AvY8heQ5YMTWyC6kW2d+Qk25AVlHnDWMSvA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.6.0.tgz", + "integrity": "sha512-j8H5B4ArGxBPBWvw3X0J0Rm/Pjv2JDa2rV5OE0DLTp5oiBCptIJ/YlNOhZxuzbO2nwge+o3Z52nJRi3hryK9cA==", "license": "MIT", "dependencies": { - "@docsearch/core": "4.5.3", - "@docsearch/css": "4.5.3" + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/core": "4.6.0", + "@docsearch/css": "4.6.0" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 20.0.0", @@ -3601,6 +3653,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", "license": "MIT", + "peer": true, "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", @@ -3829,6 +3882,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.9.2.tgz", "integrity": "sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA==", "license": "MIT", + "peer": true, "dependencies": { "@docusaurus/core": "3.9.2", "@docusaurus/logger": "3.9.2", @@ -3869,6 +3923,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.9.2.tgz", "integrity": "sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==", "license": "MIT", + "peer": true, "dependencies": { "@docusaurus/mdx-loader": "3.9.2", "@docusaurus/module-type-aliases": "3.9.2", @@ -4047,9 +4102,9 @@ } }, "node_modules/@easyops-cn/docusaurus-search-local": { - "version": "0.52.2", - "resolved": "https://registry.npmjs.org/@easyops-cn/docusaurus-search-local/-/docusaurus-search-local-0.52.2.tgz", - "integrity": "sha512-oEHkHe/OWHFcJxOhicS5UqohDOyPieREH+oNoImL/VcdrPzDxT2LB5Scov6WMOpOyDcSMJ6QCvjj63PEhhU8Nw==", + "version": "0.52.3", + "resolved": "https://registry.npmjs.org/@easyops-cn/docusaurus-search-local/-/docusaurus-search-local-0.52.3.tgz", + "integrity": "sha512-bkKHD+FoAY+sBvd9vcHudx8X5JQXkyGBcpstpJwOUTTpKwT0rOtUtnfmizpMu113LqdHxOxvlekYkGeTNGYYvw==", "license": "MIT", "dependencies": { "@docusaurus/plugin-content-docs": "^2 || ^3", @@ -4150,20 +4205,20 @@ } }, "node_modules/@emnapi/core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", - "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", + "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.1.0", + "@emnapi/wasi-threads": "1.2.0", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", + "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", "license": "MIT", "optional": true, "dependencies": { @@ -4171,9 +4226,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", + "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", "license": "MIT", "optional": true, "dependencies": { @@ -4296,9 +4351,9 @@ } }, "node_modules/@jsonjoy.com/buffers": { - "version": "17.65.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.65.0.tgz", - "integrity": "sha512-eBrIXd0/Ld3p9lpDDlMaMn6IEfWqtHMD+z61u0JrIiPzsV1r7m6xDZFRxJyvIFTEO+SWdYF9EiQbXZGd8BzPfA==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", "license": "Apache-2.0", "engines": { "node": ">=10.0" @@ -4328,13 +4383,13 @@ } }, "node_modules/@jsonjoy.com/fs-core": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.56.10.tgz", - "integrity": "sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.1.tgz", + "integrity": "sha512-YrEi/ZPmgc+GfdO0esBF04qv8boK9Dg9WpRQw/+vM8Qt3nnVIJWIa8HwZ/LXVZ0DB11XUROM8El/7yYTJX+WtA==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", "thingies": "^2.5.0" }, "engines": { @@ -4349,14 +4404,14 @@ } }, "node_modules/@jsonjoy.com/fs-fsa": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.56.10.tgz", - "integrity": "sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.1.tgz", + "integrity": "sha512-ooEPvSW/HQDivPDPZMibHGKZf/QS4WRir1czGZmXmp3MsQqLECZEpN0JobrD8iV9BzsuwdIv+PxtWX9WpPLsIA==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", "thingies": "^2.5.0" }, "engines": { @@ -4371,16 +4426,16 @@ } }, "node_modules/@jsonjoy.com/fs-node": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.56.10.tgz", - "integrity": "sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.1.tgz", + "integrity": "sha512-3YaKhP8gXEKN+2O49GLNfNb5l2gbnCFHyAaybbA2JkkbQP3dpdef7WcUaHAulg/c5Dg4VncHsA3NWAUSZMR5KQ==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", - "@jsonjoy.com/fs-print": "4.56.10", - "@jsonjoy.com/fs-snapshot": "4.56.10", + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-print": "4.57.1", + "@jsonjoy.com/fs-snapshot": "4.57.1", "glob-to-regex.js": "^1.0.0", "thingies": "^2.5.0" }, @@ -4396,9 +4451,9 @@ } }, "node_modules/@jsonjoy.com/fs-node-builtins": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.56.10.tgz", - "integrity": "sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.1.tgz", + "integrity": "sha512-XHkFKQ5GSH3uxm8c3ZYXVrexGdscpWKIcMWKFQpMpMJc8gA3AwOMBJXJlgpdJqmrhPyQXxaY9nbkNeYpacC0Og==", "license": "Apache-2.0", "engines": { "node": ">=10.0" @@ -4412,14 +4467,14 @@ } }, "node_modules/@jsonjoy.com/fs-node-to-fsa": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.56.10.tgz", - "integrity": "sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.1.tgz", + "integrity": "sha512-pqGHyWWzNck4jRfaGV39hkqpY5QjRUQ/nRbNT7FYbBa0xf4bDG+TE1Gt2KWZrSkrkZZDE3qZUjYMbjwSliX6pg==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-fsa": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10" + "@jsonjoy.com/fs-fsa": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1" }, "engines": { "node": ">=10.0" @@ -4433,12 +4488,12 @@ } }, "node_modules/@jsonjoy.com/fs-node-utils": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.56.10.tgz", - "integrity": "sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.1.tgz", + "integrity": "sha512-vp+7ZzIB8v43G+GLXTS4oDUSQmhAsRz532QmmWBbdYA20s465JvwhkSFvX9cVTqRRAQg+vZ7zWDaIEh0lFe2gw==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.56.10" + "@jsonjoy.com/fs-node-builtins": "4.57.1" }, "engines": { "node": ">=10.0" @@ -4452,12 +4507,12 @@ } }, "node_modules/@jsonjoy.com/fs-print": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.56.10.tgz", - "integrity": "sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.1.tgz", + "integrity": "sha512-Ynct7ZJmfk6qoXDOKfpovNA36ITUx8rChLmRQtW08J73VOiuNsU8PB6d/Xs7fxJC2ohWR3a5AqyjmLojfrw5yw==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-node-utils": "4.56.10", + "@jsonjoy.com/fs-node-utils": "4.57.1", "tree-dump": "^1.1.0" }, "engines": { @@ -4472,13 +4527,13 @@ } }, "node_modules/@jsonjoy.com/fs-snapshot": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.56.10.tgz", - "integrity": "sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.1.tgz", + "integrity": "sha512-/oG8xBNFMbDXTq9J7vepSA1kerS5vpgd3p5QZSPd+nX59uwodGJftI51gDYyHRpP57P3WCQf7LHtBYPqwUg2Bg==", "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/buffers": "^17.65.0", - "@jsonjoy.com/fs-node-utils": "4.56.10", + "@jsonjoy.com/fs-node-utils": "4.57.1", "@jsonjoy.com/json-pack": "^17.65.0", "@jsonjoy.com/util": "^17.65.0" }, @@ -4494,9 +4549,9 @@ } }, "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { - "version": "17.65.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.65.0.tgz", - "integrity": "sha512-Xrh7Fm/M0QAYpekSgmskdZYnFdSGnsxJ/tHaolA4bNwWdG9i65S8m83Meh7FOxyJyQAdo4d4J97NOomBLEfkDQ==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", "license": "Apache-2.0", "engines": { "node": ">=10.0" @@ -4510,9 +4565,9 @@ } }, "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { - "version": "17.65.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.65.0.tgz", - "integrity": "sha512-7MXcRYe7n3BG+fo3jicvjB0+6ypl2Y/bQp79Sp7KeSiiCgLqw4Oled6chVv07/xLVTdo3qa1CD0VCCnPaw+RGA==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", "license": "Apache-2.0", "engines": { "node": ">=10.0" @@ -4526,16 +4581,16 @@ } }, "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { - "version": "17.65.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.65.0.tgz", - "integrity": "sha512-e0SG/6qUCnVhHa0rjDJHgnXnbsacooHVqQHxspjvlYQSkHm+66wkHw6Gql+3u/WxI/b1VsOdUi0M+fOtkgKGdQ==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/base64": "17.65.0", - "@jsonjoy.com/buffers": "17.65.0", - "@jsonjoy.com/codegen": "17.65.0", - "@jsonjoy.com/json-pointer": "17.65.0", - "@jsonjoy.com/util": "17.65.0", + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", "hyperdyperid": "^1.2.0", "thingies": "^2.5.0", "tree-dump": "^1.1.0" @@ -4552,12 +4607,12 @@ } }, "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { - "version": "17.65.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.65.0.tgz", - "integrity": "sha512-uhTe+XhlIZpWOxgPcnO+iSCDgKKBpwkDVTyYiXX9VayGV8HSFVJM67M6pUE71zdnXF1W0Da21AvnhlmdwYPpow==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/util": "17.65.0" + "@jsonjoy.com/util": "17.67.0" }, "engines": { "node": ">=10.0" @@ -4571,13 +4626,13 @@ } }, "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { - "version": "17.65.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.65.0.tgz", - "integrity": "sha512-cWiEHZccQORf96q2y6zU3wDeIVPeidmGqd9cNKJRYoVHTV0S1eHPy5JTbHpMnGfDvtvujQwQozOqgO9ABu6h0w==", + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/buffers": "17.65.0", - "@jsonjoy.com/codegen": "17.65.0" + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" }, "engines": { "node": ">=10.0" @@ -4736,6 +4791,7 @@ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", "license": "MIT", + "peer": true, "dependencies": { "@types/mdx": "^2.0.0" }, @@ -5061,92 +5117,92 @@ } }, "node_modules/@peculiar/asn1-cms": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.0.tgz", - "integrity": "sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", + "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", - "@peculiar/asn1-x509-attr": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-csr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.0.tgz", - "integrity": "sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", + "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-ecc": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.0.tgz", - "integrity": "sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", + "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pfx": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.0.tgz", - "integrity": "sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", + "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.6.0", - "@peculiar/asn1-pkcs8": "^2.6.0", - "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-rsa": "^2.6.1", "@peculiar/asn1-schema": "^2.6.0", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.0.tgz", - "integrity": "sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", + "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.0.tgz", - "integrity": "sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", + "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.6.0", - "@peculiar/asn1-pfx": "^2.6.0", - "@peculiar/asn1-pkcs8": "^2.6.0", + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pfx": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", - "@peculiar/asn1-x509-attr": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-rsa": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.0.tgz", - "integrity": "sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", + "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } @@ -5163,9 +5219,9 @@ } }, "node_modules/@peculiar/asn1-x509": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.0.tgz", - "integrity": "sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", + "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.6.0", @@ -5175,13 +5231,13 @@ } }, "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.0.tgz", - "integrity": "sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", + "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", "license": "MIT", "dependencies": { "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", "asn1js": "^3.0.6", "tslib": "^2.8.1" } @@ -5283,9 +5339,9 @@ "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", "license": "MIT" }, "node_modules/@sindresorhus/is": { @@ -5470,6 +5526,7 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -5629,9 +5686,9 @@ } }, "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", "license": "MIT", "dependencies": { "@types/ms": "*" @@ -5802,24 +5859,24 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.10.tgz", - "integrity": "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", + "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "license": "MIT", "dependencies": { - "undici-types": "~7.16.0" + "undici-types": "~7.18.0" } }, "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "version": "1.26.6", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.6.tgz", + "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==", "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", "license": "MIT" }, "node_modules/@types/range-parser": { @@ -5829,10 +5886,11 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.2.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.10.tgz", - "integrity": "sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -6170,10 +6228,11 @@ } }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6203,9 +6262,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", "license": "MIT", "dependencies": { "acorn": "^8.11.0" @@ -6241,6 +6300,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -6282,34 +6342,35 @@ } }, "node_modules/algoliasearch": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.47.0.tgz", - "integrity": "sha512-AGtz2U7zOV4DlsuYV84tLp2tBbA7RPtLA44jbVH4TTpDcc1dIWmULjHSsunlhscbzDydnjuFlNhflR3nV4VJaQ==", - "license": "MIT", - "dependencies": { - "@algolia/abtesting": "1.13.0", - "@algolia/client-abtesting": "5.47.0", - "@algolia/client-analytics": "5.47.0", - "@algolia/client-common": "5.47.0", - "@algolia/client-insights": "5.47.0", - "@algolia/client-personalization": "5.47.0", - "@algolia/client-query-suggestions": "5.47.0", - "@algolia/client-search": "5.47.0", - "@algolia/ingestion": "1.47.0", - "@algolia/monitoring": "1.47.0", - "@algolia/recommend": "5.47.0", - "@algolia/requester-browser-xhr": "5.47.0", - "@algolia/requester-fetch": "5.47.0", - "@algolia/requester-node-http": "5.47.0" + "version": "5.49.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.49.2.tgz", + "integrity": "sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng==", + "license": "MIT", + "peer": true, + "dependencies": { + "@algolia/abtesting": "1.15.2", + "@algolia/client-abtesting": "5.49.2", + "@algolia/client-analytics": "5.49.2", + "@algolia/client-common": "5.49.2", + "@algolia/client-insights": "5.49.2", + "@algolia/client-personalization": "5.49.2", + "@algolia/client-query-suggestions": "5.49.2", + "@algolia/client-search": "5.49.2", + "@algolia/ingestion": "1.49.2", + "@algolia/monitoring": "1.49.2", + "@algolia/recommend": "5.49.2", + "@algolia/requester-browser-xhr": "5.49.2", + "@algolia/requester-fetch": "5.49.2", + "@algolia/requester-node-http": "5.49.2" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.27.0.tgz", - "integrity": "sha512-eNYchRerbsvk2doHOMfdS1/B6Tm70oGtu8mzQlrNzbCeQ8p1MjCW8t/BL6iZ5PD+cL5NNMgTMyMnmiXZ1sgmNw==", + "version": "3.28.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.28.0.tgz", + "integrity": "sha512-GBN0xsxGggaCPElZq24QzMdfphrjIiV2xA+hRXE4/UMpN3nsF2WrM8q+x80OGvGpJWtB7F+4Hq5eSfWwuejXrg==", "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" @@ -6474,9 +6535,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.23", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.23.tgz", - "integrity": "sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==", + "version": "10.4.27", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", "funding": [ { "type": "opencollective", @@ -6494,7 +6555,7 @@ "license": "MIT", "dependencies": { "browserslist": "^4.28.1", - "caniuse-lite": "^1.0.30001760", + "caniuse-lite": "^1.0.30001774", "fraction.js": "^5.3.4", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" @@ -6536,13 +6597,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz", - "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", "license": "MIT", "dependencies": { "@babel/compat-data": "^7.28.6", - "@babel/helper-define-polyfill-provider": "^0.6.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { @@ -6572,12 +6633,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz", - "integrity": "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.6" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -6600,12 +6661,15 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.18", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.18.tgz", - "integrity": "sha512-e23vBV1ZLfjb9apvfPk4rHVu2ry6RIr2Wfs+O324okSidrX7pTAnEJPCh/O5BtRlr7QtZI7ktOP3vsqr7Z5XoA==", + "version": "2.10.10", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.10.tgz", + "integrity": "sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==", "license": "Apache-2.0", "bin": { - "baseline-browser-mapping": "dist/cli.js" + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/batch": { @@ -6762,6 +6826,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -6933,9 +6998,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001766", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", - "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", + "version": "1.0.30001780", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001780.tgz", + "integrity": "sha512-llngX0E7nQci5BPJDqoZSbuZ5Bcs9F5db7EtgfwBerX9XGtkkiO4NwfDDIRzHTTwcYC8vC7bmeUEPGrKlR/TkQ==", "funding": [ { "type": "opencollective", @@ -7522,9 +7587,9 @@ } }, "node_modules/core-js": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.48.0.tgz", - "integrity": "sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -7533,9 +7598,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz", - "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "license": "MIT", "dependencies": { "browserslist": "^4.28.1" @@ -7546,9 +7611,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.48.0.tgz", - "integrity": "sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -7733,6 +7798,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -7884,9 +7950,9 @@ } }, "node_modules/cssdb": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.7.1.tgz", - "integrity": "sha512-+F6LKx48RrdGOtE4DT5jz7Uo+VeyKXpK797FAevIkzjV8bMHz6xTO5F7gNDcRCHmPgD5jj2g6QCsY9zmVrh38A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.8.0.tgz", + "integrity": "sha512-QbLeyz2Bgso1iRlh7IpWk6OKa3lLNGXsujVjDMPl9rOZpxKeiG69icLpbLCFxeURwmcdIfZqQyhlooKJYM4f8Q==", "funding": [ { "type": "opencollective", @@ -8129,9 +8195,9 @@ } }, "node_modules/default-browser": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.4.0.tgz", - "integrity": "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", "license": "MIT", "dependencies": { "bundle-name": "^4.1.0", @@ -8440,9 +8506,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.279", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.279.tgz", - "integrity": "sha512-0bblUU5UNdOt5G7XqGiJtpZMONma6WAfq9vsFmtn9x1+joAObr6x1chfqyxFSDCAFwFhCQDrqeAr6MYdpwJ9Hg==", + "version": "1.5.321", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.321.tgz", + "integrity": "sha512-L2C7Q279W2D/J4PLZLk7sebOILDSWos7bMsMNN06rK482umHUrh/3lM8G7IlHFOYip2oAg5nha1rCMxr/rs6ZQ==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -8511,13 +8577,13 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.4", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", - "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.0" }, "engines": { "node": ">=10.13.0" @@ -9135,6 +9201,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9334,9 +9401,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", - "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -10514,9 +10581,9 @@ } }, "node_modules/is-network-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", - "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.1.tgz", + "integrity": "sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==", "license": "MIT", "engines": { "node": ">=16" @@ -10850,9 +10917,9 @@ } }, "node_modules/launch-editor": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", - "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", "license": "MIT", "dependencies": { "picocolors": "^1.1.1", @@ -11103,9 +11170,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", @@ -11477,19 +11544,19 @@ "license": "MIT" }, "node_modules/memfs": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.56.10.tgz", - "integrity": "sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w==", + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.1.tgz", + "integrity": "sha512-WvzrWPwMQT+PtbX2Et64R4qXKK0fj/8pO85MrUCzymX3twwCiJCdvntW3HdhG1teLJcHDDLIKx5+c3HckWYZtQ==", "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.56.10", - "@jsonjoy.com/fs-fsa": "4.56.10", - "@jsonjoy.com/fs-node": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-to-fsa": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", - "@jsonjoy.com/fs-print": "4.56.10", - "@jsonjoy.com/fs-snapshot": "4.56.10", + "@jsonjoy.com/fs-core": "4.57.1", + "@jsonjoy.com/fs-fsa": "4.57.1", + "@jsonjoy.com/fs-node": "4.57.1", + "@jsonjoy.com/fs-node-builtins": "4.57.1", + "@jsonjoy.com/fs-node-to-fsa": "4.57.1", + "@jsonjoy.com/fs-node-utils": "4.57.1", + "@jsonjoy.com/fs-print": "4.57.1", + "@jsonjoy.com/fs-snapshot": "4.57.1", "@jsonjoy.com/json-pack": "^1.11.0", "@jsonjoy.com/util": "^1.9.0", "glob-to-regex.js": "^1.0.1", @@ -13390,9 +13457,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz", - "integrity": "sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.1.tgz", + "integrity": "sha512-k7G3Y5QOegl380tXmZ68foBRRjE9Ljavx835ObdvmZjQ639izvZD8CS7BkWw1qKPPzHsGL/JDhl0uyU1zc2rJw==", "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", @@ -13523,9 +13590,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "version": "2.0.36", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz", + "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==", "license": "MIT" }, "node_modules/normalize-path": { @@ -13604,6 +13671,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14134,9 +14202,9 @@ } }, "node_modules/pkijs": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.3.3.tgz", - "integrity": "sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", "license": "BSD-3-Clause", "dependencies": { "@noble/hashes": "1.4.0", @@ -14151,9 +14219,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", + "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", "funding": [ { "type": "opencollective", @@ -14169,6 +14237,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -15072,6 +15141,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -15811,15 +15881,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", @@ -15884,24 +15945,30 @@ } }, "node_modules/react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { - "scheduler": "^0.27.0" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^19.2.4" + "react": "^18.3.1" } }, "node_modules/react-fast-compare": { @@ -15952,6 +16019,7 @@ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "license": "MIT", + "peer": true, "dependencies": { "@types/react": "*" }, @@ -15980,6 +16048,7 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -16671,19 +16740,22 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.5.0.tgz", - "integrity": "sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "license": "BlueOak-1.0.0", "engines": { "node": ">=11.0.0" } }, "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", - "license": "MIT" + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } }, "node_modules/schema-dts": { "version": "1.1.5", @@ -16710,6 +16782,13 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", + "peer": true + }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -16743,9 +16822,9 @@ } }, "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -16818,12 +16897,12 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz", + "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==", "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">=20.0.0" } }, "node_modules/serve-handler": { @@ -17127,9 +17206,9 @@ "license": "MIT" }, "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.3.tgz", + "integrity": "sha512-tAjEd+wt/YwnEbfNB2ht51ybBJxbEWwe5ki/Z//Wh0rpBFTCUSj46GnxUKEWzhfuJTsee8x3lybHxFgUMig2hw==", "license": "MIT", "dependencies": { "@types/node": "^17.0.5", @@ -17351,12 +17430,12 @@ } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -17547,9 +17626,9 @@ } }, "node_modules/terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -17565,15 +17644,14 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -17634,9 +17712,9 @@ "license": "MIT" }, "node_modules/thingies": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", - "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz", + "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", "license": "MIT", "engines": { "node": ">=10.18" @@ -17746,7 +17824,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/tsyringe": { "version": "4.10.0", @@ -17822,18 +17901,18 @@ } }, "node_modules/undici": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.1.tgz", - "integrity": "sha512-5xoBibbmnjlcR3jdqtY2Lnx7WbrD/tHlT01TmvqZUFVc9Q1w4+j5hbnapTqbcXITMH1ovjq/W7BkqBilHiVAaA==", + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.24.5.tgz", + "integrity": "sha512-3IWdCpjgxp15CbJnsi/Y9TCDE7HWVN19j1hmzVhoAkY/+CJx449tVxT5wZc1Gwg8J+P0LWvzlBzxYRnHJ+1i7Q==", "license": "MIT", "engines": { "node": ">=20.18.1" } }, "node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -18163,6 +18242,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -18370,10 +18450,11 @@ } }, "node_modules/webpack": { - "version": "5.104.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", - "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "version": "5.105.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.4.tgz", + "integrity": "sha512-jTywjboN9aHxFlToqb0K0Zs9SbBoW4zRUlGzI2tYNxVYcEi/IPpn+Xi4ye5jTLvX2YeLuic/IvxNot+Q1jMoOw==", "license": "MIT", + "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -18381,11 +18462,11 @@ "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.4", + "enhanced-resolve": "^5.20.0", "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -18397,9 +18478,9 @@ "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.16", - "watchpack": "^2.4.4", - "webpack-sources": "^3.3.3" + "terser-webpack-plugin": "^5.3.17", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.4" }, "bin": { "webpack": "bin/webpack.js" @@ -18603,9 +18684,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -18638,9 +18719,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", + "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", "license": "MIT", "engines": { "node": ">=10.13.0" @@ -18874,12 +18955,12 @@ } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -18937,9 +19018,9 @@ } }, "node_modules/wsl-utils/node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", "license": "MIT", "dependencies": { "is-inside-container": "^1.0.0" diff --git a/website/package.json b/website/package.json index bd880d28..ab37c474 100644 --- a/website/package.json +++ b/website/package.json @@ -15,17 +15,20 @@ "sync-assets": "node ./scripts/sync-assets.js" }, "dependencies": { - "@docusaurus/core": "3.9.2", + "@docusaurus/core": "^3.9.2", "@docusaurus/plugin-client-redirects": "^3.9.2", - "@docusaurus/preset-classic": "3.9.2", + "@docusaurus/preset-classic": "^3.9.2", "@easyops-cn/docusaurus-search-local": "^0.52.2", "@mdx-js/react": "^3.0.0", "@saucelabs/theme-github-codeblock": "^0.3.0", "clsx": "^2.0.0", "docusaurus-plugin-image-zoom": "^3.0.1", "prism-react-renderer": "^2.3.0", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "overrides": { + "serialize-javascript": "^7.0.3" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.9.2", From 19b036221200f270930fe214923800a5e93b55ea Mon Sep 17 00:00:00 2001 From: Matthias Fleschuetz <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:55:53 +0100 Subject: [PATCH 02/28] docu review --- docs/about/concepts.md | 57 +++++++------ docs/about/intro.md | 31 +++---- docs/about/security.md | 43 +++++----- docs/use/installation.md | 25 +++--- docs/use/intro-use.md | 2 +- docs/use/plan-export.md | 74 +++++++++++++++++ docs/use/providers.md | 46 ++++++++++- docs/use/quickstart.md | 33 +++----- .../use/walkthrough/01-workflow-definition.md | 2 +- docs/use/walkthrough/02-request-creation.md | 10 ++- docs/use/walkthrough/03-plan-creation.md | 4 +- docs/use/walkthrough/04-invoke-results.md | 10 +-- .../05-providers-authentication.md | 15 ++-- docs/use/workflows.md | 4 +- docs/use/workflows/context-resolver.md | 81 ++++++++++++++++--- 15 files changed, 309 insertions(+), 128 deletions(-) diff --git a/docs/about/concepts.md b/docs/about/concepts.md index 801ae117..375d6877 100644 --- a/docs/about/concepts.md +++ b/docs/about/concepts.md @@ -3,16 +3,21 @@ title: IdLE Concepts sidebar_label: Concepts --- -IdLE is a generic, headless, configuration-driven engine for identity lifecycle automation (Joiner / Mover / Leaver). It intentionally separates intent from implementation: workflows (data-only PSD1 files) declare what should happen, steps implement provider-agnostic, idempotent convergence logic, and providers adapt to external systems and manage authentication. +IdLE is a **generic, headless, configuration-driven engine for identity lifecycle automation** (Joiner / Mover / Leaver). It intentionally **separates intent from implementation**: -The engine first builds a deterministic, auditable execution plan from a LifecycleRequest and a workflow (Plan → Execute). Planning validates conditions, inputs, and required provider capabilities; execution runs only the produced plan to ensure repeatability, safe approvals, and reliable auditing. This design prioritizes portability, testability (mockable providers), and minimal runtime assumptions by keeping the core headless and side-effect free. +- **Workflows** (data-only PSD1 files) declare what should happen, +- **Steps** implement provider-agnostic, idempotent convergence logic, and +- **Providers** adapt to external systems and manage authentication. + +The engine first builds a **deterministic, auditable execution plan** from a LifecycleRequest and a workflow (Plan → Execute). **Planning validates** conditions, inputs, and required provider capabilities; **Execution runs** only the produced plan to ensure repeatability, safe approvals, and reliable auditing. +This design **prioritizes portability, testability (mockable providers), and minimal runtime assumptions** by keeping the core headless and side-effect free. This page explains the **big picture**: responsibilities, trust boundaries, and how the core artifacts fit together. ## Start here - If you want to **run IdLE now**: start with [Quick Start](../use/quickstart.md). -- If you want the full end-to-end flow: follow the **Walkthrough**: +- If you want the **full end-to-end flow**: follow the **Walkthrough**: 1. [Workflow definition](../use/walkthrough/01-workflow-definition.md) 2. [Request creation](../use/walkthrough/02-request-creation.md) 3. [Plan build](../use/walkthrough/03-plan-creation.md) @@ -21,12 +26,12 @@ This page explains the **big picture**: responsibilities, trust boundaries, and ## Goals -- Generic, configurable lifecycle orchestration (Joiner / Mover / Leaver) -- Portable, modular, testable -- Headless core (works in CLI, service, CI) -- Plan-first execution with structured events +- **Generic, configurable lifecycle orchestration** (Joiner / Mover / Leaver) +- **Portable, modular, testable** +- **Headless core** (works in CLI, service, CI) +- **Plan-first execution** with structured events -## Non-goals +### Non-goals - No UI framework or service host - No interactive prompts @@ -41,7 +46,7 @@ This page explains the **big picture**: responsibilities, trust boundaries, and ### Separation of Responsibility -Clear separation of responsibility is the essential foundation for maintainability: +**Clear separation of responsibility** is the essential foundation for maintainability: - **Engine** - Orchestrates workflow execution @@ -67,7 +72,7 @@ If you want the practical version of this (how to supply providers/auth in a run ## Request -A **request** represents your business intent (Joiner/Mover/Leaver) plus the input data required to build a plan. +A **request represents your business intent** (Joiner/Mover/Leaver) plus the input data required to build a plan. Typical request content: @@ -81,42 +86,43 @@ Hands-on: [Walkthrough 2: Request creation](../use/walkthrough/02-request-creati ## Workflow -A **workflow** is a data-only definition (`.psd1`) that describes **what** should happen, step by step. +A **workflow is a data-only definition** (`.psd1`) that describes **what** should happen, step by step. -### Workflows and Steps +### Workflow Steps -A workflow consists of ordered steps. Each step references a **StepType** by name and provides configuration under `With`. +A **workflow consists of ordered steps**. Each step references a **StepType** by name and provides configuration under `With`. -Hands-on: [Walkthrough 1: Workflow definition](../use/walkthrough/01-workflow-definition.md). -Specification: [Use → Workflows](../use/workflows.md) and the [Reference section](../reference/steps.md). +- Hands-on: [Walkthrough 1: Workflow definition](../use/walkthrough/01-workflow-definition.md). +- Specification: [Use → Workflows](../use/workflows.md) and +- [Reference section](../reference/steps.md). ### Providers -Workflows may reference providers by alias (for example: `With.Provider = 'Identity'`), but the actual provider instances are supplied by the host. +**Workflows reference providers** by alias (for example: `With.Provider = 'Identity'`), but the actual provider instances are supplied by the host. Providers implement step capabilities in specificly for the endpoint system. Hands-on: [Walkthrough 5: Providers and authentication](../use/walkthrough/05-providers-authentication.md). ### Declarative conditions -Workflows can include declarative conditions (data-only) to decide whether steps should run. +**Workflows can include declarative conditions** (data-only) to decide whether steps should run. For details, use the Reference workflow documentation. --- ## Plan -A **plan** is the validated, resolved execution contract produced from a workflow and a request. +A **plan is the validated, resolved execution contract** produced from a workflow and a request. Hands-on: [Walkthrough 3: Plan build](../use/walkthrough/03-plan-creation.md). ### Provider Capabilities (Planning-time Validation) -IdLE can validate required capabilities at plan-build time (fail-fast), if providers are supplied. +**IdLE validates required capabilities** at plan-build time (fail-fast) agains supplied providers. This prevents discovering missing requirements only at execution time. ### Plan export -Plans can be exported for review, approval, CI artifacts, and audit trails. +**Plans can be exported** as a JSON file for review, approval, CI artifacts, and audit trails. Hands-on: [Use → Plan Export](../use/plan-export.md). @@ -124,18 +130,11 @@ Hands-on: [Use → Plan Export](../use/plan-export.md). ## Execute -Executing a plan runs the steps in order and produces a structured result. +Executing a plan **runs the steps in order as planned** and produces a structured result. Hands-on: [Walkthrough 4: Invoke and results](../use/walkthrough/04-invoke-results.md). ### Eventing -IdLE emits structured events during execution. +**IdLE emits structured events** during execution. Your host can log them, forward them, or store them for audit and diagnostics. - ---- - -## Next - -- Run the minimal end-to-end example: [Quick Start](../use/quickstart.md) -- Continue with deep details: [Reference](../reference/intro-reference.md) diff --git a/docs/about/intro.md b/docs/about/intro.md index 410db182..369f7d90 100644 --- a/docs/about/intro.md +++ b/docs/about/intro.md @@ -9,34 +9,35 @@ sidebar_label: Introduction ## Introduction -IdLE (Identity Lifecycle Engine) is a **generic, configurable orchestration framework** for identity lifecycle processes +IdLE (Identity Lifecycle Engine) is a **generic, configurable orchestration framework for identity lifecycle processes** (Joiner / Mover / Leaver and similar cases), built for **PowerShell 7+**. --- ## Why IdLE exists -JML (joiner/mover/leavers) processes are +**JML (joiner/mover/leavers) processes** are -- error prone, especially if performed manually -- time consuming and therefore -- quite annoying for operators +- **error prone**, especially if performed manually +- **time consuming** and therefore +- quite **annoying for operators** -Self-made identity lifecycle automation often turns into long scripts that are: +**Self-made identity lifecycle automation** often turns into long scripts that are: -- tightly coupled to one environment -- hard to test -- hard to change safely +- **tightly coupled to one environment** +- **hard to test** +- **hard to change** safely +- **hard to maintain** -Identity Management Systems (IdMS) on the other side are either complex or expensive (or both of it) and then often do not care about supplementary systems that also need to be covered within the workflows. +**Identity Management Systems (IdMS)** on the other side are **either complex or expensive** (or both of it) and then often do not care about supplementary systems that also need to be covered within the workflows. --- ## Start using IdLE -- If you want to run IdLE now: start with [Quick Start](../use/quickstart). -- If you want a guided path: follow the [Walkthrough](../use/walkthrough/01-workflow-definition). -- If you want the architecture and responsibility model: read [Concepts](./concepts). +- If you want to **run IdLE now**: start with [Quick Start](../use/quickstart). +- If you want a **guided path**: follow the [Walkthrough](../use/walkthrough/01-workflow-definition). +- If you want the **architecture and responsibility model**: read [Concepts](./concepts). --- @@ -68,4 +69,6 @@ Workflows and requests remain data-only. - [Installation](../use/installation.md) - [QuickStart](../use/quickstart.md) - [Walkthrough - Step 1: Workflow Definition](../use/walkthrough/01-workflow-definition.md) -- [Reference](../reference/intro-reference.md) +- More details on + - [Concepts](./concepts) + - [Security](./security.md) diff --git a/docs/about/security.md b/docs/about/security.md index 478ba42a..50538bef 100644 --- a/docs/about/security.md +++ b/docs/about/security.md @@ -3,7 +3,7 @@ title: Security and Trust Boundaries sidebar_label: Security --- -IdLE is designed to execute **data-driven** identity lifecycle workflows in a deterministic way. +IdLE is designed to **execute data-driven identity lifecycle workflows** in a deterministic way. Because IdLE is an orchestration engine, it must be explicit about **what is trusted** and **what is untrusted**. @@ -13,7 +13,7 @@ IdLE enforces a strict trust boundary between **untrusted data inputs** and **tr ### Untrusted inputs (data-only) -These inputs may come from users, CI pipelines, or external systems and **must be treated as untrusted**: +These inputs may come **from users, CI pipelines, or external systems** and **must be treated as untrusted**: - Workflow definitions (PSD1) - Lifecycle requests (input objects) @@ -21,45 +21,50 @@ These inputs may come from users, CI pipelines, or external systems and **must b - Provider configuration maps (e.g., `Providers` passed into plan execution) - Event payloads (`Event.Data`) emitted by steps/providers -**Rule:** Untrusted inputs must be *data-only*. They must not contain ScriptBlocks or other executable objects. +:::info +**Rule:** Untrusted inputs **must be *data-only***. They must not contain ScriptBlocks or other executable objects. +::: -IdLE enforces this by: +**IdLE enforces** this by: -- Rejecting ScriptBlocks when importing workflow definitions -- Validating inputs at runtime using the public `Assert-IdleNoScriptBlock` function (provided by `IdLE.Core`) -- Recursively scanning all hashtables, arrays, and PSCustomObjects for ScriptBlocks +- **Rejecting ScriptBlocks** when importing workflow definitions +- **Validating inputs** at runtime +- **Recursively scanning** all hashtables, arrays, and PSCustomObjects for ScriptBlocks **Implementation:** -- The `Assert-IdleNoScriptBlock` function is the single, authoritative validator for this boundary +The public `Assert-IdleNoScriptBlock` function is the single, authoritative validator for this boundary + - It performs deep recursive validation with no type exemptions - All workflow configuration, lifecycle requests, step parameters, and provider maps are validated - Validation failures include the exact path to the offending ScriptBlock for debugging ### Trusted extension points (code) -These inputs are provided by the host and are **privileged** because they determine what code is executed: +These inputs are **provided by the host** and are **privileged** because they determine what code is executed: -- Step registry (maps `Step.Type` to a handler function name) -- Provider modules / provider objects (system-specific adapters) -- External event sinks (streaming events) +- **Step registry** (maps `Step.Type` to a handler function name) +- **Provider modules** / provider objects (system-specific adapters) +- **External event sinks** (streaming events) - **AuthSessionBroker** (host-provided authentication orchestration) +:::info **Rule:** Only trusted code should populate these extension points. +::: These extension points may contain ScriptMethods (e.g., the `AcquireAuthSession` method on AuthSessionBroker objects) but should not contain ScriptBlock *properties* that could be confused with data. #### AuthSessionBroker Trust Model - The broker is a **trusted extension point** provided by the host -- It orchestrates authentication without embedding secrets in workflows +- It **orchestrates authentication** without embedding secrets in workflows - Broker objects may contain ScriptMethods (e.g., `AcquireAuthSession`) as part of their interface - Broker objects must **not** contain ScriptBlock properties; all logic should be in methods or direct function calls -- Authentication options passed to `AcquireAuthSession` are validated as data-only (no ScriptBlocks) +- **Authentication options** passed to `AcquireAuthSession` are validated as **data-only** (no ScriptBlocks) ## Secure defaults -IdLE applies secure defaults to reduce accidental code execution: +IdLE applies **secure defaults** to reduce accidental code execution: - Workflow configuration is loaded as data and ScriptBlocks are rejected. - Step registry handlers must be function names (strings); ScriptBlock handlers are rejected. @@ -91,7 +96,7 @@ Redaction happens for: ### Where redaction is applied -Redaction is intentionally centralized at output boundaries to keep the execution model unchanged and to avoid altering step/provider behavior while making outputs safe-by-default. +**Redaction is intentionally centralized** at output boundaries to keep the execution model unchanged and to avoid altering step/provider behavior while making outputs safe-by-default. Redaction is applied **before** data is: @@ -107,7 +112,7 @@ Redaction is applied **before** data is: ## Guidance for hosts -- Keep workflow files in a protected location and review them like code (even though they are data-only). -- Load step and provider modules explicitly before execution. -- Treat the step registry as privileged configuration and do not let workflow authors change it. +- **Keep workflow files in a protected location** and review them like code (even though they are data-only). +- **Load step and provider modules explicitly** before execution. +- Treat the **step registry as privileged configuration** and do not let workflow authors change it. - If you stream events, implement a small sink object with a `WriteEvent(event)` method and keep it side-effect free. diff --git a/docs/use/installation.md b/docs/use/installation.md index 928dffe9..f59d0a73 100644 --- a/docs/use/installation.md +++ b/docs/use/installation.md @@ -35,6 +35,7 @@ Get-InstalledModule IdLE, IdLE.Core, IdLE.Steps.Common -ErrorAction SilentlyCont Install-Module -Name IdLE -Scope CurrentUser -Force Import-Module -Name IdLE ``` + ::: --- @@ -42,6 +43,7 @@ Import-Module -Name IdLE ## Install optional modules Providers and additional step modules are published as separate modules and can be installed independently. +See the [reference](../reference/intro-reference.md) for further details on [Steps](../reference/steps.md) and [Providers](../reference/providers.md). ```powershell # Provider modules (examples) @@ -58,18 +60,17 @@ Install-Module -Name IdLE.Provider.Mock -Scope CurrentUser Import only what you need: -```powershell -Import-Module -Name IdLE.Provider.Mock -Import-Module -Name IdLE.Provider.AD -``` - :::tip If a workflow references a StepType from an optional steps module, that steps module must be installed and imported in the host session. ::: --- -## Install from repository source (contributors) +## Install from repository source + +:::info +This installation method is primarily for fetching full example files or testing and contributors. +::: This path is intended for development and contribution scenarios. @@ -77,11 +78,14 @@ This path is intended for development and contribution scenarios. git clone https://github.com/blindzero/IdentityLifecycleEngine cd IdentityLifecycleEngine -# Import meta module (bootstraps module discovery for repo layout) +# Import meta module Import-Module ./src/IdLE/IdLE.psd1 -Force ``` -After importing from source, you can import additional modules by name: +:::info +The meta module bootstraps module discovery repo layout. Be aware of using this in parallel to IdLE installed as a module. \ +After importing from source, you can import additional modules by name. +::: ```powershell Import-Module IdLE.Provider.Mock -Force @@ -93,8 +97,11 @@ Import-Module IdLE.Steps.Mailbox -Force ## Verify installation ```powershell -Get-Module IdLE -ListAvailable | Select-Object Name, Version, Path +Get-Module IdLE* -ListAvailable | Select-Object Name, Version, Path +# Public facing main user Commands Get-Command -Module IdLE | Sort-Object Name +# Public interface functions from modules +Get-Command -Module IdLE.* | Sort-Object Name ``` --- diff --git a/docs/use/intro-use.md b/docs/use/intro-use.md index f2497f8c..67e5a28b 100644 --- a/docs/use/intro-use.md +++ b/docs/use/intro-use.md @@ -42,5 +42,5 @@ Reference pages are the single source of truth for schemas and cmdlet details. ## When to use other sections - If you want the **big picture** (responsibilities, trust boundaries, architecture): see [Concepts](../about/concepts.md) -- If you want to **extend IdLE** (write steps, providers, host integrations): see [Extend](../extend/intro-extend.md) - If you need **specification-level details**: see [Reference](../reference/intro-reference.md) +- If you want to **extend IdLE** (write steps, providers, host integrations): see [Extend](../extend/intro-extend.md) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index 77aedb81..83cef54c 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -18,6 +18,20 @@ Plan export is useful to: --- +## Export a plan + +```powershell +$request = New-IdleRequest -LifecycleEvent 'Joiner' -CorrelationId (New-Guid) -IdentityKeys @{ + EmployeeId = '12345' +} -Intent @{ + Department = 'IT' +} + +$plan = New-IdlePlan -WorkflowPath ./workflows/joiner.psd1 -Request $request + +Export-IdlePlan -Plan $plan -Path ./artifacts/plan.json +``` + ## What a plan export contains A plan export typically includes: @@ -35,6 +49,66 @@ Providers and authentication are always supplied by the host at execution time. --- +## Example export + +```json +{ + "schemaVersion": "1.0", + "engine": { + "name": "IdLE" + }, + "request": { + "type": "Joiner", + "correlationId": "123e4567-e89b-12d3-a456-426614174000", + "actor": "HR-System", + "input": { + "identityKeys": { + "userId": "jdoe" + }, + "intent": { + "department": "IT" + }, + "context": { + "Identity": { + "ObjectId": "abc-123" + } + } + } + }, + "plan": { + "id": "plan-001", + "mode": "PlanOnly", + "steps": [ + { + "id": "step-01", + "name": "Ensure Mailbox", + "stepType": "EnsureMailbox", + "provider": "ExchangeOnline", + "condition": { + "type": "when", + "expression": "request.type == 'Joiner'" + }, + "inputs": { + "mailboxType": "User" + }, + "expectedState": { + "MailboxExists": true + } + } + ] + }, + "metadata": { + "generatedBy": "Invoke-IdlePlan", + "environment": "CI", + "labels": ["preview", "dry-run"] + } +} +``` + +See the full JSON contract in [docs/reference/specs/plan-export.md](docs/reference/specs/plan-export.md). + +--- + ## Typical flow (review gate) 1. Build a plan in a controlled environment (CI / staging). diff --git a/docs/use/providers.md b/docs/use/providers.md index eed03ca5..7ea3731f 100644 --- a/docs/use/providers.md +++ b/docs/use/providers.md @@ -97,12 +97,55 @@ IdLE workflows **shall not** contain secrets. Authentication is provided by your host, typically via an **AuthSessionBroker** (or another host-managed mechanism), and then used by providers and/or steps. +At a high level, the host is responsible for: + +- choosing the auth mechanism (token, certificate, managed identity, workload identity, etc.) +- acquiring and caching sessions as needed +- injecting the broker or session factory into provider instances + +Generic example (host-managed auth, provider-agnostic): + +```powershell +# A step can request an auth session by name and optional options. +$workflowStep = @{ + Name = 'Ensure attributes (example)' + Type = 'IdLE.Step.EnsureAttributes' + With = @{ + Provider = 'Identity' + AuthSessionName = 'AD' + AuthSessionOptions = @{ Role = 'Tier0' } + + IdentityKey = '{{Request.IdentityKeys.EmployeeId}}' + Attributes = @{ Department = '{{Request.Intent.Department}}' } + } +} + +# Host configures a broker and supplies it alongside providers. +$adCred = Get-Credential +$exoToken = '' + +$authSessionBroker = New-IdleAuthSession -SessionMap @{ + @{ AuthSessionName = 'AD' } = @{ AuthSessionType = 'Credential'; Credential = $adCred } + @{ AuthSessionName = 'EXO' } = @{ AuthSessionType = 'OAuth'; Credential = $exoToken } +} + +$providers = @{ + Identity = New-IdleMockIdentityProvider + AuthSessionBroker = $authSessionBroker +} + +$plan = New-IdlePlan -WorkflowPath ./joiner.psd1 -Request $request -Providers $providers +Invoke-IdlePlan -Plan $plan +``` + +During execution, the step will call `Context.AcquireAuthSession(AuthSessionName, AuthSessionOptions)` and pass the returned `AuthSession` to the provider method (if the provider supports an `AuthSession` parameter). + :::warning Do not store credentials, tokens, or executable ScriptBlocks in workflow files. Keep workflows and requests **data-only**. ::: -For authentication patterns and provider contracts, see: +Provider-specific authentication variants and required options are documented in the provider reference. For authentication patterns and provider contracts, see: - [Reference: Providers](../reference/providers.md) @@ -112,5 +155,4 @@ For authentication patterns and provider contracts, see: - If you have not done so yet, start with the [Quick Start](quickstart.md). - For the full end-to-end flow, follow the [Walkthrough](walkthrough/01-workflow-definition.md): - - workflow definition → request → plan → invoke → providers & auth - For full specifications and examples, use the [Reference](../reference/intro-reference.md) section. diff --git a/docs/use/quickstart.md b/docs/use/quickstart.md index df3cb642..93c4c335 100644 --- a/docs/use/quickstart.md +++ b/docs/use/quickstart.md @@ -3,8 +3,6 @@ title: Quick Start sidebar_label: Quick Start --- -# Quick Start - This Quick Start gets you from **zero** to a first successful run of the IdLE lifecycle: 1. Define a **workflow** (data-only `.psd1`) @@ -14,7 +12,7 @@ This Quick Start gets you from **zero** to a first successful run of the IdLE li :::info IdLE does not ship a “live system host”. -Your **host** (script, CI job, service) supplies provider instances and (if needed) authentication. +**Your host** (script, CI job, service) **must supply provider instances** and (if needed) authentication. ::: --- @@ -29,12 +27,10 @@ Your **host** (script, CI job, service) supplies provider instances and (if need ## 1) Install and import modules ```powershell -# IdLE meta module (Core + Steps) -Install-Module -Name IdLE -Scope CurrentUser +# IdLE meta module (incl. IdLE.Core + IdLE.Steps.Common) Import-Module -Name IdLE # Mock provider (safe, no real systems touched) -Install-Module -Name IdLE.Provider.Mock -Scope CurrentUser Import-Module -Name IdLE.Provider.Mock ``` @@ -46,7 +42,7 @@ If you are running in CI, consider `-Scope AllUsers` or a dedicated PowerShellGe ## 2) Create a minimal workflow file -Workflows are **data-only** PowerShell hashtables stored as `.psd1` files. +Workflows are **data-only definition of what to do**, defined in a PowerShell hashtables stored as `.psd1` files. Create a temporary workflow file with two steps: @@ -93,14 +89,14 @@ $workflowPath :::warning Workflow definitions are **data-only**. Do not embed executable code (ScriptBlocks). -This is a core security boundary in IdLE. +This is a [core security boundary](../about/security.md) in IdLE. ::: --- ## 3) Create a request -A request represents business intent (Joiner/Mover/Leaver) plus input data. +A request represents **business intent** (here a joiner) plus input data. ```powershell $request = New-IdleRequest -LifecycleEvent 'Joiner' -IdentityKeys @{ @@ -127,7 +123,7 @@ $providers = @{ ## 5) Build the plan (validation + template resolution) -Plan building is a **fail-fast** step. IdLE validates the workflow and resolves templates like +Plan building is a **fail-fast** step. IdLE **validates the workflow** against provider capabilities and resolves templates like `{{Request.Intent.GivenName}}`. ```powershell @@ -138,6 +134,8 @@ $plan = New-IdlePlan -WorkflowPath $workflowPath -Request $request -Providers $p ## 6) Invoke the plan +The plan is executed by IdLE invocation engine. + ```powershell $result = Invoke-IdlePlan -Plan $plan ``` @@ -160,19 +158,10 @@ $result.Events | Select-Object StepName, Message, Type, TimestampUtc ## What to do next -- Learn workflow structure, templates, and conditions: [Workflows & Steps](workflows.md) -- Understand provider mapping and authentication patterns: [Providers](providers.md) -- Export a plan for review / CI artifacts: [Plan Export](plan-export.md) - -If you want to look up details in the reference: - -- [Cmdlets](../reference/cmdlets.md) -- [Steps](../reference/steps.md) -- [Providers](../reference/providers.md) - ---- +- Full **walkthrough** with [1. Workflow definition](./walkthrough/01-workflow-definition.md) +- **Details of workflow** structure, templates, and conditions: [Workflows & Steps](workflows.md) -## Explore repository examples (optional) +### Explore repository examples (optional) The IdLE repository contains an example runner and additional workflow samples. This is useful to browse patterns and larger examples, but it is **not required** for normal IdLE usage. diff --git a/docs/use/walkthrough/01-workflow-definition.md b/docs/use/walkthrough/01-workflow-definition.md index 7660bd73..01197999 100644 --- a/docs/use/walkthrough/01-workflow-definition.md +++ b/docs/use/walkthrough/01-workflow-definition.md @@ -18,7 +18,7 @@ Providers and authentication are supplied by your host. ## Goal -Create a minimal workflow file that IdLE can validate and turn into a plan. +**Create a minimal workflow** file that IdLE can validate and turn into a plan. ## You will have diff --git a/docs/use/walkthrough/02-request-creation.md b/docs/use/walkthrough/02-request-creation.md index ada1de62..37c553df 100644 --- a/docs/use/walkthrough/02-request-creation.md +++ b/docs/use/walkthrough/02-request-creation.md @@ -7,13 +7,13 @@ This page covers the second artifact in the IdLE lifecycle: **Workflow → Request → Plan → Invoke → Providers/Auth** -A **request** represents business intent (Joiner/Mover/Leaver) plus the input data used by workflows (identity keys, desired state, and optional context). +A **request represents business intent** (Joiner/Mover/Leaver) plus the input data used by workflows (identity keys, desired state, and optional context). --- ## Goal -Create a minimal request that matches the workflow from [Walkthrough 1](01-workflow-definition.md). +**Create a minimal request** that matches the workflow from [Walkthrough 1 - Workflow definition](01-workflow-definition.md). ## You will have @@ -48,7 +48,8 @@ This request provides the values referenced in the workflow templates: ## 2) What belongs into a request ### IdentityKeys -Identity keys uniquely identify the identity you are acting on (for example: EmployeeId, SamAccountName, UPN). + +**Identity keys uniquely identify** the identity you are acting on (for example: EmployeeId, SamAccountName, UPN). Identity keys are typically: @@ -57,7 +58,8 @@ Identity keys are typically: - provided by the upstream system (HR, IAM, ticket) ### Intent -Intent contains the caller-provided action inputs (attributes, entitlements, mailbox settings, …) that the workflow should act on. + +**Intent contains the caller-provided action inputs** (attributes, entitlements, mailbox settings, …) that the workflow should act on. For this walkthrough we keep it minimal and only set two attributes. diff --git a/docs/use/walkthrough/03-plan-creation.md b/docs/use/walkthrough/03-plan-creation.md index 622dba1c..bc9a8214 100644 --- a/docs/use/walkthrough/03-plan-creation.md +++ b/docs/use/walkthrough/03-plan-creation.md @@ -7,14 +7,14 @@ This page covers the third artifact in the IdLE lifecycle: **Workflow → Request → Plan → Invoke → Providers/Auth** -A **plan** is the validated, resolved execution contract created from a workflow and a request. +A **plan is the validated, resolved execution contract** created from a workflow and a request. Plan building is designed to be **fail-fast**. --- ## Goal -Build a plan from your workflow and request, while supplying providers (recommended). +**Build a plan** from your workflow and request, while supplying providers (recommended). ## You will have diff --git a/docs/use/walkthrough/04-invoke-results.md b/docs/use/walkthrough/04-invoke-results.md index 7cc8ca66..934fdbad 100644 --- a/docs/use/walkthrough/04-invoke-results.md +++ b/docs/use/walkthrough/04-invoke-results.md @@ -7,13 +7,13 @@ This page covers the fourth stage in the IdLE lifecycle: **Workflow → Request → Plan → Invoke → Providers/Auth** -When you invoke a plan, IdLE executes the steps in order and emits structured events. +When you invoke a plan, **IdLE executes the planned steps** in order and emits structured events. --- ## Goal -Execute the plan and inspect result data (status, step outcomes, events). +**Execute the plan** and inspect result data (status, step outcomes, events). ## You will have @@ -30,12 +30,6 @@ If you supplied providers during plan build, invocation is simple: $result = Invoke-IdlePlan -Plan $plan ``` -If you did **not** supply providers during plan build, you can supply them at execution time: - -```powershell -$result = Invoke-IdlePlan -Plan $plan -Providers $providers -``` - --- ## 2) Inspect status and step outcomes diff --git a/docs/use/walkthrough/05-providers-authentication.md b/docs/use/walkthrough/05-providers-authentication.md index 7bf67020..73f22dae 100644 --- a/docs/use/walkthrough/05-providers-authentication.md +++ b/docs/use/walkthrough/05-providers-authentication.md @@ -15,9 +15,9 @@ Providers and authentication are **host responsibilities**. Workflows and reques ## Goal -- Understand how workflow steps reference providers by alias (`With.Provider`) -- Understand how steps acquire authentication sessions at runtime (optional) -- Build a provider registry that works for both plan build and execution +- **Understand how workflow steps reference** providers by alias (`With.Provider`) +- Understand how steps **acquire authentication sessions** at runtime (optional) +- **Build a provider registry** that works for both plan build and execution ## You will have @@ -88,7 +88,7 @@ $result = Invoke-IdlePlan -Plan $plan -Providers $providers ## 3) Authentication is optional, but always host-owned -IdLE workflows **must not** contain secrets. +IdLE workflows ***must not* contain secrets**. If a step needs credentials at runtime, it can request an auth session via: @@ -104,7 +104,7 @@ Example (step requests a named session): With = @{ Provider = 'Identity' AuthSessionName = 'AD' - AuthSessionOptions = @{ Role = 'Tier0' } + AuthSessionOptions = @{ Role = 'Tier0' } # optional IdentityKey = '{{Request.IdentityKeys.EmployeeId}}' Attributes = @{ @@ -190,4 +190,7 @@ You now have the full end-to-end flow: 4. Invoke and inspect results/events 5. Providers & (optional) authentication -Next, consider using **[Plan Export](../plan-export.md)** for review/approval and CI artifacts. +## Next + +- consider using **[Plan Export](../plan-export.md)** for review/approval and CI artifacts. +- look at details of **[Workflows](../workflows.md)** diff --git a/docs/use/workflows.md b/docs/use/workflows.md index c1f16518..1e96250c 100644 --- a/docs/use/workflows.md +++ b/docs/use/workflows.md @@ -9,9 +9,9 @@ A workflow is a **data-only** PowerShell hashtable stored in a `.psd1` file. It Workflows are designed for **admins and workflow authors**: -- You define *what should happen* (steps and their configuration). +- You define **what should happen*** (steps and their configuration). - IdLE builds a **plan** and then **executes** it. -- Providers implement the system-specific operations. +- **Providers implement** the system-specific operations. --- diff --git a/docs/use/workflows/context-resolver.md b/docs/use/workflows/context-resolver.md index 3df8ff38..69eb0993 100644 --- a/docs/use/workflows/context-resolver.md +++ b/docs/use/workflows/context-resolver.md @@ -265,15 +265,81 @@ This enables auditing and per-source filtering when working with merged views. ## Troubleshooting -### Resolver not executed +### Inspecting resolved context data + +When working with complex resolver outputs (entitlements, profiles), inspect the plan object directly after calling `New-IdlePlan`. This is the recommended approach during authoring and debugging. **Do not rely on template substitution for this purpose** — template substitution only resolves scalar values and cannot serialize whole objects or lists. + +**Inspect the complete context tree:** + +```powershell +$plan = New-IdlePlan -WorkflowPath ./workflow.psd1 -Request $req -Providers $providers + +# Full context structure (use Depth 8 for deeply nested Views) +$plan.Request.Context | ConvertTo-Json -Depth 8 + +# Scoped source-of-truth namespace only +$plan.Request.Context.Providers | ConvertTo-Json -Depth 8 + +# Engine-defined Views only +$plan.Request.Context.Views | ConvertTo-Json -Depth 8 +``` + +**Inspect a specific scoped path:** + +```powershell +# Entitlements from one provider +$plan.Request.Context.Providers.Identity.Default.Identity.Entitlements | ConvertTo-Json -Depth 2 + +# Profile from one provider +$plan.Request.Context.Providers.Identity.Default.Identity.Profile | ConvertTo-Json -Depth 4 + +# Global merged View +$plan.Request.Context.Views.Identity.Entitlements | ConvertTo-Json -Depth 2 +``` + +**Quick tabular view:** + +```powershell +$plan.Request.Context.Views.Identity.Entitlements | Format-Table -AutoSize +``` -- Ensure `ContextResolvers` is defined at workflow root. -- Verify correct property name (`ContextResolvers`). +**Inspect individual properties to understand the path structure:** + +```powershell +# Check available properties on the profile object +$plan.Request.Context.Providers.Identity.Default.Identity.Profile | Get-Member -### Capability not permitted +# Access profile attributes — attributes are nested under the Attributes key +$plan.Request.Context.Providers.Identity.Default.Identity.Profile.Attributes -- Only allowlisted read-only capabilities can be used. -- Validation happens during plan build. +# Check a specific attribute +$plan.Request.Context.Providers.Identity.Default.Identity.Profile.Attributes.DisplayName + +# Check an entitlement entry and its source metadata +$plan.Request.Context.Views.Identity.Entitlements[0] | Get-Member +$plan.Request.Context.Views.Identity.Entitlements[0].Id +$plan.Request.Context.Views.Identity.Entitlements[0].SourceProvider +``` + +**Translating discovered structure to Condition paths:** + +```powershell +# Profile attribute — path must include Attributes +Condition = @{ + Like = @{ + Path = 'Request.Context.Providers.Identity.Default.Identity.Profile.Attributes.DisplayName' + Pattern = '* (Contractor)' + } +} + +# Entitlement IDs — member-access enumeration extracts all Id values from the list +Condition = @{ + NotContains = @{ + Path = 'Request.Context.Views.Identity.Entitlements.Id' + Value = 'CN=BreakGlass-Users,OU=Groups,DC=example,DC=com' + } +} +``` ### Ambiguous provider @@ -397,6 +463,3 @@ Condition = @{ } } ``` - -See [Conditions - Member-Access Enumeration](./conditions.md#member-access-enumeration) for details. - From 1a6d7c5fb88270b8673e6878d0849b912afa0fd1 Mon Sep 17 00:00:00 2001 From: Matthias Fleschuetz <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:02:36 +0100 Subject: [PATCH 03/28] fix indent issue --- docs/use/plan-export.md | 104 ++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index 83cef54c..eaefa8ef 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -22,9 +22,9 @@ Plan export is useful to: ```powershell $request = New-IdleRequest -LifecycleEvent 'Joiner' -CorrelationId (New-Guid) -IdentityKeys @{ - EmployeeId = '12345' + EmployeeId = '12345' } -Intent @{ - Department = 'IT' + Department = 'IT' } $plan = New-IdlePlan -WorkflowPath ./workflows/joiner.psd1 -Request $request @@ -53,59 +53,59 @@ Providers and authentication are always supplied by the host at execution time. ```json { - "schemaVersion": "1.0", - "engine": { - "name": "IdLE" - }, - "request": { - "type": "Joiner", - "correlationId": "123e4567-e89b-12d3-a456-426614174000", - "actor": "HR-System", - "input": { - "identityKeys": { - "userId": "jdoe" - }, - "intent": { - "department": "IT" - }, - "context": { - "Identity": { - "ObjectId": "abc-123" - } - } - } - }, - "plan": { - "id": "plan-001", - "mode": "PlanOnly", - "steps": [ - { - "id": "step-01", - "name": "Ensure Mailbox", - "stepType": "EnsureMailbox", - "provider": "ExchangeOnline", - "condition": { - "type": "when", - "expression": "request.type == 'Joiner'" - }, - "inputs": { - "mailboxType": "User" - }, - "expectedState": { - "MailboxExists": true - } - } - ] - }, - "metadata": { - "generatedBy": "Invoke-IdlePlan", - "environment": "CI", - "labels": ["preview", "dry-run"] - } + "schemaVersion": "1.0", + "engine": { + "name": "IdLE" + }, + "request": { + "type": "Joiner", + "correlationId": "123e4567-e89b-12d3-a456-426614174000", + "actor": "HR-System", + "input": { + "identityKeys": { + "userId": "jdoe" + }, + "intent": { + "department": "IT" + }, + "context": { + "Identity": { + "ObjectId": "abc-123" + } + } + } + }, + "plan": { + "id": "plan-001", + "mode": "PlanOnly", + "steps": [ + { + "id": "step-01", + "name": "Ensure Mailbox", + "stepType": "EnsureMailbox", + "provider": "ExchangeOnline", + "condition": { + "type": "when", + "expression": "request.type == 'Joiner'" + }, + "inputs": { + "mailboxType": "User" + }, + "expectedState": { + "MailboxExists": true + } + } + ] + }, + "metadata": { + "generatedBy": "Invoke-IdlePlan", + "environment": "CI", + "labels": ["preview", "dry-run"] + } } ``` -See the full JSON contract in [docs/reference/specs/plan-export.md](docs/reference/specs/plan-export.md). +See the full JSON contract in [plan-export reference](../reference/specs/plan-export.md). --- From 944136473156122d9676b7b09b1c0bd5153bdbee Mon Sep 17 00:00:00 2001 From: Matthias Fleschuetz <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:07:00 +0100 Subject: [PATCH 04/28] pin all docusaurus to versions --- website/package-lock.json | 4 ++-- website/package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index e22d1651..724f1ba1 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -21,8 +21,8 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.9.2", - "@docusaurus/types": "3.9.2" + "@docusaurus/module-type-aliases": "^3.9.2", + "@docusaurus/types": "^3.9.2" }, "engines": { "node": ">=20.0" diff --git a/website/package.json b/website/package.json index ab37c474..ca6373fc 100644 --- a/website/package.json +++ b/website/package.json @@ -31,8 +31,8 @@ "serialize-javascript": "^7.0.3" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.9.2", - "@docusaurus/types": "3.9.2" + "@docusaurus/module-type-aliases": "^3.9.2", + "@docusaurus/types": "^3.9.2" }, "browserslist": { "production": [ From edba324a13a754957496607b3e66133e590d546a Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:11:29 +0100 Subject: [PATCH 05/28] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/about/concepts.md | 4 ++-- docs/use/providers.md | 2 +- docs/use/quickstart.md | 4 ++-- docs/use/workflows.md | 2 +- website/package.json | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/about/concepts.md b/docs/about/concepts.md index 375d6877..248a9522 100644 --- a/docs/about/concepts.md +++ b/docs/about/concepts.md @@ -98,7 +98,7 @@ A **workflow consists of ordered steps**. Each step references a **StepType** by ### Providers -**Workflows reference providers** by alias (for example: `With.Provider = 'Identity'`), but the actual provider instances are supplied by the host. Providers implement step capabilities in specificly for the endpoint system. +**Workflows reference providers** by alias (for example: `With.Provider = 'Identity'`), but the actual provider instances are supplied by the host. Providers implement step capabilities specifically for each endpoint system. Hands-on: [Walkthrough 5: Providers and authentication](../use/walkthrough/05-providers-authentication.md). @@ -117,7 +117,7 @@ Hands-on: [Walkthrough 3: Plan build](../use/walkthrough/03-plan-creation.md). ### Provider Capabilities (Planning-time Validation) -**IdLE validates required capabilities** at plan-build time (fail-fast) agains supplied providers. +**IdLE validates required capabilities** at plan-build time (fail-fast) against supplied providers. This prevents discovering missing requirements only at execution time. ### Plan export diff --git a/docs/use/providers.md b/docs/use/providers.md index 7ea3731f..e6815087 100644 --- a/docs/use/providers.md +++ b/docs/use/providers.md @@ -154,5 +154,5 @@ Provider-specific authentication variants and required options are documented in ## Next steps - If you have not done so yet, start with the [Quick Start](quickstart.md). -- For the full end-to-end flow, follow the [Walkthrough](walkthrough/01-workflow-definition.md): +- For the full end-to-end flow, follow the [Walkthrough](walkthrough/01-workflow-definition.md). - For full specifications and examples, use the [Reference](../reference/intro-reference.md) section. diff --git a/docs/use/quickstart.md b/docs/use/quickstart.md index 93c4c335..228afc43 100644 --- a/docs/use/quickstart.md +++ b/docs/use/quickstart.md @@ -42,7 +42,7 @@ If you are running in CI, consider `-Scope AllUsers` or a dedicated PowerShellGe ## 2) Create a minimal workflow file -Workflows are **data-only definition of what to do**, defined in a PowerShell hashtables stored as `.psd1` files. +Workflows are **data-only definitions of what to do**, represented as PowerShell hashtables stored in `.psd1` files. Create a temporary workflow file with two steps: @@ -134,7 +134,7 @@ $plan = New-IdlePlan -WorkflowPath $workflowPath -Request $request -Providers $p ## 6) Invoke the plan -The plan is executed by IdLE invocation engine. +The plan is executed by the IdLE invocation engine. ```powershell $result = Invoke-IdlePlan -Plan $plan diff --git a/docs/use/workflows.md b/docs/use/workflows.md index 1e96250c..600f1c65 100644 --- a/docs/use/workflows.md +++ b/docs/use/workflows.md @@ -9,7 +9,7 @@ A workflow is a **data-only** PowerShell hashtable stored in a `.psd1` file. It Workflows are designed for **admins and workflow authors**: -- You define **what should happen*** (steps and their configuration). +- You define **what should happen** (steps and their configuration). - IdLE builds a **plan** and then **executes** it. - **Providers implement** the system-specific operations. diff --git a/website/package.json b/website/package.json index ca6373fc..59c27ba1 100644 --- a/website/package.json +++ b/website/package.json @@ -28,7 +28,7 @@ "react-dom": "^18.2.0" }, "overrides": { - "serialize-javascript": "^7.0.3" + "serialize-javascript": "7.0.3" }, "devDependencies": { "@docusaurus/module-type-aliases": "^3.9.2", From 5373ca4b54718a2c7fa2cfeecda2052c5e52bd4e Mon Sep 17 00:00:00 2001 From: Matthias Fleschuetz <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:14:17 +0100 Subject: [PATCH 06/28] sync package json and package json lock --- website/package-lock.json | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 724f1ba1..93aff767 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -7574,6 +7574,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/copy-webpack-plugin/node_modules/serialize-javascript": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.3.tgz", + "integrity": "sha512-h+cZ/XXarqDgCjo+YSyQU/ulDEESGGf8AMK9pPNmhNSl/FzPl6L8pMp1leca5z6NuG6tvV/auC8/43tmovowww==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/copy-webpack-plugin/node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -7886,6 +7895,15 @@ } } }, + "node_modules/css-minimizer-webpack-plugin/node_modules/serialize-javascript": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.3.tgz", + "integrity": "sha512-h+cZ/XXarqDgCjo+YSyQU/ulDEESGGf8AMK9pPNmhNSl/FzPl6L8pMp1leca5z6NuG6tvV/auC8/43tmovowww==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/css-prefers-color-scheme": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", @@ -16896,15 +16914,6 @@ "node": ">= 0.6" } }, - "node_modules/serialize-javascript": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz", - "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=20.0.0" - } - }, "node_modules/serve-handler": { "version": "6.1.7", "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.7.tgz", From 798a30a1320db4d1083e5b4f4034f51033c5eddc Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:16:21 +0100 Subject: [PATCH 07/28] Update docs/use/installation.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/installation.md b/docs/use/installation.md index f59d0a73..2eb7b8ea 100644 --- a/docs/use/installation.md +++ b/docs/use/installation.md @@ -83,7 +83,7 @@ Import-Module ./src/IdLE/IdLE.psd1 -Force ``` :::info -The meta module bootstraps module discovery repo layout. Be aware of using this in parallel to IdLE installed as a module. \ +The meta module bootstraps module discovery for the repository layout. Avoid using this in parallel with an IdLE installation from the PowerShell Gallery. After importing from source, you can import additional modules by name. ::: From e71b31928bd4ee9a11d57329dbcd688c69987f4d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:17:09 +0000 Subject: [PATCH 08/28] Initial plan From 70e8888bbed0e90f4f720a6c32611d382aec6230 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:18:42 +0000 Subject: [PATCH 09/28] Add artifacts directory creation step to plan-export example Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com> Agent-Logs-Url: https://github.com/blindzero/IdentityLifecycleEngine/sessions/e5c5328f-b18f-4a8b-8089-5f5e20558ddf --- docs/use/plan-export.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index eaefa8ef..0580ace0 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -29,6 +29,9 @@ $request = New-IdleRequest -LifecycleEvent 'Joiner' -CorrelationId (New-Guid) -I $plan = New-IdlePlan -WorkflowPath ./workflows/joiner.psd1 -Request $request +# Create the output directory if it does not already exist +New-Item -ItemType Directory -Force -Path ./artifacts | Out-Null + Export-IdlePlan -Plan $plan -Path ./artifacts/plan.json ``` From 8aa0cfe4d1f1f8a3e7ee2b42f9800d6ee28cda0b Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:23:19 +0100 Subject: [PATCH 10/28] Update docs/use/plan-export.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/plan-export.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index eaefa8ef..d02fe882 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -98,7 +98,7 @@ Providers and authentication are always supplied by the host at execution time. ] }, "metadata": { - "generatedBy": "Invoke-IdlePlan", + "generatedBy": "Export-IdlePlanObject", "environment": "CI", "labels": ["preview", "dry-run"] } From 0058c94ccd97b0e0c9e8d1123221bfbf5e6f2736 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:23:38 +0100 Subject: [PATCH 11/28] Update docs/use/installation.md --- docs/use/installation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/use/installation.md b/docs/use/installation.md index 2eb7b8ea..8f2396e2 100644 --- a/docs/use/installation.md +++ b/docs/use/installation.md @@ -58,7 +58,6 @@ Install-Module -Name IdLE.Steps.Mailbox -Scope CurrentUser Install-Module -Name IdLE.Provider.Mock -Scope CurrentUser ``` -Import only what you need: :::tip If a workflow references a StepType from an optional steps module, that steps module must be installed and imported in the host session. From 8182f240096fd2de1f121707690f82e29e32b078 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:24:41 +0000 Subject: [PATCH 12/28] Initial plan From 41771a550ec48a1f58f7bd5c8d8cf38ed56d0452 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:24:43 +0100 Subject: [PATCH 13/28] Update docs/use/installation.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/installation.md b/docs/use/installation.md index 8f2396e2..38071375 100644 --- a/docs/use/installation.md +++ b/docs/use/installation.md @@ -97,7 +97,7 @@ Import-Module IdLE.Steps.Mailbox -Force ```powershell Get-Module IdLE* -ListAvailable | Select-Object Name, Version, Path -# Public facing main user Commands +# Public-facing user commands Get-Command -Module IdLE | Sort-Object Name # Public interface functions from modules Get-Command -Module IdLE.* | Sort-Object Name From 071eb874d69e30bd6d298303d87de16107ceac8f Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:28:14 +0100 Subject: [PATCH 14/28] Update docs/about/concepts.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/about/concepts.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/about/concepts.md b/docs/about/concepts.md index 248a9522..14ef5788 100644 --- a/docs/about/concepts.md +++ b/docs/about/concepts.md @@ -93,8 +93,7 @@ A **workflow is a data-only definition** (`.psd1`) that describes **what** shoul A **workflow consists of ordered steps**. Each step references a **StepType** by name and provides configuration under `With`. - Hands-on: [Walkthrough 1: Workflow definition](../use/walkthrough/01-workflow-definition.md). -- Specification: [Use → Workflows](../use/workflows.md) and -- [Reference section](../reference/steps.md). +- Specification: [Use → Workflows](../use/workflows.md) and [Reference section](../reference/steps.md). ### Providers From f96b8c879c8dba9dec6acca046cba5b097bc6d2d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:28:31 +0000 Subject: [PATCH 15/28] Fix plan-export.md example JSON to match real Export-IdlePlan output Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com> Agent-Logs-Url: https://github.com/blindzero/IdentityLifecycleEngine/sessions/2ca4951d-40f5-49ca-928c-10a563f218ab --- docs/use/plan-export.md | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index d02fe882..58d5ee21 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -63,21 +63,17 @@ Providers and authentication are always supplied by the host at execution time. "actor": "HR-System", "input": { "identityKeys": { - "userId": "jdoe" + "EmployeeId": "12345" }, "intent": { - "department": "IT" + "Department": "IT" }, - "context": { - "Identity": { - "ObjectId": "abc-123" - } - } + "context": null } }, "plan": { - "id": "plan-001", - "mode": "PlanOnly", + "id": "123e4567-e89b-12d3-a456-426614174000", + "mode": null, "steps": [ { "id": "step-01", @@ -85,22 +81,22 @@ Providers and authentication are always supplied by the host at execution time. "stepType": "EnsureMailbox", "provider": "ExchangeOnline", "condition": { - "type": "when", - "expression": "request.type == 'Joiner'" + "type": "always", + "expression": null }, "inputs": { "mailboxType": "User" }, - "expectedState": { - "MailboxExists": true - } + "expectedState": null, + "warnings": [] } - ] + ], + "warnings": [] }, "metadata": { "generatedBy": "Export-IdlePlanObject", - "environment": "CI", - "labels": ["preview", "dry-run"] + "environment": null, + "labels": [] } } ``` From c72ad1a805fa513b17ae7e00957ab16e333eb926 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Mar 2026 18:33:51 +0000 Subject: [PATCH 16/28] Fix request.input.context to {} to match New-IdleRequest default Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com> Agent-Logs-Url: https://github.com/blindzero/IdentityLifecycleEngine/sessions/93eb57c8-bdde-4cc4-8910-ecb6e58ab313 --- docs/use/plan-export.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index 58d5ee21..32009a89 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -68,7 +68,7 @@ Providers and authentication are always supplied by the host at execution time. "intent": { "Department": "IT" }, - "context": null + "context": {} } }, "plan": { From bbb0de7020d8d3e3c7edc17f426bcab35988b554 Mon Sep 17 00:00:00 2001 From: Matthias Fleschuetz <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:35:59 +0100 Subject: [PATCH 17/28] fixing node to 20.18.1 due to undici requirement --- website/package-lock.json | 2 +- website/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 93aff767..b8418eb5 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -25,7 +25,7 @@ "@docusaurus/types": "^3.9.2" }, "engines": { - "node": ">=20.0" + "node": ">=20.18.1" } }, "node_modules/@algolia/abtesting": { diff --git a/website/package.json b/website/package.json index 59c27ba1..038c1376 100644 --- a/website/package.json +++ b/website/package.json @@ -47,6 +47,6 @@ ] }, "engines": { - "node": ">=20.0" + "node": ">=20.18.1" } } From 6b125a5245a041d81113066bad694b925a6bd1c5 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:36:21 +0100 Subject: [PATCH 18/28] Update docs/use/installation.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/installation.md b/docs/use/installation.md index 38071375..dc983f2e 100644 --- a/docs/use/installation.md +++ b/docs/use/installation.md @@ -68,7 +68,7 @@ If a workflow references a StepType from an optional steps module, that steps mo ## Install from repository source :::info -This installation method is primarily for fetching full example files or testing and contributors. +This installation method is primarily for fetching full example files, testing, and contributing. ::: This path is intended for development and contribution scenarios. From 1a0abe03ed59390a434413a807625f897cb4cc4d Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:41:00 +0100 Subject: [PATCH 19/28] Update docs/use/walkthrough/05-providers-authentication.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/walkthrough/05-providers-authentication.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use/walkthrough/05-providers-authentication.md b/docs/use/walkthrough/05-providers-authentication.md index 73f22dae..a297a203 100644 --- a/docs/use/walkthrough/05-providers-authentication.md +++ b/docs/use/walkthrough/05-providers-authentication.md @@ -192,5 +192,5 @@ You now have the full end-to-end flow: ## Next -- consider using **[Plan Export](../plan-export.md)** for review/approval and CI artifacts. -- look at details of **[Workflows](../workflows.md)** +- Consider using **[Plan Export](../plan-export.md)** for review/approval and CI artifacts. +- Look at details of **[Workflows](../workflows.md)** From f7cf87dbccbcbb27d37735dca8dad336127c7e8c Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:41:14 +0100 Subject: [PATCH 20/28] Update docs/use/workflows/context-resolver.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/workflows/context-resolver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/workflows/context-resolver.md b/docs/use/workflows/context-resolver.md index 69eb0993..5bf838ac 100644 --- a/docs/use/workflows/context-resolver.md +++ b/docs/use/workflows/context-resolver.md @@ -272,7 +272,7 @@ When working with complex resolver outputs (entitlements, profiles), inspect the **Inspect the complete context tree:** ```powershell -$plan = New-IdlePlan -WorkflowPath ./workflow.psd1 -Request $req -Providers $providers +$plan = New-IdlePlan -WorkflowPath ./workflow.psd1 -Request $request -Providers $providers # Full context structure (use Depth 8 for deeply nested Views) $plan.Request.Context | ConvertTo-Json -Depth 8 From 0b1598835199592f40517794dcfbd722bcb55410 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:41:34 +0100 Subject: [PATCH 21/28] Update docs/use/plan-export.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/plan-export.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index 32009a89..b8ce7a7a 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -101,6 +101,11 @@ Providers and authentication are always supplied by the host at execution time. } ``` +In this example, `metadata.environment` is `null` and `metadata.labels` is an empty array because +`Export-IdlePlanObject` does not infer or populate these fields automatically. They are part of the +exported contract so that your host or automation (for example, a CI pipeline or runbook) can add +environment information and labels (such as change ticket IDs, deployment rings, or business tags) +as needed before storing or executing the plan. See the full JSON contract in [plan-export reference](../reference/specs/plan-export.md). --- From 90490d400b1e241876af38b7f2d92e5b5c621915 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:44:57 +0100 Subject: [PATCH 22/28] Update docs/use/workflows/context-resolver.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/workflows/context-resolver.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/use/workflows/context-resolver.md b/docs/use/workflows/context-resolver.md index 5bf838ac..5c785855 100644 --- a/docs/use/workflows/context-resolver.md +++ b/docs/use/workflows/context-resolver.md @@ -272,6 +272,9 @@ When working with complex resolver outputs (entitlements, profiles), inspect the **Inspect the complete context tree:** ```powershell +# Example placeholders; replace with your real request and providers +$request = $null +$providers = @{} $plan = New-IdlePlan -WorkflowPath ./workflow.psd1 -Request $request -Providers $providers # Full context structure (use Depth 8 for deeply nested Views) From e286112d26dcc0c0c623bf2540c226c93ac0fd08 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:49:12 +0100 Subject: [PATCH 23/28] Update docs/use/workflows/context-resolver.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/workflows/context-resolver.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/use/workflows/context-resolver.md b/docs/use/workflows/context-resolver.md index 5c785855..193a9fce 100644 --- a/docs/use/workflows/context-resolver.md +++ b/docs/use/workflows/context-resolver.md @@ -272,10 +272,10 @@ When working with complex resolver outputs (entitlements, profiles), inspect the **Inspect the complete context tree:** ```powershell -# Example placeholders; replace with your real request and providers -$request = $null -$providers = @{} -$plan = New-IdlePlan -WorkflowPath ./workflow.psd1 -Request $request -Providers $providers +# Assume you have already built a plan: +# $request = ... # build a valid IdLE request +# $providers = @{ ... } # configured provider map +# $plan = New-IdlePlan -WorkflowPath ./workflow.psd1 -Request $request -Providers $providers # Full context structure (use Depth 8 for deeply nested Views) $plan.Request.Context | ConvertTo-Json -Depth 8 From 92d94666898e43efa407e5a45af2f13f3dca1141 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 20:07:27 +0100 Subject: [PATCH 24/28] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/plan-export.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index b8ce7a7a..da73bffc 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -78,7 +78,7 @@ Providers and authentication are always supplied by the host at execution time. { "id": "step-01", "name": "Ensure Mailbox", - "stepType": "EnsureMailbox", + "stepType": "IdLE.Step.Mailbox.EnsureMailbox", "provider": "ExchangeOnline", "condition": { "type": "always", From 74a39c753bf5d10e5a018213f06f1e37e12baa89 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:07:45 +0000 Subject: [PATCH 25/28] Initial plan From 8d71c4bb3c898abc3a17062d32e6db588e3857ce Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 22 Mar 2026 19:09:30 +0000 Subject: [PATCH 26/28] Make example calls consistent and adhere to real schema of export Co-authored-by: blindzero <13959569+blindzero@users.noreply.github.com> Agent-Logs-Url: https://github.com/blindzero/IdentityLifecycleEngine/sessions/39324bc4-0951-4143-b8a4-ab2751f90db0 --- docs/reference/specs/plan-export.md | 4 ++-- docs/use/plan-export.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/reference/specs/plan-export.md b/docs/reference/specs/plan-export.md index be4cde1b..a11bc4ba 100644 --- a/docs/reference/specs/plan-export.md +++ b/docs/reference/specs/plan-export.md @@ -166,7 +166,7 @@ This bound prevents unbounded snapshot artifacts while keeping the marker audita ```json "plan": { "id": "plan-001", - "mode": "PlanOnly", + "mode": null, "steps": [] } ``` @@ -177,7 +177,7 @@ This bound prevents unbounded snapshot artifacts while keeping the marker audita | ------ | ------------ | | id | Unique identifier of the plan | | createdAt | (Optional) ISO-8601 UTC timestamp | -| mode | Plan lifecycle state | +| mode | Plan lifecycle state (`null` when not explicitly set on the plan object) | | steps | Ordered list of step objects | --- diff --git a/docs/use/plan-export.md b/docs/use/plan-export.md index da73bffc..be5f7093 100644 --- a/docs/use/plan-export.md +++ b/docs/use/plan-export.md @@ -21,7 +21,7 @@ Plan export is useful to: ## Export a plan ```powershell -$request = New-IdleRequest -LifecycleEvent 'Joiner' -CorrelationId (New-Guid) -IdentityKeys @{ +$request = New-IdleRequest -LifecycleEvent 'Joiner' -CorrelationId (New-Guid) -Actor 'HR-System' -IdentityKeys @{ EmployeeId = '12345' } -Intent @{ Department = 'IT' From edeaac1160a3cce4c4ee9f2658af914a813ed6a2 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 20:34:22 +0100 Subject: [PATCH 27/28] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/providers.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/use/providers.md b/docs/use/providers.md index e6815087..ca329ad9 100644 --- a/docs/use/providers.md +++ b/docs/use/providers.md @@ -134,6 +134,8 @@ $providers = @{ AuthSessionBroker = $authSessionBroker } +# In a real host, $request would typically be created earlier from your JML/event payload. +$request = New-IdleRequest -WorkflowName 'joiner' -IdentityKeys @{ EmployeeId = '12345' } -Intent @{ Department = 'IT' } $plan = New-IdlePlan -WorkflowPath ./joiner.psd1 -Request $request -Providers $providers Invoke-IdlePlan -Plan $plan ``` From eaf54d9f94c44620e28d8a3bf5eb86b190e700f9 Mon Sep 17 00:00:00 2001 From: Matthias <13959569+blindzero@users.noreply.github.com> Date: Sun, 22 Mar 2026 20:43:32 +0100 Subject: [PATCH 28/28] Update docs/use/providers.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/use/providers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/use/providers.md b/docs/use/providers.md index ca329ad9..86dc1a27 100644 --- a/docs/use/providers.md +++ b/docs/use/providers.md @@ -135,7 +135,7 @@ $providers = @{ } # In a real host, $request would typically be created earlier from your JML/event payload. -$request = New-IdleRequest -WorkflowName 'joiner' -IdentityKeys @{ EmployeeId = '12345' } -Intent @{ Department = 'IT' } +$request = New-IdleRequest -LifecycleEvent 'Joiner' -IdentityKeys @{ EmployeeId = '12345' } -Intent @{ Department = 'IT' } $plan = New-IdlePlan -WorkflowPath ./joiner.psd1 -Request $request -Providers $providers Invoke-IdlePlan -Plan $plan ```