123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- /**
- * Copyright (c) 2011-2020, JGraph Ltd
- */
- async function handleRequest(request) {
- let requestURL = new URL(request.url)
- let host = requestURL.host
- let sub = host;
- let path = requestURL.pathname
-
- if (host != null)
- {
- let parts = host.split('.')
- sub = parts[0]
- }
- let hostRedirectMap = redirectMap.get(sub)
-
- if (hostRedirectMap)
- {
- //Match full path then reduce one level at a time
- let redirect, notUsedPath = '', done = false
-
- do
- {
- redirect = hostRedirectMap.get(path) || hostRedirectMap.get(path + '/');
-
- if (redirect)
- {
- //Complete the URL
- if (redirect.startsWith('/'))
- {
- redirect = requestURL.protocol + '//' + host + redirect;
- }
-
- return Response.redirect(redirect + notUsedPath, 301)
- }
- else
- {
- if (path.startsWith('/label') || path.startsWith('/rest') || path.startsWith('/login.action'))
- {
- // blah
- }
- else
- {
- let msg = encodeURIComponent('redirect-worker-404-' + requestURL);
- let url = 'https://log.diagrams.net/' + msg;
- fetch(url);
- }
- let lastSlash = path.lastIndexOf('/');
-
- if (lastSlash >= 0)
- {
- notUsedPath = path.substr(lastSlash) + notUsedPath;
- path = path.substr(0, lastSlash);
- }
- else
- {
- done = true
- }
- }
- } while (!done)
- }
- // If not in the map, return 404
- return new Response('NOT_FOUND', { status: 404 });
- }
- addEventListener('fetch', async event => {
- event.respondWith(handleRequest(event.request))
- })
- const redirectMap = new Map([
- ['about', new Map([
- ['/drawio-desktop-10-7-5-release', 'https://github.com/jgraph/drawio-desktop/releases/tag/v10.7.5'],
- ['/insert-from-text-now-supports-plantuml', '/use-plantuml-in-draw-io'],
- ['/integrate-draw-io/', '/integrations-ecosystem/'],
- ['/new-edge-styles/', '/connector-styles-and-animations-in-draw-io/'],
- ['/publish-diagrams-to-github/', '/github-support/'],
- ['/prefer-draw-io-in-an-atlassian-style/', '/pick-your-favorite-draw-io-theme-kennedy-atlas-dark-or-minimal/'],
- ['/drawio-desktop-10-7-5-release', 'https://github.com/jgraph/drawio-desktop/releases/tag/v10.7.5'],
- ['/insert-from-text-now-supports-plantuml', '/use-plantuml-in-draw-io'],
- ['/integrate-draw-io/', '/integrations-ecosystem/'],
- ['/new-edge-styles/', '/connector-styles-and-animations-in-draw-io/'],
- ['/publish-diagrams-to-github/', '/github-support/'],
- ['/prefer-draw-io-in-an-atlassian-style/', '/pick-your-favorite-draw-io-theme-kennedy-atlas-dark-or-minimal/'],
- ['/integrations/confluence-integration-2/', 'https://www.diagrams.net/integrations.html'],
- ['/integrations/jira-integration/', 'https://www.diagrams.net/integrations.html'],
- ['/integrations/', 'https://www.diagrams.net/integrations.html'],
- ['/features/examples/', 'https://drawio-app.com/'],
- ['/features/training-material/', 'https://drawio-app.com/tutorials/'],
- ['/features/', 'https://www.diagrams.net/'],
- ['/integrations-ecosystem/', 'https://www.diagrams.net/integrations'],
- ['/multiple-pages-per-diagram/', 'https://www.diagrams.net/blog/multiple-page-diagrams'],
- ['/drawio-data-protection/', 'https://www.diagrams.net/blog/data-protection'],
- ['/use-draw-io-offline/', 'https://www.diagrams.net/blog/diagrams-offline'],
- ['/use-your-own-fonts-in-draw-io/', 'https://www.diagrams.net/blog/external-fonts'],
- ['/4-ways-to-connect-shapes/', 'https://www.diagrams.net/blog/connect-shapes'],
- ['/export-cloudockit-architecture-to-drawio/', 'https://www.diagrams.net/blog/cloudockit-to-drawio'],
- ['/google-drive-connector-for-confluence-cloud/', 'https://www.diagrams.net/'],
- ['/document-your-aws-architecture-with-cloudcraft-and-draw-io/', 'https://www.diagrams.net/blog/drawio-aws-cloudcraft'],
- ['/use-draw-io-diagrams-in-google-docs/', 'https://www.diagrams.net/blog/diagrams-google-docs'],
- ['/improved-import/', 'https://www.diagrams.net/blog/import-formats'],
- ['/incremental-find-plugin/', 'https://www.diagrams.net/doc/faq/find-shapes'],
- ['/sidebar-click/', 'https://www.diagrams.net/blog/quick-add-shapes'],
- ['/find-plugin-update/', 'https://www.diagrams.net/doc/faq/find-shapes'],
- ['/how-to-quickly-remove-sensitive-information-from-draw-io-diagrams/', 'https://www.diagrams.net/doc/faq/anonymize-plugin'],
- ['/draw-io-privacy-and-google-analytics/', 'https://www.diagrams.net/blog/google-analytics'],
- ['/share-diagrams-with-draw-io/', 'https://www.diagrams.net/blog/online-diagram-viewer'],
- ['/publish-link-and-embed-html/', 'https://www.diagrams.net/blog/publish-link'],
- ['/public-google-files/', 'https://www.diagrams.net/blog/share-diagrams-via-google'],
- ['/export-diagrams-as-urls/', 'https://www.diagrams.net/blog/export-url'],
- ['/using-draw-io-diagrams-in-wordpress/', 'https://www.diagrams.net/blog/export-svg'],
- ['/insert-from-text-now-supports-lists-and-graphs/', 'https://www.diagrams.net/blog/insert-from-text'],
- ['/altdrop/', 'https://www.diagrams.net/blog/shortcut-overlay-shapes'],
- ['/animation-and-automatic-layout-explore-complex-diagrams/', 'https://www.diagrams.net/doc/faq/explore-plugin'],
- ['/google-team-drives-support/', 'https://www.diagrams.net/blog/google-shared-drives'],
- ['/30k-reviews/', 'https://www.diagrams.net'],
- ['/external-fonts-in-draw-io/', 'https://www.diagrams.net/blog/external-fonts'],
- ['/analysing-vulnerabilities-with-threat-modelling-in-draw-io/', 'https://www.diagrams.net/blog/threat-modelling'],
- ['/fosdem2020-sponsor/', 'https://www.diagrams.net/blog/fosdem-sponsor'],
- ['/google-docs-add-on-now-supports-high-resolution-images/', 'https://www.diagrams.net/blog/high-resolution-images-google-docs'],
- ['/sql-plugin/', 'https://www.diagrams.net/blog/insert-sql'],
- ['/properties-plugin/', 'https://www.diagrams.net/doc/faq/properties-plugin'],
- ['/number-plugin/', 'https://www.diagrams.net/doc/faq/plugins'],
- ['/40k-reviews/', 'https://www.diagrams.net'],
- ['/new-veeam-stencil-set/', 'https://www.diagrams.net/blog/veeam-stencils'],
- ['/new-github-repository/', 'https://www.diagrams.net/blog/example-diagrams-github'],
- ['/updates-to-draw-io-desktop/', 'https://www.diagrams.net/blog/desktop-updates'],
- ['/simplified-tags-plugin/', 'https://www.diagrams.net/doc/faq/tags-plugin'],
- ['/github-support/', 'https://www.diagrams.net/blog/github-support'],
- ['/support-for-your-language-in-draw-io/', 'https://www.diagrams.net/blog/translate-drawio'],
- ['/translate-drawio/', 'https://www.diagrams.net/blog/translate-drawio'],
- ['/altshiftcursor/', 'https://www.diagrams.net/blog/shortcut-clone-connect'],
- ['/altshiftselect-now-removes-selected-cells%ef%bb%bf/', 'https://www.diagrams.net/blog/shortcut-deselect-shapes'],
- ['/draw-io-diagrams-for-confluence/', 'https://www.diagrams.net/integrations'],
- ['/scratchpad-in-chrome-app/', 'https://www.diagrams.net/blog/drawio-chrome-app'],
- ['/find-and-tags/', 'https://www.diagrams.net/doc/faq/find-shapes'],
- ['/disable-recursive-resize/', 'https://www.diagrams.net/blog/disable-resize-children'],
- ['/placeholder-scope/', 'https://www.diagrams.net/blog/placeholder-scope'],
- ['/scissors-tool/', 'https://www.diagrams.net/blog/shortcut-move-area'],
- ['/shiftdelete-in-toolbar-now-deletes-cells-with-connections%ef%bb%bf/', 'https://www.diagrams.net/blog/shortcut-shift-delete'],
- ['/snap-to-point/', 'https://www.diagrams.net/blog/snap-to-point'],
- ['/features/examples/', 'https://drawio-app.com/'],
- ['/features/training-material/', 'https://drawio-app.com/tutorials/'],
- ['/terms-conditions/', 'https://seibert-media.com/general-terms/'],
- ['/support/', 'https://github.com/jgraph/drawio/wiki/Getting-Support'],
- ['/about-us/', 'https://www.diagrams.net/about.html'],
- ['/', 'https://drawio-app.com']
- ])],
- ['support', new Map([
- ['/label', 'https://127.0.0.1'],
- ['/rest', 'https://127.0.0.1'],
- ['/display/DFCS/draw.io+for+Confluence+Server', 'https://drawio-app.com'],
- ['/display/DO/Exporting+Files', 'https://desk.draw.io/a/solutions/articles/16000067785'],
- ['/display/DO/Online+Support', 'https://github.com/jgraph/drawio/wiki/Getting-Support'],
- ['/display/DO', 'https://github.com/jgraph/drawio/wiki/Getting-Support'],
- ['/display/DAFGD/draw.io+Add-on+for+Google+Docs', 'https://www.diagrams.net/blog/diagrams-google-docs.html'],
- ['/x/LYAk', 'https://seibert.biz/atlassianeula'],
- ['/display/DOB/2016/04/28/UML+State+Diagrams+with+draw.io', 'https://drawio-app.com/uml-state-diagrams-with-draw-io/'],
- ['/display/do/2015/01/08/gliffy+and+lucidchart+importing', 'https://desk.draw.io/support/solutions/articles/16000064013-mass-import-gliffy-diagrams-to-draw-io-in-confluence-server'],
- ['/display/DFCS/draw.io+for+Confluence+and+JIRA+support+terms+and+Service+Level+Agreement',
- 'https://marketplace.atlassian.com/apps/1210933/draw-io-diagrams-for-confluence?hosting=server&tab=support'],
- ['/', 'https://github.com/jgraph/drawio/wiki/Getting-Support']
- ])],
- ['blog', new Map([
- ['/', 'https://www.diagrams.net/blog']
- ])],
- ['download', new Map([
- ['/', 'https://github.com/jgraph/drawio-desktop/releases/latest']
- ])],
- ['get', new Map([
- ['/', 'https://github.com/jgraph/drawio-desktop/releases/latest']
- ])],
- ['docsaddon', new Map([
- ['/', 'https://gsuite.google.com/marketplace/app/drawio_viewer_for_docs/224440279306']
- ])],
- ['gsuite', new Map([
- ['/', 'https://gsuite.google.com/marketplace/app/drawio_diagrams/671128082532']
- ])],
- ['office', new Map([
- ['/', 'https://appsource.microsoft.com/product/office/wa200000113']
- ])],
- ['slidesaddon', new Map([
- ['/', 'https://gsuite.google.com/marketplace/app/drawio_diagrams_for_slides/588283048931']
- ])],
- ['sheetsaddon', new Map([
- ['/', 'https://gsuite.google.com/marketplace/app/drawio_diagrams_for_sheets/948903782998']
- ])],
- ['doc', new Map([
- ['/i18n', 'https://docs.google.com/spreadsheets/d/1FoYdyEraEQuWofzbYCDPKN7EdKgS_2ZrsDrOA8scgwQ'],
- ['/', 'https://www.diagrams.net/doc/']
- ])],
- ['app', new Map([
- ['/', 'https://app.diagrams.net']
- ])],
- ['new', new Map([
- ['/', 'https://app.diagrams.net/?splash=0']
- ])]
- ])
|