sinzmise-cetastories 2.0.0-1731114112124 → 2.0.0-1731116663626

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. package/404/index.html +1 -4033
  2. package/about/index.html +1 -4041
  3. package/album/index.html +1 -4050
  4. package/archives/2021/12/index.html +1 -3917
  5. package/archives/2021/index.html +1 -3917
  6. package/archives/2022/12/index.html +1 -3917
  7. package/archives/2022/index.html +1 -3917
  8. package/archives/2023/01/index.html +1 -4072
  9. package/archives/2023/02/index.html +1 -3917
  10. package/archives/2023/03/index.html +1 -4063
  11. package/archives/2023/04/index.html +1 -3992
  12. package/archives/2023/07/index.html +1 -4217
  13. package/archives/2023/08/index.html +1 -4067
  14. package/archives/2023/09/index.html +1 -3917
  15. package/archives/2023/10/index.html +1 -3917
  16. package/archives/2023/11/index.html +1 -3917
  17. package/archives/2023/12/index.html +1 -3918
  18. package/archives/2023/index.html +1 -4591
  19. package/archives/2023/page/2/index.html +1 -4572
  20. package/archives/2023/page/3/index.html +1 -3930
  21. package/archives/2024/01/index.html +1 -4142
  22. package/archives/2024/02/index.html +1 -3922
  23. package/archives/2024/03/index.html +1 -3916
  24. package/archives/2024/04/index.html +1 -3997
  25. package/archives/2024/05/index.html +1 -4065
  26. package/archives/2024/06/index.html +1 -3917
  27. package/archives/2024/07/index.html +1 -3917
  28. package/archives/2024/08/index.html +1 -3992
  29. package/archives/2024/09/index.html +1 -3917
  30. package/archives/2024/10/index.html +1 -3984
  31. package/archives/2024/index.html +1 -4576
  32. package/archives/2024/page/2/index.html +1 -4433
  33. package/archives/index.html +1 -4560
  34. package/archives/page/2/index.html +1 -4560
  35. package/archives/page/3/index.html +1 -4560
  36. package/archives/page/4/index.html +1 -4560
  37. package/archives/page/5/index.html +1 -4560
  38. package/assets/algolia/algoliasearch.js +3 -7182
  39. package/assets/algolia/algoliasearchLite.js +3 -4445
  40. package/atom.xml +31 -31
  41. package/bbs/bbs.html +1 -4012
  42. package/bbs/bbs.js +2 -12
  43. package/bbs/index.html +1 -4031
  44. package/categories/index.html +1 -4050
  45. package/categories//344/270/252/344/272/272/345/260/217/350/256/260/index.html +1 -4570
  46. package/categories//344/270/252/344/272/272/345/260/217/350/256/260/page/2/index.html +1 -4485
  47. package/categories//346/255/214/346/233/262/346/224/266/351/233/206/index.html +1 -3920
  48. package/categories//346/270/270/346/210/217/347/233/270/345/205/263/index.html +1 -4148
  49. package/categories//347/253/231/347/202/271/346/212/230/350/205/276/index.html +1 -4610
  50. package/categories//347/253/231/347/202/271/346/212/230/350/205/276/page/2/index.html +1 -4148
  51. package/categories//351/241/271/347/233/256/346/212/230/350/205/276/index.html +1 -4072
  52. package/charts/index.html +1 -4039
  53. package/comments/index.html +1 -4052
  54. package/css/custom2.css +2 -3
  55. package/css/first.css +2 -1868
  56. package/css/pace/big-counter.css +2 -39
  57. package/css/pace/corner-indicator.css +2 -72
  58. package/css/pace/flash.css +2 -76
  59. package/css/pace/mac-osx.css +2 -86
  60. package/css/pace/pace.css +2 -50
  61. package/css/plane.css +2 -59
  62. package/css/style.css +2 -8585
  63. package/css/tags.css +2 -3516
  64. package/essay/index.html +1 -4050
  65. package/fcircle/index.html +1 -4075
  66. package/games +2 -2
  67. package/index.html +1 -4717
  68. package/js/app.js +2 -1341
  69. package/js/autoload.js +2 -62
  70. package/js/ceta/fancybox.css +2 -2
  71. package/js/ceta/fancybox.umd.js +2 -2
  72. package/js/ceta/iconfontInkss.js +2 -1
  73. package/js/ceta/message.css +2 -6
  74. package/js/ceta/message.js +2 -6
  75. package/js/clock.js +2 -1
  76. package/js/kslink.js +2 -38
  77. package/js/newyear.js +2 -76
  78. package/js/plane.js +2 -2200
  79. package/js/plugins/aplayer.js +2 -186
  80. package/js/plugins/parallax.js +2 -191
  81. package/js/plugins/rightMenus.js +2 -623
  82. package/js/plugins/tags/contributors.js +2 -92
  83. package/js/plugins/tags/friends.js +2 -93
  84. package/js/plugins/tags/sites.js +2 -96
  85. package/js/search/algolia.js +2 -239
  86. package/js/search/hexo.js +2 -195
  87. package/js/search/meilisearch.js +2 -220
  88. package/js/txmap.js +2 -248
  89. package/link/index.html +1 -6180
  90. package/load.html +1 -294
  91. package/maps/assets/algolia/algoliasearch.js.map +1 -0
  92. package/maps/assets/algolia/algoliasearchLite.js.map +1 -0
  93. package/maps/bbs/bbs.js.map +1 -0
  94. package/maps/css/custom2.css.map +1 -0
  95. package/maps/css/first.css.map +1 -0
  96. package/maps/css/pace/big-counter.css.map +1 -0
  97. package/maps/css/pace/corner-indicator.css.map +1 -0
  98. package/maps/css/pace/flash.css.map +1 -0
  99. package/maps/css/pace/mac-osx.css.map +1 -0
  100. package/maps/css/pace/pace.css.map +1 -0
  101. package/maps/css/plane.css.map +1 -0
  102. package/maps/css/style.css.map +1 -0
  103. package/maps/css/tags.css.map +1 -0
  104. package/maps/js/app.js.map +1 -0
  105. package/maps/js/autoload.js.map +1 -0
  106. package/maps/js/ceta/fancybox.css.map +1 -0
  107. package/maps/js/ceta/fancybox.umd.js.map +1 -0
  108. package/maps/js/ceta/iconfontInkss.js.map +1 -0
  109. package/maps/js/ceta/message.css.map +1 -0
  110. package/maps/js/ceta/message.js.map +1 -0
  111. package/maps/js/clock.js.map +1 -0
  112. package/maps/js/kslink.js.map +1 -0
  113. package/maps/js/newyear.js.map +1 -0
  114. package/maps/js/plane.js.map +1 -0
  115. package/maps/js/plugins/aplayer.js.map +1 -0
  116. package/maps/js/plugins/parallax.js.map +1 -0
  117. package/maps/js/plugins/rightMenus.js.map +1 -0
  118. package/maps/js/plugins/tags/contributors.js.map +1 -0
  119. package/maps/js/plugins/tags/friends.js.map +1 -0
  120. package/maps/js/plugins/tags/sites.js.map +1 -0
  121. package/maps/js/search/algolia.js.map +1 -0
  122. package/maps/js/search/hexo.js.map +1 -0
  123. package/maps/js/search/meilisearch.js.map +1 -0
  124. package/maps/js/txmap.js.map +1 -0
  125. package/maps/sw.js.map +1 -0
  126. package/maps/weichuncai/css/style.css.map +1 -0
  127. package/maps/weichuncai/js/common.js.map +1 -0
  128. package/maps/weichuncai/js/jquery.js.map +1 -0
  129. package/maps/weichuncai/wcc-config.js.map +1 -0
  130. package/music/index.html +1 -4033
  131. package/package.json +1 -1
  132. package/page/2/index.html +1 -4578
  133. package/page/3/index.html +1 -4575
  134. package/page/4/index.html +1 -4572
  135. package/page/5/index.html +1 -3924
  136. package/posts/10021/index.html +5 -4130
  137. package/posts/10045/index.html +1 -4224
  138. package/posts/10733/index.html +1 -4125
  139. package/posts/10996/index.html +5 -4127
  140. package/posts/12779/index.html +1 -4134
  141. package/posts/13624/index.html +1 -4179
  142. package/posts/15688/index.html +1 -4133
  143. package/posts/15748/index.html +5 -4121
  144. package/posts/15799/index.html +1 -4130
  145. package/posts/15842/index.html +5 -4121
  146. package/posts/16107/index.html +1 -4111
  147. package/posts/18063/index.html +1 -4124
  148. package/posts/20412/index.html +1 -4134
  149. package/posts/21375/index.html +1 -4124
  150. package/posts/22945/index.html +4 -4169
  151. package/posts/23021/index.html +1 -4104
  152. package/posts/27531/index.html +5 -4121
  153. package/posts/28536/index.html +1 -4116
  154. package/posts/28733/index.html +1 -4168
  155. package/posts/29196/index.html +1 -4106
  156. package/posts/38917/index.html +1 -4144
  157. package/posts/38964/index.html +1 -4208
  158. package/posts/42487/index.html +1 -4135
  159. package/posts/42580/index.html +1 -4128
  160. package/posts/45875/index.html +1 -4118
  161. package/posts/46640/index.html +1 -4147
  162. package/posts/48762/index.html +1 -4109
  163. package/posts/50710/index.html +1 -4114
  164. package/posts/52677/index.html +1 -4125
  165. package/posts/53662/index.html +1 -4123
  166. package/posts/54386/index.html +1 -4116
  167. package/posts/54481/index.html +1 -4133
  168. package/posts/54787/index.html +5 -4124
  169. package/posts/56467/index.html +1 -4121
  170. package/posts/57692/index.html +1 -4143
  171. package/posts/58203/index.html +1 -4116
  172. package/posts/61417/index.html +1 -4117
  173. package/posts/61712/index.html +1 -4113
  174. package/posts/646/index.html +1 -4106
  175. package/posts/64856/index.html +1 -4120
  176. package/posts/64935/index.html +1 -4120
  177. package/search.xml +70 -70
  178. package/seas/index.html +1 -4050
  179. package/sw.js +2 -798
  180. package/tags/Flash/347/233/270/345/205/263/index.html +1 -3924
  181. package/tags/Steam/346/270/270/346/210/217/index.html +1 -3924
  182. package/tags/Windows/350/275/257/344/273/266/index.html +1 -3997
  183. package/tags/index.html +1 -4033
  184. package/tags//344/270/252/344/272/272/345/260/217/350/256/260/index.html +1 -4570
  185. package/tags//344/270/252/344/272/272/345/260/217/350/256/260/page/2/index.html +1 -4485
  186. package/tags//345/205/266/345/256/203/346/270/270/346/210/217/index.html +1 -4073
  187. package/tags//345/212/240/350/275/275/345/212/250/347/224/273/index.html +1 -3924
  188. package/tags//346/202/254/346/265/256/345/256/240/347/211/251-/347/234/213/346/235/277/345/250/230/index.html +1 -3925
  189. package/tags//346/255/214/346/233/262/346/224/266/351/233/206/index.html +1 -3920
  190. package/tags//346/270/270/346/210/217/347/233/270/345/205/263/index.html +1 -4148
  191. package/tags//347/253/231/347/202/271/345/272/225/351/203/250/351/255/224/346/224/271/index.html +1 -3924
  192. package/tags//347/253/231/347/202/271/346/212/230/350/205/276/index.html +1 -4610
  193. package/tags//347/253/231/347/202/271/346/212/230/350/205/276/page/2/index.html +1 -4148
  194. package/tags//350/207/252/345/273/272/351/203/250/347/275/262/index.html +1 -4224
  195. package/tags//351/241/265/351/235/242/351/255/224/346/224/271/index.html +1 -4075
  196. package/tags//351/241/271/347/233/256/346/212/230/350/205/276/index.html +1 -4072
  197. package/update/index.html +1 -4112
  198. package/weichuncai/css/style.css +2 -25
  199. package/weichuncai/js/common.js +2 -449
  200. package/weichuncai/js/jquery.js +2 -139
  201. package/weichuncai/wcc-config.js +2 -17
package/sw.js CHANGED
@@ -1,798 +1,2 @@
1
- // 全站打包上传 npm,sw 并发请求 cdn
2
- const prefix = 'sinzmise-cetastories';
3
- const cacheSuffixVersion = '00000018-0.5481051434706005';
4
- const CACHE_NAME = prefix + '-v' + cacheSuffixVersion;
5
- const PreCachlist = [
6
- "/css/style.css",
7
- "/js/app.js",
8
- "/js/search/hexo.js",
9
- ];
10
- let NPMMirror = true;
11
- const NPMPackage = "sinzmise-cetastories";
12
- let NPMPackageVersion = "latest";
13
- let debug = true;
14
- // location.hostname == 'localhost' && (debug = true) && (NPMMirror = false);
15
- const handleFetch = async (event) => {
16
- const url = event.request.url;
17
- if (/nocache/.test(url)) {
18
- return NetworkOnly(event)
19
- } else if (/@latest/.test(url)) {
20
- return CacheFirst(event)
21
- } else if (/cdnjs\.cloudflare\.com/.test(url)) {
22
- return CacheAlways(event)
23
- } else if (/music\.126\.net/.test(url)) {
24
- return CacheAlways(event)
25
- } else if (/qqmusic\.qq\.com/.test(url)) {
26
- return CacheAlways(event)
27
- } else if (/jsdelivr\.net/.test(url)) {
28
- return CacheAlways(event)
29
- } else if (/npm\.elemecdn\.com/.test(url)) {
30
- return CacheAlways(event)
31
- } else if (/unpkg\.com/.test(url)) {
32
- return CacheAlways(event)
33
- } else if (/.*\.(?:png|jpg|jpeg|svg|gif|webp|ico|eot|ttf|woff|woff2|mp3)$/.test(url)) {
34
- return CacheAlways(event)
35
- } else if (/.*\.(css|js)$/.test(url)) {
36
- return CacheAlways(event)
37
- } else {
38
- return CacheFirst(event)
39
- }
40
- }
41
- const cdn = {
42
- gh: {
43
- jsdelivr: 'https://kkgithub.com/extdomains/cdn.jsdelivr.net/gh',
44
- fastly: 'https://fastly.jsdelivr.net/gh',
45
- gcore: 'https://gcore.jsdelivr.net/gh',
46
- testingcf: 'https://testingcf.jsdelivr.net/gh',
47
- test1: 'https://test1.jsdelivr.net/gh',
48
- },
49
- combine: {
50
- jsdelivr: 'https://kkgithub.com/extdomains/cdn.jsdelivr.net/combine',
51
- fastly: 'https://fastly.jsdelivr.net/combine',
52
- gcore: 'https://gcore.jsdelivr.net/combine',
53
- testingcf: 'https://testingcf.jsdelivr.net/combine',
54
- test1: 'https://test1.jsdelivr.net/combine',
55
- },
56
- npm: {
57
- jsdelivr: 'https://kkgithub.com/extdomains/cdn.jsdelivr.net/npm',
58
- fastly: 'https://fastly.jsdelivr.net/npm',
59
- gcore: 'https://gcore.jsdelivr.net/npm',
60
- testingcf: 'https://testingcf.jsdelivr.net/npm',
61
- test1: 'https://test1.jsdelivr.net/npm',
62
- unpkg: 'https://unpkg.com',
63
- eleme: 'https://npm.elemecdn.com',
64
- storisinz: 'https://jsd.cdn.storisinz.site/npm',
65
- webcache: 'https://npm.webcache.cn',
66
- },
67
- cdnjs: {
68
- cdnjs: 'https://kkgithub.com/extdomains/cdnjs.cloudflare.com/ajax/libs',
69
- baomitu: 'https://lib.baomitu.com',
70
- bootcdn: 'https://cdn.bootcdn.net/ajax/libs',
71
- bytedance: 'https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M',
72
- sustech: 'https://mirrors.sustech.edu.cn/cdnjs/ajax/libs',
73
- }
74
- }
75
- const cdn_match_list = []
76
- for (const type in cdn) {
77
- for (const key in cdn[type]) {
78
- cdn_match_list.push({ type: type, key: cdn[type][key] })
79
- }
80
- }
81
- const _console = console;
82
- const color = {
83
- black: '#000000',
84
- red: '#FF0000',
85
- green: '#008000',
86
- yellow: '#FFFF00',
87
- blue: '#0000FF',
88
- magenta: '#FF00FF',
89
- cyan: '#00FFFF',
90
- white: '#FFFFFF',
91
- };
92
- const add = (...arr) => {
93
- let fi = [
94
- []
95
- ];
96
- for (let key = 0; key < arr.length; key++) {
97
- const [first, ...other] = arr[key];
98
- fi[0] += first;
99
- fi = fi.concat(other);
100
- }
101
- return fi;
102
- };
103
- const createlog = (util) => (...args) => {
104
- // const fun = _console[util] ? _console[util] : _console.log;
105
- const fun = util == "error" ? _console[util] : _console.log;
106
- fun.apply(void 0, args);
107
- };
108
- const creategroup = (util) => (...args) => {
109
- const fun = _console.groupCollapsed;
110
- fun.apply(void 0, args);
111
- };
112
- const colorUtils = {
113
- bold: (str) => {
114
- if (typeof str === 'string' || typeof str === 'number') {
115
- return `${str};font-weight: bold;`;
116
- }
117
- for (let key = 1; key < str.length; key++) {
118
- str[key] += `;font-weight: bold;`;
119
- }
120
- return str;
121
- }
122
- };
123
- const colorHash = {
124
- log: 'black',
125
- wait: 'cyan',
126
- error: 'red',
127
- warn: 'yellow',
128
- ready: 'green',
129
- info: 'blue',
130
- event: 'magenta',
131
- };
132
- const createChalk = (name) => (...str) => {
133
- if (typeof str[0] === 'object') {
134
- createlog(name)(...add(colorUtils.bold(colorUtils[colorHash[name]](`[${firstToUpperCase(name)}] `)), ...str));
135
- return;
136
- }
137
- let strArr = str;
138
- if (typeof str === 'string' || typeof str === 'number') {
139
- strArr = colorUtils[colorHash[name]](str);
140
- }
141
- createlog(name)(...add(colorUtils.bold(colorUtils[colorHash[name]](`[${firstToUpperCase(name)}] `)), strArr));
142
- };
143
- const createChalkBg = (name) => (...str) => {
144
- if (typeof str[0] === 'object') {
145
- createlog(name)(...add(colorUtils.bold(colorUtils[`bg${firstToUpperCase(colorHash[name])}`](`[${firstToUpperCase(name)}] `)), ...str));
146
- return;
147
- }
148
- let strArr = str;
149
- if (typeof str === 'string' || typeof str === 'number') {
150
- strArr = colorUtils[colorHash[name]](str);
151
- }
152
- createlog(name)(...add(colorUtils.bold(colorUtils[`bg${firstToUpperCase(colorHash[name])}`](`[${firstToUpperCase(name)}] `)), strArr));
153
- };
154
- const createChalkGroup = (name) => (...str) => {
155
- if (typeof str[0] === 'object') {
156
- creategroup(name)(...add(colorUtils.bold(colorUtils[colorHash[name]](`[${firstToUpperCase(name)}] `)), ...str));
157
- return;
158
- }
159
- let strArr = str;
160
- if (typeof str === 'string' || typeof str === 'number') {
161
- strArr = colorUtils[colorHash[name]](str);
162
- }
163
- creategroup(name)(...add(colorUtils.bold(colorUtils[colorHash[name]](`[${firstToUpperCase(name)}] `)), strArr));
164
- };
165
- const chalk = {
166
- group: {
167
- end: _console.groupEnd
168
- },
169
- bg: {}
170
- };
171
- Object.keys(colorHash).forEach(key => {
172
- chalk[key] = createChalk(key);
173
- chalk.group[key] = createChalkGroup(key);
174
- chalk.bg[key] = createChalkBg(key);
175
- });
176
- const firstToUpperCase = (str) => str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
177
- Object.keys(color).forEach(key => {
178
- colorUtils[key] = (str) => {
179
- if (typeof str === 'string' || typeof str === 'number') {
180
- return [`%c${str}`, `color:${color[key]}`];
181
- }
182
- for (let i = 1; i < str.length; i++) {
183
- str[i] += `;color:${color[key]}`;
184
- }
185
- return str;
186
- };
187
- colorUtils[`bg${firstToUpperCase(key)}`] = (str) => {
188
- if (typeof str === 'string' || typeof str === 'number') {
189
- return [`%c${str}`, `padding: 2px 4px; border-radius: 3px; color: ${key === 'white' ? '#000' : '#fff'}; font-weight: bold; background:${color[key]};`];
190
- }
191
- for (let i = 1; i < str.length; i++) {
192
- str[i] += `;padding: 2px 4px; border-radius: 3px; font-weight: bold; background:${color[key]};`;
193
- }
194
- return str;
195
- };
196
- });
197
- self.logger = {
198
- add,
199
- ...chalk,
200
- ...colorUtils,
201
- };
202
-
203
- if (!debug) {
204
- logger = {
205
- log: () => { },
206
- wait: () => { },
207
- error: () => { },
208
- warn: () => { },
209
- ready: () => { },
210
- info: () => { },
211
- event: () => { },
212
- group: {
213
- log: () => { },
214
- wait: () => { },
215
- error: () => { },
216
- warn: () => { },
217
- ready: () => { },
218
- info: () => { },
219
- event: () => { },
220
- end: () => { },
221
- },
222
- bg: {
223
- log: () => { },
224
- wait: () => { },
225
- error: () => { },
226
- warn: () => { },
227
- ready: () => { },
228
- info: () => { },
229
- event: () => { },
230
- }
231
- };
232
- console.log = () => { };
233
- }
234
-
235
- const generate_uuid = () => {
236
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
237
- var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
238
- return v.toString(16);
239
- });
240
- }
241
- self.db = {
242
- read: (key, config) => {
243
- if (!config) { config = { type: "text" } }
244
- return new Promise((resolve, reject) => {
245
- caches.open(CACHE_NAME).then(cache => {
246
- cache.match(new Request(`https://LOCALCACHE/${encodeURIComponent(key)}`)).then(function (res) {
247
- if (!res) resolve(null)
248
- res.text().then(text => resolve(text))
249
- }).catch(() => {
250
- resolve(null)
251
- })
252
- })
253
- })
254
- },
255
- write: (key, value) => {
256
- return new Promise((resolve, reject) => {
257
- caches.open(CACHE_NAME).then(function (cache) {
258
- cache.put(new Request(`https://LOCALCACHE/${encodeURIComponent(key)}`), new Response(value));
259
- resolve()
260
- }).catch(() => {
261
- reject()
262
- })
263
- })
264
- }
265
- }
266
- const compareVersion = (a, b) => {
267
- let v1 = a.split('.');
268
- let v2 = b.split('.');
269
- const len = Math.max(v1.length, v2.length);
270
- while (v1.length < len) {
271
- v1.push('0');
272
- }
273
- while (v2.length < len) {
274
- v2.push('0');
275
- }
276
- for (let i = 0; i < len; i++) {
277
- const num1 = parseInt(v1[i]);
278
- const num2 = parseInt(v2[i]);
279
- if (num1 > num2) {
280
- return a;
281
- } else if (num1 < num2) {
282
- return b;
283
- }
284
- }
285
- return a;
286
- }
287
-
288
- const mirrors = [
289
- `https://registry.npmjs.org/${NPMPackage}/latest`,
290
- `https://registry.npmmirror.com/${NPMPackage}/latest`,
291
- `https://mirrors.cloud.tencent.com/npm/${NPMPackage}/latest`
292
- ]
293
- const getLocalVersion = async () => {
294
- NPMPackageVersion = await db.read('blog_version') || NPMPackageVersion
295
- logger.bg.info(`Local Version: ${NPMPackage}@${NPMPackageVersion}`)
296
- }
297
- let mirror_time = 0;
298
- const setNewestVersion = async () => {
299
- if (!NPMMirror) {
300
- return
301
- }
302
- let f = null;
303
- if (!(mirror_time % (mirrors.length + 1))) {
304
- f = FetchEngine(mirrors);
305
- } else {
306
- f = fetch(mirrors[(mirror_time % (mirrors.length + 1)) - 1]);
307
- }
308
- mirror_time++;
309
- return f
310
- .then(res => res.json())
311
- .then(async res => {
312
- if (!res.version) throw ('No Version Found!')
313
- NPMPackageVersion = compareVersion(res.version, await db.read('blog_version') || NPMPackageVersion)
314
- logger.bg.ready(`${NPMPackage}@${NPMPackageVersion}`)
315
- await db.write('blog_version', NPMPackageVersion)
316
- })
317
- .catch(error => {
318
- logger.error('[Set Newest Version] ' + (error.stack || error))
319
- })
320
- }
321
- setInterval(async () => {
322
- await setNewestVersion()
323
- }, 60 * 1000);
324
- setTimeout(async () => {
325
- await setNewestVersion()
326
- }, 5000)
327
- const installFunction = async () => {
328
- await getLocalVersion();
329
- return caches.open(CACHE_NAME + "-precache")
330
- .then(async function (cache) {
331
- if (!await db.read('uuid')) {
332
- await db.write('uuid', generate_uuid())
333
- }
334
- if (PreCachlist.length) {
335
- logger.group.event(`Precaching ${PreCachlist.length} files.`);
336
- let index = 0;
337
- PreCachlist.forEach(function (url) {
338
- cache.match(new Request(url)).then(function (response) {
339
- if (response) {
340
- logger.ready(`Precaching ${url}`);
341
- } else {
342
- logger.wait(`Precaching ${url}`);
343
- cache.add(new Request(url));
344
- }
345
- index++;
346
- if (index === PreCachlist.length) {
347
- logger.ready(`Precached ${PreCachlist.length} files.`);
348
- logger.group.end();
349
- }
350
- })
351
- })
352
- }
353
- }).catch((error) => {
354
- logger.error('[install] ' + (error.stack || error));
355
- })
356
- }
357
- self.addEventListener('install', async function (event) {
358
- logger.bg.event("service worker install event listening");
359
- try {
360
- self.skipWaiting();
361
- event.waitUntil(installFunction());
362
- logger.bg.ready('service worker install sucess!');
363
- } catch (error) {
364
- logger.error('[install] ' + (error.stack || error));
365
- }
366
- });
367
- self.addEventListener('activate', async event => {
368
- logger.bg.event("service worker activate event listening");
369
- try {
370
- event.waitUntil(
371
- caches.keys().then((keys) => {
372
- return Promise.all(keys.map((key) => {
373
- if (!key.includes(cacheSuffixVersion)) {
374
- caches.delete(key);
375
- logger.bg.ready('Deleted Outdated Cache: ' + key);
376
- }
377
- }));
378
- }).catch((error) => {
379
- logger.error('[activate] ' + (error.stack || error));
380
- })
381
- );
382
- await self.clients.claim()
383
- logger.bg.ready('service worker activate sucess!');
384
- } catch (error) {
385
- logger.error('[activate] ' + (error.stack || error));
386
- }
387
- })
388
- self.addEventListener('fetch', async event => {
389
- event.respondWith(
390
- handleFetch(event).catch((error) => {
391
- logger.error('[fetch] ' + event.request.url + '\n[error] ' + (error.stack || error));
392
- })
393
- )
394
- });
395
-
396
-
397
- const NetworkOnly = async (event) => {
398
- logger.group.info('NetworkOnly: ' + new URL(event.request.url).pathname);
399
- logger.wait('service worker fetch: ' + event.request.url)
400
- logger.group.end();
401
- return fetch(event.request)
402
- }
403
- const CacheFirst = async (event) => {
404
- return caches.match(event.request).then(function (resp) {
405
- logger.group.info('CacheFirst: ' + new URL(event.request.url).pathname);
406
- logger.wait('service worker fetch: ' + event.request.url)
407
- if (resp) {
408
- logger.group.ready(`Cache Hit`);
409
- console.log(resp)
410
- logger.group.end();
411
- logger.group.end();
412
- event.waitUntil(CacheRuntime(event.request))
413
- return resp;
414
- } else {
415
- logger.warn(`Cache Miss`);
416
- logger.group.end();
417
- return CacheRuntime(event.request)
418
- }
419
- })
420
- }
421
- const CacheAlways = async (event) => {
422
- return caches.match(event.request).then(function (resp) {
423
- logger.group.info('CacheAlways: ' + new URL(event.request.url).pathname);
424
- logger.wait('service worker fetch: ' + event.request.url)
425
- if (resp) {
426
- logger.group.ready(`Cache Hit`);
427
- console.log(resp)
428
- logger.group.end();
429
- logger.group.end();
430
- return resp;
431
- } else {
432
- logger.warn(`Cache Miss`);
433
- logger.group.end();
434
- return CacheRuntime(event.request)
435
- }
436
- })
437
- }
438
-
439
- const matchCache = async (event) => {
440
- return caches.match(event.request).then(function (resp) {
441
- logger.group.info('service worker fetch: ' + event.request.url)
442
- if (resp) {
443
- logger.group.ready(`Cache Hit`);
444
- console.log(resp)
445
- logger.group.end();
446
- logger.group.end();
447
- return resp;
448
- } else {
449
- logger.warn(`Cache Miss`);
450
- logger.group.end();
451
- return CacheRuntime(event.request)
452
- }
453
- })
454
- }
455
- async function CacheRuntime(request) {
456
- const url = new URL(request.url);
457
- let response = await matchCDN(request);
458
- if (!response) {
459
- response = await fetch(request).catch(() => null)
460
- }
461
- logger.group.event(`Cache Runtime ${url.pathname}`);
462
- logger.wait(`Caching url: ${request.url}`);
463
- console.log(response);
464
-
465
- if (request.method === "GET" && (url.protocol == "https:")) {
466
- const cache = await caches.open(CACHE_NAME + "-runtime");
467
- cache.put(request, response.clone()).catch(error => {
468
- logger.error('[Cache Runtime] ' + (error.stack || error));
469
- if (error.name === 'QuotaExceededError') {
470
- caches.delete(CACHE_NAME + "-runtime");
471
- logger.ready("deleted cache")
472
- }
473
- })
474
- logger.ready(`Cached url: ${request.url}`);
475
- } else {
476
- logger.warn(`Not Cached url: ${request.url}`);
477
- }
478
- logger.group.end();
479
- return response;
480
- }
481
-
482
- const matchCDN = async (req) => {
483
- const nav = navigator
484
- const { saveData, effectiveType } = nav.connection || nav.mozConnection || nav.webkitConnection || {}
485
- if (saveData || /2g/.test(effectiveType)) {
486
- logger.warn("Slow Network: Transparent Proxy");
487
- return fetch(req);
488
- }
489
- const urls = []
490
- let urlObj = new URL(req.url)
491
- let pathType = urlObj.pathname.split('/')[1]
492
- let pathTestRes = "";
493
-
494
- if (NPMMirror && new RegExp(location.origin).test(req.url)) {
495
- logger.group.ready(`Match NPM Mirror: ` + req.url);
496
- for (const key in cdn.npm) {
497
- let url = cdn.npm[key] + "/" + NPMPackage + "@" + NPMPackageVersion + req.url.replace(location.origin, '')
498
- url = fullPath(fullPath(url))
499
- console.log(url);
500
- urls.push(url)
501
- }
502
- logger.group.end()
503
- }
504
- if (!urls.length) {
505
- for (const item of cdn_match_list) {
506
- if (new RegExp(item.key).test(req.url)) {
507
- pathType = item.type
508
- pathTestRes = new RegExp(item.key).exec(req.url)[0]
509
- break;
510
- }
511
- }
512
- for (const type in cdn) {
513
- if (type === pathType) {
514
- logger.group.ready(`Match CDN ${pathType}: ` + req.url);
515
- for (const key in cdn[type]) {
516
- const url = cdn[type][key] + req.url.replace(pathTestRes, '')
517
- console.log(url);
518
- urls.push(url)
519
- }
520
- logger.group.end()
521
- }
522
- }
523
- }
524
-
525
- let res;
526
- if (urls.length)
527
- res = FetchEngine(urls)
528
- else
529
- res = fetch(req)
530
- if (res && NPMMirror && new RegExp(location.origin).test(req.url)) {
531
- const ext = fullPath(fullPath(req.url)).split('.').pop()
532
- const contentType = getContentType(ext)
533
- res = res
534
- .then(res => res.arrayBuffer())
535
- .then(buffer => new Response(buffer, {
536
- headers: {
537
- "Content-Type": contentType
538
- }
539
- }))
540
- .catch(() => null)
541
- }
542
- return res
543
- }
544
-
545
- const fullPath = (url) => {
546
- url = url.split('?')[0].split('#')[0]
547
- if (url.endsWith('/')) {
548
- url += 'index.html'
549
- } else {
550
- const list = url.split('/')
551
- const last = list[list.length - 1]
552
- if (last.indexOf('.') === -1) {
553
- url += '.html'
554
- }
555
- }
556
- return url
557
- }
558
- async function progress(res) {
559
- return new Response(await res.arrayBuffer(), {
560
- status: res.status,
561
- headers: res.headers
562
- })
563
- }
564
-
565
- function createPromiseAny() {
566
- Promise.any = function (promises) {
567
- return new Promise((resolve, reject) => {
568
- promises = Array.isArray(promises) ? promises : []
569
- let len = promises.length
570
- let errs = []
571
- if (len === 0) return reject(new AggregateError('All promises were rejected'))
572
- promises.forEach((p) => {
573
- if (p instanceof Promise) {
574
- p.then(
575
- (res) => resolve(res),
576
- (err) => {
577
- len--
578
- errs.push(err)
579
- if (len === 0) reject(new AggregateError(errs))
580
- }
581
- )
582
- } else {
583
- reject(p)
584
- }
585
- })
586
- })
587
- }
588
- }
589
-
590
- function fetchAny(reqs) {
591
- const controller = new AbortController()
592
-
593
- return reqs.map(req => {
594
- return new Promise((resolve, reject) => {
595
- fetch(req, {
596
- signal: controller.signal
597
- })
598
- .then(progress)
599
- .then(res => {
600
- controller.abort()
601
- if (res.status !== 200)
602
- reject(null)
603
- else
604
- resolve(res)
605
- })
606
- .catch(() => reject(null))
607
- })
608
- })
609
- }
610
-
611
- function fetchParallel(reqs) {
612
- const abortEvent = new Event("abortOtherInstance")
613
- const eventTarget = new EventTarget();
614
-
615
- return reqs.map(async req => {
616
- const controller = new AbortController();
617
- let tagged = false;
618
- eventTarget.addEventListener(abortEvent.type, () => {
619
- if (!tagged) controller.abort();
620
- })
621
- return new Promise((resolve, reject) => {
622
- fetch(req, {
623
- signal: controller.signal,
624
- }).then(res => {
625
- tagged = true;
626
- eventTarget.dispatchEvent(abortEvent)
627
- if (res.status !== 200)
628
- reject(null)
629
- else
630
- resolve(res)
631
- }).catch(() => reject(null))
632
- })
633
- });
634
- }
635
-
636
- const FetchEngine = (reqs) => {
637
- if (!Promise.any) createPromiseAny();
638
- return Promise.any(fetchParallel(reqs)).then(res => res)
639
- .catch((e) => {
640
- if (e == "AggregateError: All promises were rejected") {
641
- return Promise.any(fetchAny(reqs))
642
- .then((res) => res)
643
- .catch(() => null);
644
- }
645
- return null;
646
- });
647
- };
648
-
649
- const getContentType = (ext) => {
650
- switch (ext) {
651
- case 'js':
652
- return 'text/javascript'
653
- case 'html':
654
- return 'text/html'
655
- case 'css':
656
- return 'text/css'
657
- case 'json':
658
- return 'application/json'
659
- case 'webp':
660
- return 'image/webp'
661
- case 'jpg':
662
- return 'image/jpg'
663
- case 'jpeg':
664
- return 'image/jpeg'
665
- case 'png':
666
- return 'image/png'
667
- case 'gif':
668
- return 'image/gif'
669
- case 'xml':
670
- return 'text/xml'
671
- case 'xsl':
672
- return 'text/xml'
673
- case 'webmanifest':
674
- return 'text/webmanifest'
675
- case 'map':
676
- return 'application/json'
677
- case 'bcmap':
678
- return 'image/vnd.wap.wbmp'
679
- case 'wbmp':
680
- return 'image/vnd.wap.wbmp'
681
- case 'bmp':
682
- return 'image/bmp'
683
- case 'ico':
684
- return 'image/vnd.microsoft.icon'
685
- case 'tiff':
686
- return 'image/tiff'
687
- case 'tif':
688
- return 'image/tiff'
689
- case 'svg':
690
- return 'image/svg+xml'
691
- case 'svgz':
692
- return 'image/svg+xml'
693
- case 'woff':
694
- return 'application/font-woff'
695
- case 'woff2':
696
- return 'application/font-woff2'
697
- case 'ttf':
698
- return 'application/font-ttf'
699
- case 'otf':
700
- return 'application/font-otf'
701
- case 'eot':
702
- return 'application/vnd.ms-fontobject'
703
- case 'zip':
704
- return 'application/zip'
705
- case 'tar':
706
- return 'application/x-tar'
707
- case 'gz':
708
- return 'application/gzip'
709
- case 'bz2':
710
- return 'application/x-bzip2'
711
- case 'rar':
712
- return 'application/x-rar-compressed'
713
- case '7z':
714
- return 'application/x-7z-compressed'
715
- case 'doc':
716
- return 'application/msword'
717
- case 'docx':
718
- return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
719
- case 'xls':
720
- return 'application/vnd.ms-excel'
721
- case 'xlsx':
722
- return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
723
- case 'ppt':
724
- return 'application/vnd.ms-powerpoint'
725
- case 'pptx':
726
- return 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
727
- case 'pdf':
728
- return 'application/pdf'
729
- case 'txt':
730
- return 'text/plain'
731
- case 'rtf':
732
- return 'application/rtf'
733
- case 'mp3':
734
- return 'audio/mpeg'
735
- case 'wav':
736
- return 'audio/x-wav'
737
- case 'ogg':
738
- return 'audio/ogg'
739
- case 'mp4':
740
- return 'video/mp4'
741
- case 'm4v':
742
- return 'video/x-m4v'
743
- case 'mov':
744
- return 'video/quicktime'
745
- case 'avi':
746
- return 'video/x-msvideo'
747
- case 'wmv':
748
- return 'video/x-ms-wmv'
749
- case 'flv':
750
- return 'video/x-flv'
751
- case 'swf':
752
- return 'application/x-shockwave-flash'
753
- case 'mpg':
754
- return 'video/mpeg'
755
- case 'mpeg':
756
- return 'video/mpeg'
757
- case 'mpe':
758
- return 'video/mpeg'
759
- case 'mpv':
760
- return 'video/mpeg'
761
- case 'm2v':
762
- return 'video/mpeg'
763
- case 'm4a':
764
- return 'audio/mp4'
765
- case 'aac':
766
- return 'audio/aac'
767
- case 'm3u':
768
- return 'audio/x-mpegurl'
769
- case 'm3u8':
770
- return 'application/vnd.apple.mpegurl'
771
- case 'pls':
772
- return 'audio/x-scpls'
773
- case 'cue':
774
- return 'application/x-cue'
775
- case 'wma':
776
- return 'audio/x-ms-wma'
777
- case 'flac':
778
- return 'audio/flac'
779
- case 'aif':
780
- return 'audio/x-aiff'
781
- case 'aiff':
782
- return 'audio/x-aiff'
783
- case 'aifc':
784
- return 'audio/x-aiff'
785
- case 'au':
786
- return 'audio/basic'
787
- case 'snd':
788
- return 'audio/basic'
789
- case 'mid':
790
- return 'audio/midi'
791
- case 'midi':
792
- return 'audio/midi'
793
- case 'kar':
794
- return 'audio/midi'
795
- default:
796
- return 'text/plain'
797
- }
798
- }
1
+ const prefix="sinzmise-cetastories",cacheSuffixVersion="00000018-0.6915162664059634",CACHE_NAME=prefix+"-v"+cacheSuffixVersion,PreCachlist=["/css/style.css","/js/app.js","/js/search/hexo.js"];let NPMMirror=!0;const NPMPackage="sinzmise-cetastories";let NPMPackageVersion="latest",debug=!0;const handleFetch=async e=>{const t=e.request.url;return/nocache/.test(t)?NetworkOnly(e):/@latest/.test(t)?CacheFirst(e):/cdnjs\.cloudflare\.com/.test(t)||/music\.126\.net/.test(t)||/qqmusic\.qq\.com/.test(t)||/jsdelivr\.net/.test(t)||/npm\.elemecdn\.com/.test(t)||/unpkg\.com/.test(t)||/.*\.(?:png|jpg|jpeg|svg|gif|webp|ico|eot|ttf|woff|woff2|mp3)$/.test(t)||/.*\.(css|js)$/.test(t)?CacheAlways(e):CacheFirst(e)},cdn={gh:{jsdelivr:"https://cdn.jsdelivr.net/gh",fastly:"https://fastly.jsdelivr.net/gh",gcore:"https://gcore.jsdelivr.net/gh",testingcf:"https://testingcf.jsdelivr.net/gh",test1:"https://test1.jsdelivr.net/gh",storisinz:"https://jsd.cdn.storisinz.site/gh",webcache:"https://code.webcache.cn/gh"},combine:{jsdelivr:"https://cdn.jsdelivr.net/combine",fastly:"https://fastly.jsdelivr.net/combine",gcore:"https://gcore.jsdelivr.net/combine",testingcf:"https://testingcf.jsdelivr.net/combine",test1:"https://test1.jsdelivr.net/combine",storisinz:"https://jsd.cdn.storisinz.site/combine"},npm:{jsdelivr:"https://cdn.jsdelivr.net/npm",fastly:"https://fastly.jsdelivr.net/npm",gcore:"https://gcore.jsdelivr.net/npm",testingcf:"https://testingcf.jsdelivr.net/npm",test1:"https://test1.jsdelivr.net/npm",unpkg:"https://unpkg.com",eleme:"https://npm.elemecdn.com",storisinz:"https://jsd.cdn.storisinz.site/npm",webcache:"https://npm.webcache.cn"},cdnjs:{cdnjs:"https://cdnjs.cloudflare.com/ajax/libs",baomitu:"https://lib.baomitu.com",bytedance:"https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M",sustech:"https://mirrors.sustech.edu.cn/cdnjs/ajax/libs",webcache:"https://cdnjs.webstatic.cn/ajax/libs"}},cdn_match_list=[];for(const e in cdn)for(const t in cdn[e])cdn_match_list.push({type:e,key:cdn[e][t]});const _console=console,color={black:"#000000",red:"#FF0000",green:"#008000",yellow:"#FFFF00",blue:"#0000FF",magenta:"#FF00FF",cyan:"#00FFFF",white:"#FFFFFF"},add=(...e)=>{let t=[[]];for(let r=0;r<e.length;r++){const[n,...o]=e[r];t[0]+=n,t=t.concat(o)}return t},createlog=e=>(...t)=>{("error"==e?_console[e]:_console.log).apply(void 0,t)},creategroup=e=>(...e)=>{_console.groupCollapsed.apply(void 0,e)},colorUtils={bold:e=>{if("string"==typeof e||"number"==typeof e)return`${e};font-weight: bold;`;for(let t=1;t<e.length;t++)e[t]+=";font-weight: bold;";return e}},colorHash={log:"black",wait:"cyan",error:"red",warn:"yellow",ready:"green",info:"blue",event:"magenta"},createChalk=e=>(...t)=>{if("object"==typeof t[0])return void createlog(e)(...add(colorUtils.bold(colorUtils[colorHash[e]](`[${firstToUpperCase(e)}] `)),...t));let r=t;"string"!=typeof t&&"number"!=typeof t||(r=colorUtils[colorHash[e]](t)),createlog(e)(...add(colorUtils.bold(colorUtils[colorHash[e]](`[${firstToUpperCase(e)}] `)),r))},createChalkBg=e=>(...t)=>{if("object"==typeof t[0])return void createlog(e)(...add(colorUtils.bold(colorUtils[`bg${firstToUpperCase(colorHash[e])}`](`[${firstToUpperCase(e)}] `)),...t));let r=t;"string"!=typeof t&&"number"!=typeof t||(r=colorUtils[colorHash[e]](t)),createlog(e)(...add(colorUtils.bold(colorUtils[`bg${firstToUpperCase(colorHash[e])}`](`[${firstToUpperCase(e)}] `)),r))},createChalkGroup=e=>(...t)=>{if("object"==typeof t[0])return void creategroup()(...add(colorUtils.bold(colorUtils[colorHash[e]](`[${firstToUpperCase(e)}] `)),...t));let r=t;"string"!=typeof t&&"number"!=typeof t||(r=colorUtils[colorHash[e]](t)),creategroup()(...add(colorUtils.bold(colorUtils[colorHash[e]](`[${firstToUpperCase(e)}] `)),r))},chalk={group:{end:_console.groupEnd},bg:{}};Object.keys(colorHash).forEach((e=>{chalk[e]=createChalk(e),chalk.group[e]=createChalkGroup(e),chalk.bg[e]=createChalkBg(e)}));const firstToUpperCase=e=>e.toLowerCase().replace(/( |^)[a-z]/g,(e=>e.toUpperCase()));Object.keys(color).forEach((e=>{colorUtils[e]=t=>{if("string"==typeof t||"number"==typeof t)return[`%c${t}`,`color:${color[e]}`];for(let r=1;r<t.length;r++)t[r]+=`;color:${color[e]}`;return t},colorUtils[`bg${firstToUpperCase(e)}`]=t=>{if("string"==typeof t||"number"==typeof t)return[`%c${t}`,`padding: 2px 4px; border-radius: 3px; color: ${"white"===e?"#000":"#fff"}; font-weight: bold; background:${color[e]};`];for(let r=1;r<t.length;r++)t[r]+=`;padding: 2px 4px; border-radius: 3px; font-weight: bold; background:${color[e]};`;return t}})),self.logger={add:add,...chalk,...colorUtils},debug||(logger={log:()=>{},wait:()=>{},error:()=>{},warn:()=>{},ready:()=>{},info:()=>{},event:()=>{},group:{log:()=>{},wait:()=>{},error:()=>{},warn:()=>{},ready:()=>{},info:()=>{},event:()=>{},end:()=>{}},bg:{log:()=>{},wait:()=>{},error:()=>{},warn:()=>{},ready:()=>{},info:()=>{},event:()=>{}}},console.log=()=>{});const generate_uuid=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}));self.db={read:(e,t)=>(t||(t={type:"text"}),new Promise(((t,r)=>{caches.open(CACHE_NAME).then((r=>{r.match(new Request(`https://LOCALCACHE/${encodeURIComponent(e)}`)).then((function(e){e||t(null),e.text().then((e=>t(e)))})).catch((()=>{t(null)}))}))}))),write:(e,t)=>new Promise(((r,n)=>{caches.open(CACHE_NAME).then((function(n){n.put(new Request(`https://LOCALCACHE/${encodeURIComponent(e)}`),new Response(t)),r()})).catch((()=>{n()}))}))};const compareVersion=(e,t)=>{let r=e.split("."),n=t.split(".");const o=Math.max(r.length,n.length);for(;r.length<o;)r.push("0");for(;n.length<o;)n.push("0");for(let a=0;a<o;a++){const o=parseInt(r[a]),s=parseInt(n[a]);if(o>s)return e;if(o<s)return t}return e},mirrors=[`https://registry.npmjs.org/${NPMPackage}/latest`,`https://registry.npmmirror.com/${NPMPackage}/latest`,`https://mirrors.cloud.tencent.com/npm/${NPMPackage}/latest`],getLocalVersion=async()=>{NPMPackageVersion=await db.read("blog_version")||NPMPackageVersion,logger.bg.info(`Local Version: ${NPMPackage}@${NPMPackageVersion}`)};let mirror_time=0;const setNewestVersion=async()=>{if(!NPMMirror)return;let e=null;return e=mirror_time%(mirrors.length+1)?fetch(mirrors[mirror_time%(mirrors.length+1)-1]):FetchEngine(mirrors),mirror_time++,e.then((e=>e.json())).then((async e=>{if(!e.version)throw"No Version Found!";NPMPackageVersion=compareVersion(e.version,await db.read("blog_version")||NPMPackageVersion),logger.bg.ready(`${NPMPackage}@${NPMPackageVersion}`),await db.write("blog_version",NPMPackageVersion)})).catch((e=>{logger.error("[Set Newest Version] "+(e.stack||e))}))};setInterval((async()=>{await setNewestVersion()}),6e4),setTimeout((async()=>{await setNewestVersion()}),5e3);const installFunction=async()=>(await getLocalVersion(),caches.open(CACHE_NAME+"-precache").then((async function(e){if(await db.read("uuid")||await db.write("uuid",generate_uuid()),PreCachlist.length){logger.group.event(`Precaching ${PreCachlist.length} files.`);let t=0;PreCachlist.forEach((function(r){e.match(new Request(r)).then((function(n){n?logger.ready(`Precaching ${r}`):(logger.wait(`Precaching ${r}`),e.add(new Request(r))),t++,t===PreCachlist.length&&(logger.ready(`Precached ${PreCachlist.length} files.`),logger.group.end())}))}))}})).catch((e=>{logger.error("[install] "+(e.stack||e))})));self.addEventListener("install",(async function(e){logger.bg.event("service worker install event listening");try{self.skipWaiting(),e.waitUntil(installFunction()),logger.bg.ready("service worker install sucess!")}catch(e){logger.error("[install] "+(e.stack||e))}})),self.addEventListener("activate",(async e=>{logger.bg.event("service worker activate event listening");try{e.waitUntil(caches.keys().then((e=>Promise.all(e.map((e=>{e.includes(cacheSuffixVersion)||(caches.delete(e),logger.bg.ready("Deleted Outdated Cache: "+e))}))))).catch((e=>{logger.error("[activate] "+(e.stack||e))}))),await self.clients.claim(),logger.bg.ready("service worker activate sucess!")}catch(e){logger.error("[activate] "+(e.stack||e))}})),self.addEventListener("fetch",(async e=>{e.respondWith(handleFetch(e).catch((t=>{logger.error("[fetch] "+e.request.url+"\n[error] "+(t.stack||t))})))}));const NetworkOnly=async e=>(logger.group.info("NetworkOnly: "+new URL(e.request.url).pathname),logger.wait("service worker fetch: "+e.request.url),logger.group.end(),fetch(e.request)),CacheFirst=async e=>caches.match(e.request).then((function(t){return logger.group.info("CacheFirst: "+new URL(e.request.url).pathname),logger.wait("service worker fetch: "+e.request.url),t?(logger.group.ready("Cache Hit"),console.log(t),logger.group.end(),logger.group.end(),e.waitUntil(CacheRuntime(e.request)),t):(logger.warn("Cache Miss"),logger.group.end(),CacheRuntime(e.request))})),CacheAlways=async e=>caches.match(e.request).then((function(t){return logger.group.info("CacheAlways: "+new URL(e.request.url).pathname),logger.wait("service worker fetch: "+e.request.url),t?(logger.group.ready("Cache Hit"),console.log(t),logger.group.end(),logger.group.end(),t):(logger.warn("Cache Miss"),logger.group.end(),CacheRuntime(e.request))})),matchCache=async e=>caches.match(e.request).then((function(t){return logger.group.info("service worker fetch: "+e.request.url),t?(logger.group.ready("Cache Hit"),console.log(t),logger.group.end(),logger.group.end(),t):(logger.warn("Cache Miss"),logger.group.end(),CacheRuntime(e.request))}));async function CacheRuntime(e){const t=new URL(e.url);let r=await matchCDN(e);if(r||(r=await fetch(e).catch((()=>null))),logger.group.event(`Cache Runtime ${t.pathname}`),logger.wait(`Caching url: ${e.url}`),console.log(r),"GET"===e.method&&"https:"==t.protocol){(await caches.open(CACHE_NAME+"-runtime")).put(e,r.clone()).catch((e=>{logger.error("[Cache Runtime] "+(e.stack||e)),"QuotaExceededError"===e.name&&(caches.delete(CACHE_NAME+"-runtime"),logger.ready("deleted cache"))})),logger.ready(`Cached url: ${e.url}`)}else logger.warn(`Not Cached url: ${e.url}`);return logger.group.end(),r}const matchCDN=async e=>{const t=navigator,{saveData:r,effectiveType:n}=t.connection||t.mozConnection||t.webkitConnection||{};if(r||/2g/.test(n))return logger.warn("Slow Network: Transparent Proxy"),fetch(e);const o=[];let a,s=new URL(e.url).pathname.split("/")[1],c="";if(NPMMirror&&new RegExp(location.origin).test(e.url)){logger.group.ready("Match NPM Mirror: "+e.url);for(const t in cdn.npm){let r=cdn.npm[t]+"/"+NPMPackage+"@"+NPMPackageVersion+e.url.replace(location.origin,"");r=fullPath(fullPath(r)),console.log(r),o.push(r)}logger.group.end()}if(!o.length){for(const t of cdn_match_list)if(new RegExp(t.key).test(e.url)){s=t.type,c=new RegExp(t.key).exec(e.url)[0];break}for(const t in cdn)if(t===s){logger.group.ready(`Match CDN ${s}: `+e.url);for(const r in cdn[t]){const n=cdn[t][r]+e.url.replace(c,"");console.log(n),o.push(n)}logger.group.end()}}if(a=o.length?FetchEngine(o):fetch(e),a&&NPMMirror&&new RegExp(location.origin).test(e.url)){const t=fullPath(fullPath(e.url)).split(".").pop(),r=getContentType(t);a=a.then((e=>e.arrayBuffer())).then((e=>new Response(e,{headers:{"Content-Type":r}}))).catch((()=>null))}return a},fullPath=e=>{if((e=e.split("?")[0].split("#")[0]).endsWith("/"))e+="index.html";else{const t=e.split("/");-1===t[t.length-1].indexOf(".")&&(e+=".html")}return e};async function progress(e){return new Response(await e.arrayBuffer(),{status:e.status,headers:e.headers})}function createPromiseAny(){Promise.any=function(e){return new Promise(((t,r)=>{let n=(e=Array.isArray(e)?e:[]).length,o=[];if(0===n)return r(new AggregateError("All promises were rejected"));e.forEach((e=>{e instanceof Promise?e.then((e=>t(e)),(e=>{n--,o.push(e),0===n&&r(new AggregateError(o))})):r(e)}))}))}}function fetchAny(e){const t=new AbortController;return e.map((e=>new Promise(((r,n)=>{fetch(e,{signal:t.signal}).then(progress).then((e=>{t.abort(),200!==e.status?n(null):r(e)})).catch((()=>n(null)))}))))}function fetchParallel(e){const t=new Event("abortOtherInstance"),r=new EventTarget;return e.map((async e=>{const n=new AbortController;let o=!1;return r.addEventListener(t.type,(()=>{o||n.abort()})),new Promise(((a,s)=>{fetch(e,{signal:n.signal}).then((e=>{o=!0,r.dispatchEvent(t),200!==e.status?s(null):a(e)})).catch((()=>s(null)))}))}))}const FetchEngine=e=>(Promise.any||createPromiseAny(),Promise.any(fetchParallel(e)).then((e=>e)).catch((t=>"AggregateError: All promises were rejected"==t?Promise.any(fetchAny(e)).then((e=>e)).catch((()=>null)):null))),getContentType=e=>{switch(e){case"js":return"text/javascript";case"html":return"text/html";case"css":return"text/css";case"json":case"map":return"application/json";case"webp":return"image/webp";case"jpg":return"image/jpg";case"jpeg":return"image/jpeg";case"png":return"image/png";case"gif":return"image/gif";case"xml":case"xsl":return"text/xml";case"webmanifest":return"text/webmanifest";case"bcmap":case"wbmp":return"image/vnd.wap.wbmp";case"bmp":return"image/bmp";case"ico":return"image/vnd.microsoft.icon";case"tiff":case"tif":return"image/tiff";case"svg":case"svgz":return"image/svg+xml";case"woff":return"application/font-woff";case"woff2":return"application/font-woff2";case"ttf":return"application/font-ttf";case"otf":return"application/font-otf";case"eot":return"application/vnd.ms-fontobject";case"zip":return"application/zip";case"tar":return"application/x-tar";case"gz":return"application/gzip";case"bz2":return"application/x-bzip2";case"rar":return"application/x-rar-compressed";case"7z":return"application/x-7z-compressed";case"doc":return"application/msword";case"docx":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"xls":return"application/vnd.ms-excel";case"xlsx":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"ppt":return"application/vnd.ms-powerpoint";case"pptx":return"application/vnd.openxmlformats-officedocument.presentationml.presentation";case"pdf":return"application/pdf";case"txt":default:return"text/plain";case"rtf":return"application/rtf";case"mp3":return"audio/mpeg";case"wav":return"audio/x-wav";case"ogg":return"audio/ogg";case"mp4":return"video/mp4";case"m4v":return"video/x-m4v";case"mov":return"video/quicktime";case"avi":return"video/x-msvideo";case"wmv":return"video/x-ms-wmv";case"flv":return"video/x-flv";case"swf":return"application/x-shockwave-flash";case"mpg":case"mpeg":case"mpe":case"mpv":case"m2v":return"video/mpeg";case"m4a":return"audio/mp4";case"aac":return"audio/aac";case"m3u":return"audio/x-mpegurl";case"m3u8":return"application/vnd.apple.mpegurl";case"pls":return"audio/x-scpls";case"cue":return"application/x-cue";case"wma":return"audio/x-ms-wma";case"flac":return"audio/flac";case"aif":case"aiff":case"aifc":return"audio/x-aiff";case"au":case"snd":return"audio/basic";case"mid":case"midi":case"kar":return"audio/midi"}};
2
+ //# sourceMappingURL=maps/sw.js.map