@civilization/dsh-drawio 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/lib/client.js +124 -30
- package/package.json +2 -4
- package/src/client/index.tsx +135 -30
- package/src/index.js +64 -0
- package/vendor/drawio/js/PreConfig.js +8 -2
- package/vendor/drawio/js/plantuml/drawio-plantuml.min.js +353 -0
- package/vendor/drawio/service-worker.js +7 -947
|
@@ -1,948 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* cache name and __WB_REVISION__ cache keys (so an existing Workbox-populated
|
|
9
|
-
* cache is adopted in place and only changed files are re-fetched), cache-first
|
|
10
|
-
* fetch with all query parameters ignored, directoryIndex/cleanURLs URL
|
|
11
|
-
* variations, stale-entry cleanup on activate and skipWaiting. LAZY_MANIFEST
|
|
12
|
-
* entries (language files) use the same keys but are cached on first use
|
|
13
|
-
* instead of at install time; installs refresh the lazy entries the client
|
|
14
|
-
* already has, and offline misses fall back to a stale revision and then to
|
|
15
|
-
* the precached LAZY_FALLBACK. Revisions are
|
|
16
|
-
* the file's MD5; .html entries append the release version so documents are
|
|
17
|
-
* re-fetched once per release (a cached response pins the HTTP headers it was
|
|
18
|
-
* fetched with, e.g. the CSP, which a header-only change never invalidates).
|
|
19
|
-
* Cache keys resolve against the registration scope, network fetches against
|
|
20
|
-
* the script's own directory: registered as stable/service-worker.js with
|
|
21
|
-
* scope '/', this worker fetches via /stable/ and serves unprefixed.
|
|
22
|
-
*/
|
|
23
|
-
'use strict';
|
|
24
|
-
self.skipWaiting();
|
|
25
|
-
|
|
26
|
-
var MANIFEST = [
|
|
27
|
-
{"url":"js/bootstrap.js","revision":"4ead21aa3d21115074a854b492b2e7fd"},
|
|
28
|
-
{"url":"js/main.js","revision":"a8d40469d3d72ab4b11059362f3dd825"},
|
|
29
|
-
{"url":"js/app.min.js","revision":"e47a1d2de336848d1cf80bf3c13a382f"},
|
|
30
|
-
{"url":"js/extensions.min.js","revision":"74cc27055b3ad0b65a654cbdd69edd48"},
|
|
31
|
-
{"url":"js/plantuml/drawio-plantuml.min.js","revision":"60a94e61ef8dba217516092af13e8b7b"},
|
|
32
|
-
{"url":"js/orgchart.min.js","revision":"619d8c4dab47b81868916df31f55478b"},
|
|
33
|
-
{"url":"js/stencils.min.js","revision":"8350bc2dfb9cce00ad8c5cb4137ea3af"},
|
|
34
|
-
{"url":"js/shapes-14-6-5.min.js","revision":"2dd5884f665e3a61f789d75eab51fd21"},
|
|
35
|
-
{"url":"js/math-print.js","revision":"c96445bdae9d555a3a6de81e16ccd6aa"},
|
|
36
|
-
{"url":"index.html","revision":"9de11c65ec13b24c73ace7042bc529cc-31.4.5"},
|
|
37
|
-
{"url":"open.html","revision":"d71816b3b00e769fc6019fcdd6921662-31.4.5"},
|
|
38
|
-
{"url":"shortcuts.svg","revision":"e6e8b6ca4cdf380eb5908925fadda599"},
|
|
39
|
-
{"url":"styles/fonts/ArchitectsDaughter-Regular.ttf","revision":"31c2153c0530e32553b31a49b3d70736"},
|
|
40
|
-
{"url":"styles/grapheditor.css","revision":"b7a9b0ba308f6db1dc9d195531e820ab"},
|
|
41
|
-
{"url":"styles/high-contrast.css","revision":"0c0219b1016c8bd6bbf859cfd53b5058"},
|
|
42
|
-
{"url":"js/dropbox/Dropbox-sdk.min.js","revision":"4b9842892aa37b156db0a8364b7a83b0"},
|
|
43
|
-
{"url":"js/onedrive/OneDrive.js","revision":"e863f5e6833892f22492211663e3efe9"},
|
|
44
|
-
{"url":"js/viewer-static.min.js","revision":"4b52aeaf150609f250edac82d633fd71"},
|
|
45
|
-
{"url":"connect/jira/editor-1-3-3.html","revision":"41dc8af9576b47f359cff19fff7a41c2-31.4.5"},
|
|
46
|
-
{"url":"connect/jira/viewerPanel-1-3-12.html","revision":"4836f5e4308abe57830e441518364f23-31.4.5"},
|
|
47
|
-
{"url":"connect/jira/viewerPanel2.html","revision":"0dd1ee1343a46b5c03aedbc587450b84-31.4.5"},
|
|
48
|
-
{"url":"connect/jira/fullScreenViewer-1-3-3.html","revision":"abed474e47c0c41a5ad2366b4828f77a-31.4.5"},
|
|
49
|
-
{"url":"connect/jira/viewerPanel.js","revision":"85011efa68d638da560871ee2ab3a6fe"},
|
|
50
|
-
{"url":"connect/jira/spinner.gif","revision":"7d857ab9d86123e93d74d48e958fe743"},
|
|
51
|
-
{"url":"connect/jira/editor.js","revision":"6264f470f244aec4b62035bbad03eb5e"},
|
|
52
|
-
{"url":"connect/jira/fullscreen-viewer-init.js","revision":"07043c1ee868dd425f7876da94bbc307"},
|
|
53
|
-
{"url":"connect/jira/fullscreen-viewer.js","revision":"a6be96b8ddc5a25196925713cf34d571"},
|
|
54
|
-
{"url":"plugins/connectJira.js","revision":"d220cad2edf0d6b161505fe12ae3eaa6"},
|
|
55
|
-
{"url":"plugins/cConf-comments.js","revision":"faaee24081d7b0fb9af0add3171feaac"},
|
|
56
|
-
{"url":"plugins/cConf-1-4-8.js","revision":"3b97d4ae77858b0e90529bd6319bc7de"},
|
|
57
|
-
{"url":"connect/confluence/connectUtils-1-4-8.js","revision":"bbeb82e0960c92e105ae3da4d39f8123"},
|
|
58
|
-
{"url":"connect/new_common/cac.js","revision":"b52c73de9d22b867a036ad50c6bfdca2"},
|
|
59
|
-
{"url":"connect/gdrive_common/gac.js","revision":"c66fdc50ec87002a502cb0779b73a692"},
|
|
60
|
-
{"url":"connect/onedrive_common/ac.js","revision":"1264ba8705eff0d1337701e5ae962366"},
|
|
61
|
-
{"url":"connect/confluence/viewer-init.js","revision":"c5e51e32ac74414d8d518af83ee2781f"},
|
|
62
|
-
{"url":"connect/confluence/viewer.js","revision":"092c424361f3c34559cafeafd64407a6"},
|
|
63
|
-
{"url":"connect/confluence/viewer-1-4-42.html","revision":"69c1bca25fd4889bf832e8441c972268-31.4.5"},
|
|
64
|
-
{"url":"connect/confluence/macroEditor-1-4-8.html","revision":"4ad77ae3f08c19eddac932b2fa8c7068-31.4.5"},
|
|
65
|
-
{"url":"connect/confluence/includeDiagram-1-4-8.js","revision":"c2bf5b089b99006177ca184d65a4a25e"},
|
|
66
|
-
{"url":"connect/confluence/includeDiagram.html","revision":"01b04b3f54f1e2e63fcf1df033d24519-31.4.5"},
|
|
67
|
-
{"url":"connect/confluence/macro-editor.js","revision":"b9000d6c20f30e4068f83bd0b56965ca"},
|
|
68
|
-
{"url":"math4/es5/ui/safe.js","revision":"70818a3a0b12f623d08897c6db834920"},
|
|
69
|
-
{"url":"math4/es5/core.js","revision":"dc3ca1e12b086e5ab44e588a7cb6ebb3"},
|
|
70
|
-
{"url":"math4/es5/input/tex/extensions/bbm.js","revision":"37c50bc52184b8c42a7eb1a298f41fc7"},
|
|
71
|
-
{"url":"math4/es5/input/tex/extensions/html.js","revision":"1dbf459284a356d3dd798b55d50338e5"},
|
|
72
|
-
{"url":"math4/es5/input/tex/extensions/extpfeil.js","revision":"de942104a37fc29776ca6dd92e058fea"},
|
|
73
|
-
{"url":"math4/es5/input/tex/extensions/action.js","revision":"14b596f960d5ad23f0261172a0d68442"},
|
|
74
|
-
{"url":"math4/es5/input/tex/extensions/boldsymbol.js","revision":"6ec450a1a985a675a707dd2bcb3f28b9"},
|
|
75
|
-
{"url":"math4/es5/input/tex/extensions/cases.js","revision":"a8d24f5780531e41ee7ff886afbe43b6"},
|
|
76
|
-
{"url":"math4/es5/input/tex/extensions/colortbl.js","revision":"aafd1acee14275da66b92133a8964380"},
|
|
77
|
-
{"url":"math4/es5/input/tex/extensions/verb.js","revision":"ab72d9a4a1eb7cb362102f116c616267"},
|
|
78
|
-
{"url":"math4/es5/input/tex/extensions/unicode.js","revision":"f160a925b70b13efc578c26efca11109"},
|
|
79
|
-
{"url":"math4/es5/input/tex/extensions/cancel.js","revision":"8700913fce2fff59eeee7210d0601277"},
|
|
80
|
-
{"url":"math4/es5/input/tex/extensions/enclose.js","revision":"8e5480f5e500cbe6f1386c15fca5d19d"},
|
|
81
|
-
{"url":"math4/es5/input/tex/extensions/units.js","revision":"bcef51b542b655a559a0983f86e97f04"},
|
|
82
|
-
{"url":"math4/es5/input/tex/extensions/color.js","revision":"e1f5ef972381258c026e9cc353091e59"},
|
|
83
|
-
{"url":"math4/es5/input/tex/extensions/mathtools.js","revision":"6c151738889bf646095dcdce49b470c8"},
|
|
84
|
-
{"url":"math4/es5/input/tex/extensions/begingroup.js","revision":"f63f1f305c8bd983cf30a23a987309b2"},
|
|
85
|
-
{"url":"math4/es5/input/tex/extensions/braket.js","revision":"2cc752907a81288ad6a20a7529c6e444"},
|
|
86
|
-
{"url":"math4/es5/input/tex/extensions/dsfont.js","revision":"558cff16e8e6b40b17c6c78d04d18f41"},
|
|
87
|
-
{"url":"math4/es5/input/tex/extensions/bbox.js","revision":"1bd2f431508c18e51de187ca585f4e8c"},
|
|
88
|
-
{"url":"math4/es5/input/tex/extensions/amscd.js","revision":"2b299b847a50a8fe2fba3fda4e219e2e"},
|
|
89
|
-
{"url":"math4/es5/input/tex/extensions/textcomp.js","revision":"779304208de3326afe079803dd63474b"},
|
|
90
|
-
{"url":"math4/es5/input/tex/extensions/bussproofs.js","revision":"2a012160a34e1978ee2729f7bc6bfb54"},
|
|
91
|
-
{"url":"math4/es5/input/tex/extensions/bboldx.js","revision":"d7d84f77723ba8e319a06b56a7be6e56"},
|
|
92
|
-
{"url":"math4/es5/input/tex/extensions/physics.js","revision":"74779271dfe8469bbff50a7933ed894d"},
|
|
93
|
-
{"url":"math4/es5/input/tex/extensions/centernot.js","revision":"981ae6f38a71e0ba263a81b30e2938bc"},
|
|
94
|
-
{"url":"math4/es5/input/tex/extensions/gensymb.js","revision":"d2617a88f182bf137625c409cfb3a0a9"},
|
|
95
|
-
{"url":"math4/es5/input/tex/extensions/upgreek.js","revision":"6913a922c142b97e8405f6aab8b6a305"},
|
|
96
|
-
{"url":"math4/es5/input/tex/extensions/empheq.js","revision":"28f0874172a1c7a2289d6f8296437d2e"},
|
|
97
|
-
{"url":"math4/es5/input/tex/extensions/mhchem.js","revision":"4579e53fa894be9649c01b767e3a8b36"},
|
|
98
|
-
{"url":"math4/es5/input/asciimath.js","revision":"60375c22b376d0836822aced7c94f0fc"},
|
|
99
|
-
{"url":"math4/es5/input/tex.js","revision":"6a47d816eb619ea7bcadaab6c0b79035"},
|
|
100
|
-
{"url":"math4/es5/startup.js","revision":"7cc144ac8a13bc4d9176e830bd1f93de"},
|
|
101
|
-
{"url":"math4/es5/output/svg.js","revision":"6039da389b82c41a2d6ea6e5f819053f"},
|
|
102
|
-
{"url":"math4/es5/fonts/mathjax-bbm-font-extension/svg.js","revision":"55bd748eb7fb683e0dcb7992ae8a9a78"},
|
|
103
|
-
{"url":"math4/es5/fonts/mathjax-tex-font/svg.js","revision":"dc6949cf018c9e909c5a77e38a72e454"},
|
|
104
|
-
{"url":"math4/es5/fonts/mathjax-bboldx-font-extension/svg.js","revision":"9a4ce996090d4b84adaec560859c67be"},
|
|
105
|
-
{"url":"math4/es5/fonts/mathjax-dsfont-font-extension/svg.js","revision":"dec2c6790c441e2a6843f6c11f5b47db"},
|
|
106
|
-
{"url":"math4/es5/fonts/mathjax-mhchem-font-extension/svg.js","revision":"3e8dd442c15bc792d3718e93cf2e6e4a"},
|
|
107
|
-
{"url":"resources/dia.txt","revision":"a6db51215f4126c312261f55cdbf42ac"},
|
|
108
|
-
{"url":"favicon.ico","revision":"b2bf17349e4b50ce4ba311f079f8bf7d"},
|
|
109
|
-
{"url":"images/manifest.json","revision":"840dccdf2df72f46a63fb3b32ab6100e"},
|
|
110
|
-
{"url":"images/logo.png","revision":"e4e0d092abdb1e668b5ec41a7fe0713c"},
|
|
111
|
-
{"url":"images/drawlogo.svg","revision":"4bf4d14ebcf072d8bd4c5a1c89e88fc6"},
|
|
112
|
-
{"url":"images/drawlogo48.png","revision":"8b13428373aca67b895364d025f42417"},
|
|
113
|
-
{"url":"images/drawlogo-gray.svg","revision":"0aabacbc0873816e1e09e4736ae44c7d"},
|
|
114
|
-
{"url":"images/drawlogo-text-bottom.svg","revision":"f6c438823ab31f290940bd4feb8dd9c2"},
|
|
115
|
-
{"url":"images/logo-flat-small.png","revision":"4b178e59ff499d6dd1894fc498b59877"},
|
|
116
|
-
{"url":"images/apple-touch-icon.png","revision":"732c29e21332a926318a7005d21ec450"},
|
|
117
|
-
{"url":"images/icon-192-maskable.png","revision":"47e006d0ce4a35eb5beaa97f0c2bfed0"},
|
|
118
|
-
{"url":"images/icon-192.png","revision":"d022403d52435d76afec82c4e24a17ef"},
|
|
119
|
-
{"url":"images/icon-512-maskable.png","revision":"cf152feeb01fb21f3148a71a3540266e"},
|
|
120
|
-
{"url":"images/icon-512.png","revision":"a3a0df7e7a385244b74073f81ecc45de"},
|
|
121
|
-
{"url":"images/delete.png","revision":"5f2350f2fd20f1a229637aed32ed8f29"},
|
|
122
|
-
{"url":"images/droptarget.png","revision":"bbf7f563fb6784de1ce96f329519b043"},
|
|
123
|
-
{"url":"images/logo-flat.png","revision":"038070ab43aee6e54a791211859fc67b"},
|
|
124
|
-
{"url":"images/google-drive-logo.svg","revision":"5d9f2f5bbc7dcc252730a0072bb23059"},
|
|
125
|
-
{"url":"images/onedrive-logo.svg","revision":"3645b344ec0634c1290dd58d7dc87b97"},
|
|
126
|
-
{"url":"images/dropbox-logo.svg","revision":"e6be408c77cf9c82d41ac64fa854280a"},
|
|
127
|
-
{"url":"images/github-logo.svg","revision":"a1a999b69a275eac0cb918360ac05ae1"},
|
|
128
|
-
{"url":"images/gitlab-logo.svg","revision":"0faea8c818899e58533e153c44b10517"},
|
|
129
|
-
{"url":"images/trello-logo.svg","revision":"006fd0d7d70d7e95dc691674cb12e044"},
|
|
130
|
-
{"url":"images/osa_drive-harddisk.png","revision":"b954e1ae772087c5b4c6ae797e1f9649"},
|
|
131
|
-
{"url":"images/osa_database.png","revision":"c350d9d9b95f37b6cfe798b40ede5fb0"},
|
|
132
|
-
{"url":"images/google-drive-logo-white.svg","revision":"f329d8b1be7778515a85b93fc35d9f26"},
|
|
133
|
-
{"url":"images/dropbox-logo-white.svg","revision":"4ea8299ac3bc31a16f199ee3aec223bf"},
|
|
134
|
-
{"url":"images/onedrive-logo-white.svg","revision":"b3602fa0fc947009cff3f33a581cff4d"},
|
|
135
|
-
{"url":"images/github-logo-white.svg","revision":"537b1127b3ca0f95b45782d1304fb77a"},
|
|
136
|
-
{"url":"images/gitlab-logo-white.svg","revision":"5fede9ac2f394c716b8c23e3fddc3910"},
|
|
137
|
-
{"url":"images/trello-logo-white-orange.svg","revision":"e2a0a52ba3766682f138138d10a75eb5"},
|
|
138
|
-
{"url":"images/logo-confluence.png","revision":"ed1e55d44ae5eba8f999aba2c93e8331"},
|
|
139
|
-
{"url":"images/logo-jira.png","revision":"f8d460555a0d1f87cfd901e940666629"},
|
|
140
|
-
{"url":"images/spin.gif","revision":"487cbb40b9ced439aa1ad914e816d773"},
|
|
141
|
-
{"url":"images/aui-wait.gif","revision":"5a474bcbd8d2f2826f03d10ea44bf60e"},
|
|
142
|
-
{"url":"mxgraph/css/common.css","revision":"8d895dc8387694c128232b13e631be39"}
|
|
143
|
-
];
|
|
144
|
-
|
|
145
|
-
// Entries cached on first use instead of at install time (language files:
|
|
146
|
-
// one request per client instead of the full set). Revisions and cache keys
|
|
147
|
-
// are derived exactly like MANIFEST entries, so entries that move between
|
|
148
|
-
// the two lists keep their cached bytes.
|
|
149
|
-
var LAZY_MANIFEST = [
|
|
150
|
-
{"url":"resources/dia_am.txt","revision":"3c3f0e355930a8d10473b736c01e5d20"},
|
|
151
|
-
{"url":"resources/dia_ar.txt","revision":"89f93e17583575ea44161417dfeccb24"},
|
|
152
|
-
{"url":"resources/dia_bg.txt","revision":"dd44170f729b93289393ea812a51c504"},
|
|
153
|
-
{"url":"resources/dia_bn.txt","revision":"af281112140b8ff3f22933ad2333602d"},
|
|
154
|
-
{"url":"resources/dia_bs.txt","revision":"5074927c9605911d8f53c6158f1cdca1"},
|
|
155
|
-
{"url":"resources/dia_ca.txt","revision":"93610c936ba3ac6ad3224ca33148c73f"},
|
|
156
|
-
{"url":"resources/dia_cs.txt","revision":"ff1f288746872bb82d6b6cc5903408af"},
|
|
157
|
-
{"url":"resources/dia_da.txt","revision":"acbb83efb295e19dbeaa142eb585894d"},
|
|
158
|
-
{"url":"resources/dia_de.txt","revision":"c9d2d84bce71f8f1fe2629f801aedc19"},
|
|
159
|
-
{"url":"resources/dia_el.txt","revision":"cd6a18039a16f6c96a43a8c8edeed9ef"},
|
|
160
|
-
{"url":"resources/dia_eo.txt","revision":"a2cc84b1f9c43745eb440525b258e354"},
|
|
161
|
-
{"url":"resources/dia_es.txt","revision":"02c8b30284ab1b362dde5a5d8431e3f4"},
|
|
162
|
-
{"url":"resources/dia_et.txt","revision":"c401c2ea1c9109b205b9c781f0affacd"},
|
|
163
|
-
{"url":"resources/dia_eu.txt","revision":"8fa6728d6d0417d1285c8d104fd73c19"},
|
|
164
|
-
{"url":"resources/dia_fa.txt","revision":"bf48314fa420155d833fa3fecc576428"},
|
|
165
|
-
{"url":"resources/dia_fi.txt","revision":"6d4bc68e31b5a7d2e689574e4eaf0578"},
|
|
166
|
-
{"url":"resources/dia_fil.txt","revision":"912c405a674ac27dd0b43db859caa15c"},
|
|
167
|
-
{"url":"resources/dia_fr.txt","revision":"b35979953c989102d4aaef69421652a6"},
|
|
168
|
-
{"url":"resources/dia_gl.txt","revision":"87b5ddb972d267f97822d259d80a3459"},
|
|
169
|
-
{"url":"resources/dia_gu.txt","revision":"65356701ea68011b396597cc54752db1"},
|
|
170
|
-
{"url":"resources/dia_he.txt","revision":"093fc2bf0ed810eb2417a7a65d8c2e6a"},
|
|
171
|
-
{"url":"resources/dia_hi.txt","revision":"99257ba094a90526cda10795190eb845"},
|
|
172
|
-
{"url":"resources/dia_hr.txt","revision":"2ec05c09da3f2129b65d8e0276ce8e7e"},
|
|
173
|
-
{"url":"resources/dia_hu.txt","revision":"1ac984c6ecc63d65101b4bffb55f8701"},
|
|
174
|
-
{"url":"resources/dia_i18n.txt","revision":"c2ea9905f5fd55f32d62f2bb27516342"},
|
|
175
|
-
{"url":"resources/dia_id.txt","revision":"2b1c2ea8bdc2983cb6fa06d8e7d1c64d"},
|
|
176
|
-
{"url":"resources/dia_it.txt","revision":"5d25a425b7114c93771ac3617dbf5004"},
|
|
177
|
-
{"url":"resources/dia_ja.txt","revision":"abccea300bda41e8267d34e659e1ff33"},
|
|
178
|
-
{"url":"resources/dia_kl.txt","revision":"8a6d00e7fe62ab5656d5d325dae08f0b"},
|
|
179
|
-
{"url":"resources/dia_kn.txt","revision":"95683931714acc11aff32724ccaa23d3"},
|
|
180
|
-
{"url":"resources/dia_ko.txt","revision":"bb92d735b742ad9d2acaa3623736e4ac"},
|
|
181
|
-
{"url":"resources/dia_lt.txt","revision":"a9b5f7f70614ee7ad2c0d8ffd6d7532f"},
|
|
182
|
-
{"url":"resources/dia_lv.txt","revision":"611b1b1a6ce845b4e0d46725e5f3494b"},
|
|
183
|
-
{"url":"resources/dia_ml.txt","revision":"52d1d8cb2885d1bad9031b1ed687c405"},
|
|
184
|
-
{"url":"resources/dia_mr.txt","revision":"25621a4eff20c922c5ee6a08c1ac135d"},
|
|
185
|
-
{"url":"resources/dia_ms.txt","revision":"1ffecaf2bcc3333669c087c6e6a2f97d"},
|
|
186
|
-
{"url":"resources/dia_my.txt","revision":"2a8c250231a049f2bb963b6724ee777f"},
|
|
187
|
-
{"url":"resources/dia_nl.txt","revision":"98220098c25f0aef3bdd59759ba66287"},
|
|
188
|
-
{"url":"resources/dia_no.txt","revision":"7efc54de41e45e5a103454bb8947306b"},
|
|
189
|
-
{"url":"resources/dia_pl.txt","revision":"9c2a2726702ec099321776e7d6fe3e7e"},
|
|
190
|
-
{"url":"resources/dia_pt.txt","revision":"d9f31d5e110ed761b8444b547f7735c5"},
|
|
191
|
-
{"url":"resources/dia_pt-br.txt","revision":"af8ca2b4e4422603f1d1b602eff3a752"},
|
|
192
|
-
{"url":"resources/dia_ro.txt","revision":"0c8596ddbc8b890eb16a97bbe51d3182"},
|
|
193
|
-
{"url":"resources/dia_ru.txt","revision":"5a73742c3bde9c25529e6c52f27e1a6e"},
|
|
194
|
-
{"url":"resources/dia_si.txt","revision":"c545ec3352dff05bfc8dd40e15ff1401"},
|
|
195
|
-
{"url":"resources/dia_sk.txt","revision":"428e78a3ab799d7a612d71e42dc89cee"},
|
|
196
|
-
{"url":"resources/dia_sl.txt","revision":"24f5833fdb189ef2890afcba6681bead"},
|
|
197
|
-
{"url":"resources/dia_sr.txt","revision":"14830670710887af6523734c94afd571"},
|
|
198
|
-
{"url":"resources/dia_sv.txt","revision":"8474ec83061acae7de66acf9f681fd30"},
|
|
199
|
-
{"url":"resources/dia_sw.txt","revision":"fde7e8823098747fadb056ea8e50d436"},
|
|
200
|
-
{"url":"resources/dia_ta.txt","revision":"d2bb1c3a4fe019ef812fedfe80a5ddaf"},
|
|
201
|
-
{"url":"resources/dia_te.txt","revision":"9e9bb5df397fc4d319cc7c7bac0ad43f"},
|
|
202
|
-
{"url":"resources/dia_th.txt","revision":"aff043bd33e49196b1259b16bb16440a"},
|
|
203
|
-
{"url":"resources/dia_tr.txt","revision":"2b60ff150438b3e75a5d3bd808cd3247"},
|
|
204
|
-
{"url":"resources/dia_uk.txt","revision":"7b2bc0c28f219ed81ca888c6030aeb75"},
|
|
205
|
-
{"url":"resources/dia_vi.txt","revision":"5f4cc81c06d157240a209c5139d40beb"},
|
|
206
|
-
{"url":"resources/dia_zh.txt","revision":"5af56aa7c9173c214048bfc0bca0864e"},
|
|
207
|
-
{"url":"resources/dia_zh-tw.txt","revision":"244ccfad197f1835c145e5e5cae0937e"}
|
|
208
|
-
];
|
|
209
|
-
|
|
210
|
-
// Precached URL served when a lazy entry is requested offline before it was
|
|
211
|
-
// ever cached (the English resources) - null disables the fallback.
|
|
212
|
-
var LAZY_FALLBACK = "resources/dia.txt";
|
|
213
|
-
|
|
214
|
-
// Dev-mode sources (?dev=1): network-first so edits are always fresh while
|
|
215
|
-
// online, with the cached copy (no revision) answering an offline reload.
|
|
216
|
-
// Cached only when a dev page actually requests them - production pages
|
|
217
|
-
// load the precached bundles instead and never touch these.
|
|
218
|
-
var DEV_MANIFEST = [
|
|
219
|
-
"js/PreConfig.js",
|
|
220
|
-
"js/PostConfig.js",
|
|
221
|
-
"mxgraph/mxClient.js",
|
|
222
|
-
"styles/default.xml",
|
|
223
|
-
"js/grapheditor/Actions.js",
|
|
224
|
-
"js/grapheditor/Dialogs.js",
|
|
225
|
-
"js/grapheditor/Editor.js",
|
|
226
|
-
"js/grapheditor/EditorUi.js",
|
|
227
|
-
"js/grapheditor/Format.js",
|
|
228
|
-
"js/grapheditor/Graph.js",
|
|
229
|
-
"js/grapheditor/Init.js",
|
|
230
|
-
"js/grapheditor/InlineToolbar.js",
|
|
231
|
-
"js/grapheditor/Menus.js",
|
|
232
|
-
"js/grapheditor/Shapes.js",
|
|
233
|
-
"js/grapheditor/Sidebar.js",
|
|
234
|
-
"js/grapheditor/Toolbar.js",
|
|
235
|
-
"js/diagramly/App.js",
|
|
236
|
-
"js/diagramly/ConfigEditor.js",
|
|
237
|
-
"js/diagramly/DevTools.js",
|
|
238
|
-
"js/diagramly/Devel.js",
|
|
239
|
-
"js/diagramly/Dialogs.js",
|
|
240
|
-
"js/diagramly/DiffSync.js",
|
|
241
|
-
"js/diagramly/DrawioClient.js",
|
|
242
|
-
"js/diagramly/DrawioComment.js",
|
|
243
|
-
"js/diagramly/DrawioFile.js",
|
|
244
|
-
"js/diagramly/DrawioFilePolling.js",
|
|
245
|
-
"js/diagramly/DrawioFileSync.js",
|
|
246
|
-
"js/diagramly/DrawioUser.js",
|
|
247
|
-
"js/diagramly/DriveClient.js",
|
|
248
|
-
"js/diagramly/DriveComment.js",
|
|
249
|
-
"js/diagramly/DriveFile.js",
|
|
250
|
-
"js/diagramly/DriveLibrary.js",
|
|
251
|
-
"js/diagramly/DropboxClient.js",
|
|
252
|
-
"js/diagramly/DropboxFile.js",
|
|
253
|
-
"js/diagramly/DropboxLibrary.js",
|
|
254
|
-
"js/diagramly/Editor.js",
|
|
255
|
-
"js/diagramly/EditorUi.js",
|
|
256
|
-
"js/diagramly/ElkLayout.js",
|
|
257
|
-
"js/diagramly/Embed.js",
|
|
258
|
-
"js/diagramly/EmbedFile.js",
|
|
259
|
-
"js/diagramly/Extensions.js",
|
|
260
|
-
"js/diagramly/GitHubClient.js",
|
|
261
|
-
"js/diagramly/GitHubFile.js",
|
|
262
|
-
"js/diagramly/GitHubLibrary.js",
|
|
263
|
-
"js/diagramly/GitLabClient.js",
|
|
264
|
-
"js/diagramly/GitLabFile.js",
|
|
265
|
-
"js/diagramly/GitLabLibrary.js",
|
|
266
|
-
"js/diagramly/GraphViewer.js",
|
|
267
|
-
"js/diagramly/Init.js",
|
|
268
|
-
"js/diagramly/LibavoidRouting.js",
|
|
269
|
-
"js/diagramly/LocalFile.js",
|
|
270
|
-
"js/diagramly/LocalLibrary.js",
|
|
271
|
-
"js/diagramly/Menus.js",
|
|
272
|
-
"js/diagramly/Minimal.js",
|
|
273
|
-
"js/diagramly/OneDriveClient.js",
|
|
274
|
-
"js/diagramly/OneDriveFile.js",
|
|
275
|
-
"js/diagramly/OneDriveLibrary.js",
|
|
276
|
-
"js/diagramly/P2PCollab.js",
|
|
277
|
-
"js/diagramly/Pages.js",
|
|
278
|
-
"js/diagramly/RemoteFile.js",
|
|
279
|
-
"js/diagramly/RemoteLibrary.js",
|
|
280
|
-
"js/diagramly/Settings.js",
|
|
281
|
-
"js/diagramly/Simple.js",
|
|
282
|
-
"js/diagramly/StorageFile.js",
|
|
283
|
-
"js/diagramly/StorageLibrary.js",
|
|
284
|
-
"js/diagramly/Trees.js",
|
|
285
|
-
"js/diagramly/TrelloClient.js",
|
|
286
|
-
"js/diagramly/TrelloFile.js",
|
|
287
|
-
"js/diagramly/TrelloLibrary.js",
|
|
288
|
-
"js/diagramly/UrlLibrary.js",
|
|
289
|
-
"js/diagramly/mxFreehand.js",
|
|
290
|
-
"js/diagramly/mxRuler.js",
|
|
291
|
-
"js/diagramly/sidebar/Sidebar-AWS.js",
|
|
292
|
-
"js/diagramly/sidebar/Sidebar-AWS3.js",
|
|
293
|
-
"js/diagramly/sidebar/Sidebar-AWS3D.js",
|
|
294
|
-
"js/diagramly/sidebar/Sidebar-AWS4.js",
|
|
295
|
-
"js/diagramly/sidebar/Sidebar-AWS4b.js",
|
|
296
|
-
"js/diagramly/sidebar/Sidebar-ActiveDirectory.js",
|
|
297
|
-
"js/diagramly/sidebar/Sidebar-Advanced.js",
|
|
298
|
-
"js/diagramly/sidebar/Sidebar-AlibabaCloud.js",
|
|
299
|
-
"js/diagramly/sidebar/Sidebar-AlliedTelesis.js",
|
|
300
|
-
"js/diagramly/sidebar/Sidebar-Android.js",
|
|
301
|
-
"js/diagramly/sidebar/Sidebar-ArchiMate.js",
|
|
302
|
-
"js/diagramly/sidebar/Sidebar-ArchiMate3.js",
|
|
303
|
-
"js/diagramly/sidebar/Sidebar-ArchiMate4.js",
|
|
304
|
-
"js/diagramly/sidebar/Sidebar-Arrows2.js",
|
|
305
|
-
"js/diagramly/sidebar/Sidebar-Atlassian.js",
|
|
306
|
-
"js/diagramly/sidebar/Sidebar-Atlassian2.js",
|
|
307
|
-
"js/diagramly/sidebar/Sidebar-Azure.js",
|
|
308
|
-
"js/diagramly/sidebar/Sidebar-Azure2.js",
|
|
309
|
-
"js/diagramly/sidebar/Sidebar-BPMN.js",
|
|
310
|
-
"js/diagramly/sidebar/Sidebar-Basic.js",
|
|
311
|
-
"js/diagramly/sidebar/Sidebar-Bootstrap.js",
|
|
312
|
-
"js/diagramly/sidebar/Sidebar-C4.js",
|
|
313
|
-
"js/diagramly/sidebar/Sidebar-Cabinet.js",
|
|
314
|
-
"js/diagramly/sidebar/Sidebar-Cisco.js",
|
|
315
|
-
"js/diagramly/sidebar/Sidebar-Cisco19.js",
|
|
316
|
-
"js/diagramly/sidebar/Sidebar-CiscoSafe.js",
|
|
317
|
-
"js/diagramly/sidebar/Sidebar-Citrix.js",
|
|
318
|
-
"js/diagramly/sidebar/Sidebar-Citrix2.js",
|
|
319
|
-
"js/diagramly/sidebar/Sidebar-Cumulus.js",
|
|
320
|
-
"js/diagramly/sidebar/Sidebar-DFD.js",
|
|
321
|
-
"js/diagramly/sidebar/Sidebar-Dynamics365.js",
|
|
322
|
-
"js/diagramly/sidebar/Sidebar-EIP.js",
|
|
323
|
-
"js/diagramly/sidebar/Sidebar-ER.js",
|
|
324
|
-
"js/diagramly/sidebar/Sidebar-Electrical.js",
|
|
325
|
-
"js/diagramly/sidebar/Sidebar-Floorplan.js",
|
|
326
|
-
"js/diagramly/sidebar/Sidebar-Flowchart.js",
|
|
327
|
-
"js/diagramly/sidebar/Sidebar-FluidPower.js",
|
|
328
|
-
"js/diagramly/sidebar/Sidebar-GCP.js",
|
|
329
|
-
"js/diagramly/sidebar/Sidebar-GCP2.js",
|
|
330
|
-
"js/diagramly/sidebar/Sidebar-GCP3.js",
|
|
331
|
-
"js/diagramly/sidebar/Sidebar-GCPIcons.js",
|
|
332
|
-
"js/diagramly/sidebar/Sidebar-Gmdl.js",
|
|
333
|
-
"js/diagramly/sidebar/Sidebar-IBM.js",
|
|
334
|
-
"js/diagramly/sidebar/Sidebar-IBMCloud.js",
|
|
335
|
-
"js/diagramly/sidebar/Sidebar-Infographic.js",
|
|
336
|
-
"js/diagramly/sidebar/Sidebar-Ios.js",
|
|
337
|
-
"js/diagramly/sidebar/Sidebar-Ios7.js",
|
|
338
|
-
"js/diagramly/sidebar/Sidebar-Kubernetes.js",
|
|
339
|
-
"js/diagramly/sidebar/Sidebar-LeanMapping.js",
|
|
340
|
-
"js/diagramly/sidebar/Sidebar-MSCAE.js",
|
|
341
|
-
"js/diagramly/sidebar/Sidebar-Mockup.js",
|
|
342
|
-
"js/diagramly/sidebar/Sidebar-Network.js",
|
|
343
|
-
"js/diagramly/sidebar/Sidebar-Network2.js",
|
|
344
|
-
"js/diagramly/sidebar/Sidebar-Office.js",
|
|
345
|
-
"js/diagramly/sidebar/Sidebar-OpenStack.js",
|
|
346
|
-
"js/diagramly/sidebar/Sidebar-PID.js",
|
|
347
|
-
"js/diagramly/sidebar/Sidebar-Rack.js",
|
|
348
|
-
"js/diagramly/sidebar/Sidebar-SAP.js",
|
|
349
|
-
"js/diagramly/sidebar/Sidebar-Salesforce.js",
|
|
350
|
-
"js/diagramly/sidebar/Sidebar-Signs.js",
|
|
351
|
-
"js/diagramly/sidebar/Sidebar-Sitemap.js",
|
|
352
|
-
"js/diagramly/sidebar/Sidebar-Sysml.js",
|
|
353
|
-
"js/diagramly/sidebar/Sidebar-ThreatModeling.js",
|
|
354
|
-
"js/diagramly/sidebar/Sidebar-UML25.js",
|
|
355
|
-
"js/diagramly/sidebar/Sidebar-VVD.js",
|
|
356
|
-
"js/diagramly/sidebar/Sidebar-Veeam.js",
|
|
357
|
-
"js/diagramly/sidebar/Sidebar-Veeam2.js",
|
|
358
|
-
"js/diagramly/sidebar/Sidebar-WebIcons.js",
|
|
359
|
-
"js/diagramly/sidebar/Sidebar.js",
|
|
360
|
-
"js/diagramly/util/mxAsyncCanvas.js",
|
|
361
|
-
"js/diagramly/util/mxJsCanvas.js",
|
|
362
|
-
"js/diagramly/vsdx/VsdxExport.js",
|
|
363
|
-
"js/diagramly/vsdx/bmpDecoder.js",
|
|
364
|
-
"js/diagramly/vsdx/importer.js",
|
|
365
|
-
"js/diagramly/vsdx/mxVsdxCanvas2D.js",
|
|
366
|
-
"js/diagramly/emf/emf-svg.js",
|
|
367
|
-
"js/diagramly/gif/AnimatedExport.js",
|
|
368
|
-
"js/diagramly/gif/GifEncoder.js",
|
|
369
|
-
"js/diagramly/graphml/mxGraphMlCodec.js",
|
|
370
|
-
"js/diagramly/miro/MiroImporter.js",
|
|
371
|
-
"js/cryptojs/aes.min.js",
|
|
372
|
-
"js/deflate/base64.js",
|
|
373
|
-
"js/deflate/pako.min.js",
|
|
374
|
-
"js/elk/drawio-elk.min.js",
|
|
375
|
-
"js/freehand/perfect-freehand.js",
|
|
376
|
-
"js/gliffy/drawio-gliffy.min.js",
|
|
377
|
-
"js/jszip/jszip.min.js",
|
|
378
|
-
"js/libavoid-js/libavoid-routing.js",
|
|
379
|
-
"js/libavoid-js/libavoid.min.js",
|
|
380
|
-
"js/mermaid/drawio-mermaid.min.js",
|
|
381
|
-
"js/onedrive/OneDrive.js",
|
|
382
|
-
"js/onedrive/OneDriveOrig.js",
|
|
383
|
-
"js/onedrive/mxODPicker.js",
|
|
384
|
-
"js/onedrive/mxODPickerV2.js",
|
|
385
|
-
"js/orgchart/OrgChart.Layout.min.js",
|
|
386
|
-
"js/orgchart/bridge.collections.min.js",
|
|
387
|
-
"js/orgchart/bridge.min.js",
|
|
388
|
-
"js/orgchart/mxOrgChartLayout.js",
|
|
389
|
-
"js/plantuml/drawio-plantuml.min.js",
|
|
390
|
-
"js/rough/rough.min.js",
|
|
391
|
-
"js/sanitizer/purify.min.js",
|
|
392
|
-
"js/spin/spin.min.js"
|
|
393
|
-
];
|
|
394
|
-
|
|
395
|
-
// ignoreURLParametersMatching:[/.*/] - strip every query parameter on lookup.
|
|
396
|
-
var IGNORE_ALL_PARAMS = true;
|
|
397
|
-
|
|
398
|
-
// Workbox cache name: ['workbox', 'precache-v2', registration.scope].join('-').
|
|
399
|
-
var CACHE_NAME = ['workbox', 'precache-v2', self.registration.scope]
|
|
400
|
-
.filter(function(v) { return v && v.length > 0; }).join('-');
|
|
401
|
-
|
|
402
|
-
// Cache keys and request matching resolve against the registration scope (the
|
|
403
|
-
// URLs the page requests); network fetches resolve against the script's own
|
|
404
|
-
// directory. Identical for root-registered workers - existing caches are
|
|
405
|
-
// adopted unchanged - but a registration like
|
|
406
|
-
// register('stable/service-worker.js', {scope: '/'}) fetches every entry via
|
|
407
|
-
// its /stable/ prefix while serving it for the unprefixed URL.
|
|
408
|
-
var SCOPE_BASE = self.registration.scope;
|
|
409
|
-
var FETCH_BASE = new URL('./', self.location.href).href;
|
|
410
|
-
var PREFIXED = FETCH_BASE !== SCOPE_BASE;
|
|
411
|
-
|
|
412
|
-
function swCacheKey(entry)
|
|
413
|
-
{
|
|
414
|
-
var u = new URL(entry.url, SCOPE_BASE);
|
|
415
|
-
|
|
416
|
-
if (entry.revision)
|
|
417
|
-
{
|
|
418
|
-
u.searchParams.set('__WB_REVISION__', entry.revision);
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
return u.href;
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
// Maps each precached URL (no revision) to its cache key (with revision), and
|
|
425
|
-
// each cache key to the URL it is fetched from (differs when PREFIXED).
|
|
426
|
-
var urlsToCacheKeys = new Map();
|
|
427
|
-
var cacheKeysToNetworkUrls = new Map();
|
|
428
|
-
|
|
429
|
-
MANIFEST.forEach(function(e)
|
|
430
|
-
{
|
|
431
|
-
var key = swCacheKey(e);
|
|
432
|
-
urlsToCacheKeys.set(new URL(e.url, SCOPE_BASE).href, key);
|
|
433
|
-
cacheKeysToNetworkUrls.set(key, new URL(e.url, FETCH_BASE).href);
|
|
434
|
-
});
|
|
435
|
-
|
|
436
|
-
// Lazy entries share the network-URL map so a channel-prefixed worker
|
|
437
|
-
// fills them via its own FETCH_BASE, never the other channel's URL.
|
|
438
|
-
var lazyUrlsToCacheKeys = new Map();
|
|
439
|
-
|
|
440
|
-
LAZY_MANIFEST.forEach(function(e)
|
|
441
|
-
{
|
|
442
|
-
var key = swCacheKey(e);
|
|
443
|
-
lazyUrlsToCacheKeys.set(new URL(e.url, SCOPE_BASE).href, key);
|
|
444
|
-
cacheKeysToNetworkUrls.set(key, new URL(e.url, FETCH_BASE).href);
|
|
445
|
-
});
|
|
446
|
-
|
|
447
|
-
// Dev entries are keyed by their plain URL (network-first needs no
|
|
448
|
-
// revision - the network is the source of truth while online).
|
|
449
|
-
var devUrls = new Map();
|
|
450
|
-
|
|
451
|
-
DEV_MANIFEST.forEach(function(u)
|
|
452
|
-
{
|
|
453
|
-
var key = new URL(u, SCOPE_BASE).href;
|
|
454
|
-
devUrls.set(key, key);
|
|
455
|
-
cacheKeysToNetworkUrls.set(key, new URL(u, FETCH_BASE).href);
|
|
456
|
-
});
|
|
457
|
-
|
|
458
|
-
// Mirrors Workbox generateURLVariations (exact, query-stripped, directoryIndex,
|
|
459
|
-
// cleanURLs) so a request for '/' resolves to the precached 'index.html'.
|
|
460
|
-
function* urlVariations(url)
|
|
461
|
-
{
|
|
462
|
-
var u = new URL(url, SCOPE_BASE);
|
|
463
|
-
u.hash = '';
|
|
464
|
-
yield u.href;
|
|
465
|
-
|
|
466
|
-
var noParams = new URL(u.href);
|
|
467
|
-
|
|
468
|
-
if (IGNORE_ALL_PARAMS)
|
|
469
|
-
{
|
|
470
|
-
noParams.search = '';
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
yield noParams.href;
|
|
474
|
-
|
|
475
|
-
if (noParams.pathname.endsWith('/'))
|
|
476
|
-
{
|
|
477
|
-
var dir = new URL(noParams.href);
|
|
478
|
-
dir.pathname += 'index.html';
|
|
479
|
-
yield dir.href;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
var clean = new URL(noParams.href);
|
|
483
|
-
clean.pathname += '.html';
|
|
484
|
-
yield clean.href;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
function matchIn(map, url)
|
|
488
|
-
{
|
|
489
|
-
for (var variation of urlVariations(url))
|
|
490
|
-
{
|
|
491
|
-
if (map.has(variation))
|
|
492
|
-
{
|
|
493
|
-
return map.get(variation);
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
|
|
497
|
-
return undefined;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
function matchPrecache(url)
|
|
501
|
-
{
|
|
502
|
-
return matchIn(urlsToCacheKeys, url);
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
function matchLazy(url)
|
|
506
|
-
{
|
|
507
|
-
return matchIn(lazyUrlsToCacheKeys, url);
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
function matchDev(url)
|
|
511
|
-
{
|
|
512
|
-
return matchIn(devUrls, url);
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
// The URL of a cache key without its __WB_REVISION__ parameter - identifies
|
|
516
|
-
// other (stale) revisions of the same lazy entry in the cache.
|
|
517
|
-
function baseUrl(url)
|
|
518
|
-
{
|
|
519
|
-
var u = new URL(url);
|
|
520
|
-
u.searchParams.delete('__WB_REVISION__');
|
|
521
|
-
return u.href;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
// A redirected response cannot be served for a navigation; copy it clean.
|
|
525
|
-
function copyRedirected(response)
|
|
526
|
-
{
|
|
527
|
-
return response.blob().then(function(body)
|
|
528
|
-
{
|
|
529
|
-
return new Response(body, {
|
|
530
|
-
headers: response.headers,
|
|
531
|
-
status: response.status,
|
|
532
|
-
statusText: response.statusText
|
|
533
|
-
});
|
|
534
|
-
});
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
// Caches a fetched lazy entry under its revisioned key, then drops other
|
|
538
|
-
// revisions of the same URL (kept until now as offline fallback).
|
|
539
|
-
function putLazy(cache, key, response)
|
|
540
|
-
{
|
|
541
|
-
var prepared = response.redirected ?
|
|
542
|
-
copyRedirected(response) : Promise.resolve(response);
|
|
543
|
-
|
|
544
|
-
return prepared.then(function(res)
|
|
545
|
-
{
|
|
546
|
-
return cache.put(key, res);
|
|
547
|
-
}).then(function()
|
|
548
|
-
{
|
|
549
|
-
return cache.keys(new Request(baseUrl(key)), {ignoreSearch: true});
|
|
550
|
-
}).then(function(requests)
|
|
551
|
-
{
|
|
552
|
-
return Promise.all(requests.filter(function(r)
|
|
553
|
-
{
|
|
554
|
-
return r.url != key;
|
|
555
|
-
}).map(function(r)
|
|
556
|
-
{
|
|
557
|
-
return cache.delete(r);
|
|
558
|
-
}));
|
|
559
|
-
});
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
// Fetches a lazy entry (via FETCH_BASE when prefixed) and caches it.
|
|
563
|
-
// Rejects on errors and on HTML bodies for non-document entries - the same
|
|
564
|
-
// cache-poisoning guard as the precache install.
|
|
565
|
-
function fetchLazy(cache, key)
|
|
566
|
-
{
|
|
567
|
-
var req = new Request(cacheKeysToNetworkUrls.get(key),
|
|
568
|
-
{cache: 'reload', credentials: 'same-origin'});
|
|
569
|
-
|
|
570
|
-
return fetch(req).then(function(response)
|
|
571
|
-
{
|
|
572
|
-
if (!response || response.status >= 400)
|
|
573
|
-
{
|
|
574
|
-
throw new Error('bad-lazy-response: ' + key);
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
var type = response.headers.get('Content-Type') || '';
|
|
578
|
-
var pathname = new URL(baseUrl(key)).pathname;
|
|
579
|
-
|
|
580
|
-
if (type.indexOf('text/html') >= 0 && !pathname.endsWith('.html') &&
|
|
581
|
-
!pathname.endsWith('.htm'))
|
|
582
|
-
{
|
|
583
|
-
throw new Error('bad-lazy-response: ' + key);
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
return putLazy(cache, key, response.clone()).then(function()
|
|
587
|
-
{
|
|
588
|
-
return response;
|
|
589
|
-
});
|
|
590
|
-
});
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
self.addEventListener('install', function(event)
|
|
594
|
-
{
|
|
595
|
-
event.waitUntil(caches.open(CACHE_NAME).then(function(cache)
|
|
596
|
-
{
|
|
597
|
-
return cache.keys().then(function(existing)
|
|
598
|
-
{
|
|
599
|
-
var have = new Set(existing.map(function(r) { return r.url; }));
|
|
600
|
-
var haveBases = new Set(existing.map(function(r)
|
|
601
|
-
{
|
|
602
|
-
return baseUrl(r.url);
|
|
603
|
-
}));
|
|
604
|
-
|
|
605
|
-
// Lazy entries are not downloaded at install, but entries the client
|
|
606
|
-
// already uses (cached under an older revision) are refreshed so an
|
|
607
|
-
// update keeps them current. Failures are tolerated and must never
|
|
608
|
-
// fail the atomic install - the stale revision remains in place as
|
|
609
|
-
// fallback until the next successful online use.
|
|
610
|
-
var lazy = LAZY_MANIFEST.map(function(entry)
|
|
611
|
-
{
|
|
612
|
-
var key = swCacheKey(entry);
|
|
613
|
-
|
|
614
|
-
if (have.has(key) || !haveBases.has(baseUrl(key)))
|
|
615
|
-
{
|
|
616
|
-
return Promise.resolve();
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
return fetchLazy(cache, key).then(null, function() { return null; });
|
|
620
|
-
});
|
|
621
|
-
|
|
622
|
-
return Promise.all(MANIFEST.map(function(entry)
|
|
623
|
-
{
|
|
624
|
-
var key = swCacheKey(entry);
|
|
625
|
-
|
|
626
|
-
// Same revision already cached (unchanged file) - keep it, no re-fetch.
|
|
627
|
-
if (have.has(key))
|
|
628
|
-
{
|
|
629
|
-
return Promise.resolve();
|
|
630
|
-
}
|
|
631
|
-
|
|
632
|
-
var req = new Request(new URL(entry.url, FETCH_BASE).href,
|
|
633
|
-
{cache: 'reload', credentials: 'same-origin'});
|
|
634
|
-
|
|
635
|
-
return fetch(req).then(function(response)
|
|
636
|
-
{
|
|
637
|
-
if (!response || response.status >= 400)
|
|
638
|
-
{
|
|
639
|
-
throw new Error('bad-precaching-response: ' + entry.url);
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
// An HTML body for a non-document entry is an error page with a
|
|
643
|
-
// 200 status: caching it would poison the shell until the next
|
|
644
|
-
// release, so fail the (atomic) install instead.
|
|
645
|
-
var type = response.headers.get('Content-Type') || '';
|
|
646
|
-
var pathname = new URL(entry.url, SCOPE_BASE).pathname;
|
|
647
|
-
|
|
648
|
-
if (type.indexOf('text/html') >= 0 && !pathname.endsWith('.html') &&
|
|
649
|
-
!pathname.endsWith('.htm'))
|
|
650
|
-
{
|
|
651
|
-
throw new Error('bad-precaching-response: ' + entry.url);
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
var prepared = response.redirected ?
|
|
655
|
-
copyRedirected(response) : Promise.resolve(response);
|
|
656
|
-
|
|
657
|
-
return prepared.then(function(res) { return cache.put(key, res); });
|
|
658
|
-
});
|
|
659
|
-
}).concat(lazy));
|
|
660
|
-
});
|
|
661
|
-
}));
|
|
662
|
-
});
|
|
663
|
-
|
|
664
|
-
self.addEventListener('activate', function(event)
|
|
665
|
-
{
|
|
666
|
-
var valid = new Set();
|
|
667
|
-
urlsToCacheKeys.forEach(function(key) { valid.add(key); });
|
|
668
|
-
lazyUrlsToCacheKeys.forEach(function(key) { valid.add(key); });
|
|
669
|
-
devUrls.forEach(function(key) { valid.add(key); });
|
|
670
|
-
|
|
671
|
-
event.waitUntil(caches.open(CACHE_NAME).then(function(cache)
|
|
672
|
-
{
|
|
673
|
-
return cache.keys().then(function(keys)
|
|
674
|
-
{
|
|
675
|
-
var present = new Set(keys.map(function(r) { return r.url; }));
|
|
676
|
-
|
|
677
|
-
return Promise.all(keys.map(function(request)
|
|
678
|
-
{
|
|
679
|
-
// Drop entries whose revision changed or that left the manifest.
|
|
680
|
-
if (!valid.has(request.url))
|
|
681
|
-
{
|
|
682
|
-
// A stale revision of a lazy entry survives until its
|
|
683
|
-
// replacement is cached - it is the offline fallback while the
|
|
684
|
-
// install-time refresh has not succeeded.
|
|
685
|
-
var current = lazyUrlsToCacheKeys.get(baseUrl(request.url));
|
|
686
|
-
|
|
687
|
-
if (current == null || present.has(current))
|
|
688
|
-
{
|
|
689
|
-
return cache.delete(request);
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
return Promise.resolve(false);
|
|
694
|
-
}));
|
|
695
|
-
});
|
|
696
|
-
}));
|
|
697
|
-
});
|
|
698
|
-
|
|
699
|
-
function respondPrecache(event, key)
|
|
700
|
-
{
|
|
701
|
-
return caches.open(CACHE_NAME).then(function(cache)
|
|
702
|
-
{
|
|
703
|
-
return cache.match(key).then(function(cached)
|
|
704
|
-
{
|
|
705
|
-
if (cached)
|
|
706
|
-
{
|
|
707
|
-
return cached;
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
// Cache miss on a precached URL: a prefixed worker must refill from its
|
|
711
|
-
// own fetch base, never from the unprefixed (other-channel) URL.
|
|
712
|
-
if (!PREFIXED)
|
|
713
|
-
{
|
|
714
|
-
return fetch(event.request);
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
return fetch(cacheKeysToNetworkUrls.get(key)).then(function(res)
|
|
718
|
-
{
|
|
719
|
-
if (res != null && res.ok)
|
|
720
|
-
{
|
|
721
|
-
return res;
|
|
722
|
-
}
|
|
723
|
-
|
|
724
|
-
// The pinned route no longer serves this file: a skewed beta copy
|
|
725
|
-
// beats a broken page, and a deterministic 404 also drops the
|
|
726
|
-
// registration so the next start re-registers a coherent channel.
|
|
727
|
-
if (res != null && res.status == 404)
|
|
728
|
-
{
|
|
729
|
-
self.registration.unregister();
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
return fetch(event.request);
|
|
733
|
-
}, function()
|
|
734
|
-
{
|
|
735
|
-
return fetch(event.request);
|
|
736
|
-
});
|
|
737
|
-
});
|
|
738
|
-
});
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
// Cache-first on the current revision, then network (filling the cache),
|
|
742
|
-
// then a stale prior revision, then the precached LAZY_FALLBACK. A missing
|
|
743
|
-
// lazy entry must never break a working app, so unlike the precache refill
|
|
744
|
-
// path this never unregisters on 404.
|
|
745
|
-
function respondLazy(event, key)
|
|
746
|
-
{
|
|
747
|
-
return caches.open(CACHE_NAME).then(function(cache)
|
|
748
|
-
{
|
|
749
|
-
return cache.match(key).then(function(cached)
|
|
750
|
-
{
|
|
751
|
-
if (cached)
|
|
752
|
-
{
|
|
753
|
-
return cached;
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
return fetchLazy(cache, key).then(null, function()
|
|
757
|
-
{
|
|
758
|
-
return cache.match(new Request(baseUrl(key)),
|
|
759
|
-
{ignoreSearch: true}).then(function(stale)
|
|
760
|
-
{
|
|
761
|
-
if (stale)
|
|
762
|
-
{
|
|
763
|
-
return stale;
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
var fb = (LAZY_FALLBACK != null) ? urlsToCacheKeys.get(
|
|
767
|
-
new URL(LAZY_FALLBACK, SCOPE_BASE).href) : null;
|
|
768
|
-
|
|
769
|
-
if (fb == null)
|
|
770
|
-
{
|
|
771
|
-
return fetch(event.request);
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
return cache.match(fb).then(function(fallback)
|
|
775
|
-
{
|
|
776
|
-
return (fallback != null) ? fallback : fetch(event.request);
|
|
777
|
-
});
|
|
778
|
-
});
|
|
779
|
-
});
|
|
780
|
-
});
|
|
781
|
-
});
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
// Fetches a dev entry (no-cache: revalidate, never trust the HTTP cache)
|
|
785
|
-
// and stores it under its plain URL. Resolves with the response, or null
|
|
786
|
-
// on errors and on HTML bodies for non-document entries (poisoning guard).
|
|
787
|
-
function fetchDev(cache, key)
|
|
788
|
-
{
|
|
789
|
-
var req = new Request(cacheKeysToNetworkUrls.get(key),
|
|
790
|
-
{cache: 'no-cache', credentials: 'same-origin'});
|
|
791
|
-
|
|
792
|
-
return fetch(req).then(function(response)
|
|
793
|
-
{
|
|
794
|
-
if (response == null || !response.ok)
|
|
795
|
-
{
|
|
796
|
-
return null;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
var type = response.headers.get('Content-Type') || '';
|
|
800
|
-
var pathname = new URL(key).pathname;
|
|
801
|
-
|
|
802
|
-
if (type.indexOf('text/html') >= 0 && !pathname.endsWith('.html') &&
|
|
803
|
-
!pathname.endsWith('.htm'))
|
|
804
|
-
{
|
|
805
|
-
return null;
|
|
806
|
-
}
|
|
807
|
-
|
|
808
|
-
var copy = response.clone();
|
|
809
|
-
|
|
810
|
-
return (copy.redirected ? copyRedirected(copy) :
|
|
811
|
-
Promise.resolve(copy)).then(function(res)
|
|
812
|
-
{
|
|
813
|
-
return cache.put(key, res);
|
|
814
|
-
}).then(function()
|
|
815
|
-
{
|
|
816
|
-
return response;
|
|
817
|
-
});
|
|
818
|
-
});
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
// Network-first for dev sources: the network is the source of truth while
|
|
822
|
-
// online (edited sources are never stale), the cached copy answers when
|
|
823
|
-
// the network fails (offline dev reload). Error responses are surfaced.
|
|
824
|
-
function respondDev(event, key)
|
|
825
|
-
{
|
|
826
|
-
return caches.open(CACHE_NAME).then(function(cache)
|
|
827
|
-
{
|
|
828
|
-
return fetchDev(cache, key).then(function(response)
|
|
829
|
-
{
|
|
830
|
-
if (response != null)
|
|
831
|
-
{
|
|
832
|
-
return response;
|
|
833
|
-
}
|
|
834
|
-
|
|
835
|
-
return cache.match(key).then(function(cached)
|
|
836
|
-
{
|
|
837
|
-
return (cached != null) ? cached :
|
|
838
|
-
fetch(cacheKeysToNetworkUrls.get(key));
|
|
839
|
-
});
|
|
840
|
-
}, function(err)
|
|
841
|
-
{
|
|
842
|
-
return cache.match(key).then(function(cached)
|
|
843
|
-
{
|
|
844
|
-
if (cached != null)
|
|
845
|
-
{
|
|
846
|
-
return cached;
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
throw err;
|
|
850
|
-
});
|
|
851
|
-
});
|
|
852
|
-
});
|
|
853
|
-
}
|
|
854
|
-
|
|
855
|
-
// Fills the dev entries missing from the cache. An offline dev reload
|
|
856
|
-
// needs the complete source set - cache-on-use alone leaves every file
|
|
857
|
-
// the session did not (finish) loading as a hole.
|
|
858
|
-
function warmDevEntries(cache)
|
|
859
|
-
{
|
|
860
|
-
return Promise.all(DEV_MANIFEST.map(function(u)
|
|
861
|
-
{
|
|
862
|
-
var key = new URL(u, SCOPE_BASE).href;
|
|
863
|
-
|
|
864
|
-
return cache.match(key).then(function(cached)
|
|
865
|
-
{
|
|
866
|
-
return (cached != null) ? null :
|
|
867
|
-
fetchDev(cache, key).then(null, function() { return null; });
|
|
868
|
-
});
|
|
869
|
-
}));
|
|
870
|
-
}
|
|
871
|
-
|
|
872
|
-
self.addEventListener('fetch', function(event)
|
|
873
|
-
{
|
|
874
|
-
if (event.request.method !== 'GET')
|
|
875
|
-
{
|
|
876
|
-
return;
|
|
877
|
-
}
|
|
878
|
-
|
|
879
|
-
var key = matchPrecache(event.request.url);
|
|
880
|
-
|
|
881
|
-
if (key)
|
|
882
|
-
{
|
|
883
|
-
event.respondWith(respondPrecache(event, key));
|
|
884
|
-
return;
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
var lazyKey = matchLazy(event.request.url);
|
|
888
|
-
|
|
889
|
-
if (lazyKey)
|
|
890
|
-
{
|
|
891
|
-
event.respondWith(respondLazy(event, lazyKey));
|
|
892
|
-
return;
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
var devKey = matchDev(event.request.url);
|
|
896
|
-
|
|
897
|
-
// Not precached - fall back to the network (browser default handling).
|
|
898
|
-
if (!devKey)
|
|
899
|
-
{
|
|
900
|
-
return;
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
event.respondWith(respondDev(event, devKey));
|
|
904
|
-
});
|
|
905
|
-
|
|
906
|
-
// Warms cache entries for a page. warmLazy caches one lazy entry - the
|
|
907
|
-
// current UI language right after the first install, whose own request was
|
|
908
|
-
// not yet routed through this worker. warmDev fills all missing dev
|
|
909
|
-
// entries so one online dev load yields a complete offline source set.
|
|
910
|
-
// Only URLs in the respective manifests are ever fetched and cached.
|
|
911
|
-
self.addEventListener('message', function(event)
|
|
912
|
-
{
|
|
913
|
-
var data = event.data;
|
|
914
|
-
|
|
915
|
-
if (data != null && data.warmDev == true)
|
|
916
|
-
{
|
|
917
|
-
event.waitUntil(caches.open(CACHE_NAME).then(function(cache)
|
|
918
|
-
{
|
|
919
|
-
return warmDevEntries(cache);
|
|
920
|
-
}));
|
|
921
|
-
}
|
|
922
|
-
|
|
923
|
-
if (data != null && typeof data.warmLazy == 'string')
|
|
924
|
-
{
|
|
925
|
-
var key = null;
|
|
926
|
-
|
|
927
|
-
try
|
|
928
|
-
{
|
|
929
|
-
key = matchLazy(new URL(data.warmLazy, SCOPE_BASE).href);
|
|
930
|
-
}
|
|
931
|
-
catch (e)
|
|
932
|
-
{
|
|
933
|
-
return;
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
if (key != null)
|
|
937
|
-
{
|
|
938
|
-
event.waitUntil(caches.open(CACHE_NAME).then(function(cache)
|
|
939
|
-
{
|
|
940
|
-
return cache.match(key).then(function(cached)
|
|
941
|
-
{
|
|
942
|
-
return (cached != null) ? null :
|
|
943
|
-
fetchLazy(cache, key).then(null, function() { return null; });
|
|
944
|
-
});
|
|
945
|
-
}));
|
|
946
|
-
}
|
|
947
|
-
}
|
|
1
|
+
// draw.io precache service-worker disabled for DSH local embedded canvas
|
|
2
|
+
self.addEventListener('install', () => self.skipWaiting());
|
|
3
|
+
self.addEventListener('activate', (event) => {
|
|
4
|
+
event.waitUntil(
|
|
5
|
+
caches.keys().then((keys) => Promise.all(keys.map((k) => caches.delete(k))))
|
|
6
|
+
.then(() => self.registration.unregister())
|
|
7
|
+
);
|
|
948
8
|
});
|