* feat: fix a small-ish nitpick where extensions would reload after login this could potentially try to re-register all private extensions after each auth signal, which is being prevented anyway because of duplicate aliases, but still nice to remove and not have to listen to * feat: align login UI extension load with backoffice, i.e. wait for external load before registering core extensions * build(deps): bump @hey-api to newest and re-generate client * chore: adds extra error logging * feat: adds retry logic to the api interceptor * feat: warn about incomplete actions * fix: the body was already plain text, but we need to ensure the headers say so as well * feat: warns the user when actions could not be completed * build(deps): update @hey-api/client-fetch * chore: generate new api * feat: simplify error handling to just UmbApiError and UmbCancelError * feat: moves error notifications from interceptors into tryExecute, so you more easily can opt out of it and everything is gathered in one place * feat: recreate responses with correct 'status' and 'statusText' * build: stop dotnet processes after debug session * feat: extrapolate common logic into helper method to create responses * feat: returns a UmbProblemDetails like object on interceptors to be handled by tryExecute * chore: deprecates duplicate, outdated UmbProblemDetails interface and type guard * feat: uses the 'title' of the problem details object to convey the main message * chore: 401 and 403 uses their own interceptors * feat: show no notification if 401 * feat: uses the real request method and url (instead of the template placeholders) to tell the user what did not succeed * feat: retry requests with no timeout/race * feat: throttle and delay signals and disallow them from being updated from the outside * chore: adds more logging to timeouts * chore: optimise imports * test: ignores any test files left in node_modules folder * feat: uses auditTime to wait a bit before showing the timeout screen * feat: adds 404 handling to error interceptor * chore: cleans up after response modification * feat: preserve only a few headers this mimicks the v15 behavior * feat: lets the UI handle 404 errors instead of notifying directly * test: uses create action menu option instead to find the correct locator, and skips a seemingly unnecessary timeout
126 lines
3.8 KiB
JSON
126 lines
3.8 KiB
JSON
{
|
|
"version": "0.2.0",
|
|
"compounds": [
|
|
{
|
|
"name": "Backoffice Launch (Vite + .NET Core)",
|
|
"configurations": [
|
|
"Backoffice Launch Vite (Chrome)",
|
|
".NET Core Serve with External Auth (web)"
|
|
],
|
|
"stopAll": true,
|
|
"presentation": {
|
|
"group": "1"
|
|
}
|
|
}
|
|
],
|
|
"configurations": [
|
|
{
|
|
"name": "Backoffice Launch Vite (Chrome)",
|
|
"request": "launch",
|
|
"env": {
|
|
"VITE_UMBRACO_USE_MSW": "${input:AskForMockServer}"
|
|
},
|
|
"runtimeExecutable": "npx",
|
|
"runtimeArgs": ["vite"],
|
|
"type": "node",
|
|
"cwd": "${workspaceFolder}/src/Umbraco.Web.UI.Client",
|
|
"skipFiles": ["<node_internals>/**", "node_modules/**"],
|
|
"smartStep": true,
|
|
"autoAttachChildProcesses": true,
|
|
"serverReadyAction": {
|
|
"killOnServerStop": true,
|
|
"action": "debugWithChrome",
|
|
"pattern": "Local: http://localhost:([0-9]+)",
|
|
"uriFormat": "http://localhost:%s",
|
|
"webRoot": "${workspaceFolder}/src/Umbraco.Web.UI.Client"
|
|
},
|
|
"presentation": {
|
|
"group": "2"
|
|
}
|
|
},
|
|
{
|
|
"name": "Backoffice Attach Vite (Chrome)",
|
|
"request": "launch",
|
|
"type": "chrome",
|
|
"smartStep": true,
|
|
"url": "http://localhost:5173/",
|
|
"skipFiles": ["<node_internals>/**", "node_modules/**"],
|
|
"webRoot": "${workspaceFolder}/src/Umbraco.Web.UI.Client",
|
|
"presentation": {
|
|
"group": "2"
|
|
}
|
|
},
|
|
{
|
|
// Use IntelliSense to find out which attributes exist for C# debugging
|
|
// Use hover for the description of the existing attributes
|
|
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
|
|
"name": ".NET Core Launch (web)",
|
|
"type": "coreclr",
|
|
"request": "launch",
|
|
"program": "dotnet",
|
|
"args": ["run"],
|
|
"cwd": "${workspaceFolder}/src/Umbraco.Web.UI",
|
|
"stopAtEntry": false,
|
|
"requireExactSource": false,
|
|
"postDebugTask": "kill-umbraco-web-ui",
|
|
// Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
|
|
"serverReadyAction": {
|
|
"action": "openExternally",
|
|
"pattern": "\\\\bNow listening on:\\\\s+(https?://\\\\S+)"
|
|
},
|
|
"env": {
|
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
|
},
|
|
"sourceFileMap": {
|
|
"/Views": "${workspaceFolder}/Umbraco.Web.UI/Views"
|
|
},
|
|
"presentation": {
|
|
"group": "3"
|
|
}
|
|
},
|
|
{
|
|
"name": ".NET Core Attach",
|
|
"type": "coreclr",
|
|
"request": "attach",
|
|
"processId": "${command:pickProcess}",
|
|
"presentation": {
|
|
"group": "3"
|
|
}
|
|
},
|
|
{
|
|
"name": ".NET Core Serve with External Auth (web)",
|
|
"type": "coreclr",
|
|
"request": "launch",
|
|
"program": "dotnet",
|
|
"args": ["run"],
|
|
"cwd": "${workspaceFolder}/src/Umbraco.Web.UI",
|
|
"stopAtEntry": false,
|
|
"requireExactSource": false,
|
|
"checkForDevCert": true,
|
|
"postDebugTask": "kill-umbraco-web-ui",
|
|
"env": {
|
|
"ASPNETCORE_ENVIRONMENT": "Development",
|
|
"ASPNETCORE_URLS": "https://localhost:44339",
|
|
"UMBRACO__CMS__SECURITY__BACKOFFICEHOST": "http://localhost:5173",
|
|
"UMBRACO__CMS__SECURITY__AUTHORIZECALLBACKPATHNAME": "/oauth_complete",
|
|
"UMBRACO__CMS__SECURITY__AUTHORIZECALLBACKLOGOUTPATHNAME": "/logout",
|
|
"UMBRACO__CMS__SECURITY__AUTHORIZECALLBACKERRORPATHNAME": "/error"
|
|
},
|
|
"sourceFileMap": {
|
|
"/Views": "${workspaceFolder}/Umbraco.Web.UI/Views"
|
|
},
|
|
"presentation": {
|
|
"group": "3"
|
|
}
|
|
}
|
|
],
|
|
"inputs": [
|
|
{
|
|
"id": "AskForMockServer",
|
|
"type": "promptString",
|
|
"description": "Use Mock Service Worker (MSW) for Backoffice API calls (off requires a running server)?",
|
|
"default": "off"
|
|
}
|
|
]
|
|
}
|