Repository navigation
Expand file tree
/
Copy pathsw.js
More file actions
864 lines (857 loc) · 43.1 KB
/
Copy pathsw.js
File metadata and controls
864 lines (857 loc) · 43.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
// 反物质维度 离线缓存 Service Worker
// 策略:install 时一次性预缓存全部游戏资源(核心 + 全部 JS 模块),
// 离线即可完整游玩。运行时新请求的资源继续缓存(cache-first)。
// 修改缓存内容时记得递增 CACHE_VERSION,否则旧缓存不会更新。
const CACHE_VERSION = "v17";
const CACHE_NAME = "ad-chinese-" + CACHE_VERSION;
const CORE_ASSETS = [
"./",
"./index.html",
"./manifest.json",
"./public/mobile-fix.js?17",
"./public/icon.png",
"./sw.js",
"./public/stylesheets/Barrio-Regular.ttf",
"./public/stylesheets/BlobEmoji-Bold.ttf",
"./public/stylesheets/MonospaceTypewriter.190830-2211.ttf",
"./public/stylesheets/MonospaceTypewriter.ttf",
"./public/stylesheets/Runescape.ttf",
"./public/stylesheets/ad-slider-component.css",
"./public/stylesheets/automator.css",
"./public/stylesheets/components.css",
"./public/stylesheets/fa-solid-900.ttf",
"./public/stylesheets/github-light.css",
"./public/stylesheets/glyphs.css",
"./public/stylesheets/mobile.css?17",
"./public/stylesheets/mobile-layout-core.css?17",
"./public/stylesheets/mobile-layout-meta.css?17",
"./public/stylesheets/mobile-beauty.css?17",
"./public/stylesheets/new-ui-styles.css",
"./public/stylesheets/old-ui.css",
"./public/stylesheets/styles.css",
"./public/stylesheets/theme-AMOLED Metro.css",
"./public/stylesheets/theme-AMOLED.css",
"./public/stylesheets/theme-Dark Metro.css",
"./public/stylesheets/theme-Dark.css",
"./public/stylesheets/theme-Inverted Metro.css",
"./public/stylesheets/theme-Inverted.css",
"./public/stylesheets/theme-Metro.css",
"./public/stylesheets/theme-S1.css",
"./public/stylesheets/theme-S10.css",
"./public/stylesheets/theme-S11.css",
"./public/stylesheets/theme-S12.css",
"./public/stylesheets/theme-S2.css",
"./public/stylesheets/theme-S3.css",
"./public/stylesheets/theme-S4.css",
"./public/stylesheets/theme-S5.css",
"./public/stylesheets/theme-S6.css",
"./public/stylesheets/theme-S7.css",
"./public/stylesheets/theme-S8.css",
"./public/stylesheets/theme-S9.css",
"./public/stylesheets/time-studies.css",
"./public/stylesheets/tooltips.css",
"./public/stylesheets/vis-network.css",
"./public/stylesheets/vue-sfc-classes.css"
];
// 游戏运行必需的全部 JS 模块(预缓存,确保离线可完整启动)
const JS_MODULES = [
"./src/env.js",
"./src/game.js",
"./src/main.js",
"./src/merge-globals.js",
"./src/shims.js",
"./src/supported-browsers.js",
"./src/steam/electron-runtime.js",
"./src/steam/index.js",
"./src/steam/steam-purchases.js",
"./src/steam/steam-runtime.js",
"./src/steam/bindings/PlayFabClientApi.js",
"./src/steam/bindings/electron.js",
"./src/steam/bindings/greenworks.js",
"./src/steam/bindings/node-module.js",
"./src/steam/bindings/playfab.js",
"./src/core/async-utils.js",
"./src/core/away-progress.js",
"./src/core/big-crunch.js",
"./src/core/black-hole.js",
"./src/core/break-infinity-upgrades.js",
"./src/core/cache.js",
"./src/core/confirmations.js",
"./src/core/constants.js",
"./src/core/crash.js",
"./src/core/currency.js",
"./src/core/devtools.js",
"./src/core/dilation.js",
"./src/core/dimboost.js",
"./src/core/discord-parser.js",
"./src/core/eternity-challenge.js",
"./src/core/eternity.js",
"./src/core/event-hub.js",
"./src/core/extensions.js",
"./src/core/format.js",
"./src/core/full-screen-animation-handler.js",
"./src/core/galaxy.js",
"./src/core/globals.js",
"./src/core/glyph-effects.js",
"./src/core/hotkeys.js",
"./src/core/imaginary-upgrades.js",
"./src/core/infinity-challenges.js",
"./src/core/infinity-upgrades.js",
"./src/core/intervals.js",
"./src/core/keyboard.js",
"./src/core/longpress.js",
"./src/core/machines.js",
"./src/core/math.js",
"./src/core/modal.js",
"./src/core/new-game.js",
"./src/core/news-ticker.js",
"./src/core/normal-challenges.js",
"./src/core/notations.js",
"./src/core/notify.js",
"./src/core/options.js",
"./src/core/payments.js",
"./src/core/performance-stats.js",
"./src/core/perks.js",
"./src/core/player-progress.js",
"./src/core/player.js",
"./src/core/polyfill.js",
"./src/core/reality-upgrades.js",
"./src/core/reality.js",
"./src/core/replicanti.js",
"./src/core/sacrifice.js",
"./src/core/shop.js",
"./src/core/speedrun.js",
"./src/core/tab-notifications.js",
"./src/core/tabs.js",
"./src/core/themes.js",
"./src/core/tickspeed.js",
"./src/core/time-theorems.js",
"./src/core/time.js",
"./src/core/timespan.js",
"./src/core/tutorial.js",
"./src/core/ui.init.js",
"./src/core/ui.js",
"./src/core/utils.js",
"./src/core/word-shift.js",
"./src/core/glyphs/auto-glyph-processor.js",
"./src/core/glyphs/glyph-core.js",
"./src/core/glyphs/glyph-cosmetics.js",
"./src/core/glyphs/glyph-effects.js",
"./src/core/glyphs/glyph-generator.js",
"./src/core/glyphs/glyph-purge-handler.js",
"./src/core/achievements/achievement-timer.js",
"./src/core/achievements/normal-achievement.js",
"./src/core/achievements/secret-achievement.js",
"./src/core/secret-formula/away-progress-types.js",
"./src/core/secret-formula/catchup-resources.js",
"./src/core/secret-formula/changelog.js",
"./src/core/secret-formula/confirmation-types.js",
"./src/core/secret-formula/credits.js",
"./src/core/secret-formula/discord-rich-presence.js",
"./src/core/secret-formula/game-database.js",
"./src/core/secret-formula/h2p.js",
"./src/core/secret-formula/index.js",
"./src/core/secret-formula/news.js",
"./src/core/secret-formula/progress-checker.js",
"./src/core/secret-formula/script-templates.js",
"./src/core/secret-formula/shop-purchases.js",
"./src/core/secret-formula/sidebar-resources.js",
"./src/core/secret-formula/speedrun-milestones.js",
"./src/core/secret-formula/tab-notifications.js",
"./src/core/secret-formula/tabs.js",
"./src/core/secret-formula/achievements/index.js",
"./src/core/secret-formula/achievements/normal-achievements.js",
"./src/core/secret-formula/achievements/secret-achievements.js",
"./src/core/secret-formula/challenges/eternity-challenges.js",
"./src/core/secret-formula/challenges/index.js",
"./src/core/secret-formula/challenges/infinity-challenges.js",
"./src/core/secret-formula/challenges/normal-challenges.js",
"./src/core/secret-formula/celestials/alchemy.js",
"./src/core/secret-formula/celestials/effarig.js",
"./src/core/secret-formula/celestials/enslaved.js",
"./src/core/secret-formula/celestials/galaxy-generator.js",
"./src/core/secret-formula/celestials/index.js",
"./src/core/secret-formula/celestials/navigation.js",
"./src/core/secret-formula/celestials/pelle-upgrades.js",
"./src/core/secret-formula/celestials/perk-shop.js",
"./src/core/secret-formula/celestials/ra.js",
"./src/core/secret-formula/celestials/rifts.js",
"./src/core/secret-formula/celestials/singularity-milestones.js",
"./src/core/secret-formula/celestials/strikes.js",
"./src/core/secret-formula/celestials/teresa.js",
"./src/core/secret-formula/celestials/v.js",
"./src/core/secret-formula/celestials/navigation-sigils/final-sigil.js",
"./src/core/secret-formula/celestials/navigation-sigils/galaxy-icon.js",
"./src/core/secret-formula/celestials/quotes/effarig.js",
"./src/core/secret-formula/celestials/quotes/enslaved.js",
"./src/core/secret-formula/celestials/quotes/index.js",
"./src/core/secret-formula/celestials/quotes/laitela.js",
"./src/core/secret-formula/celestials/quotes/pelle.js",
"./src/core/secret-formula/celestials/quotes/ra.js",
"./src/core/secret-formula/celestials/quotes/teresa.js",
"./src/core/secret-formula/celestials/quotes/v.js",
"./src/core/secret-formula/eternity/dilation-upgrades.js",
"./src/core/secret-formula/eternity/eternity-milestones.js",
"./src/core/secret-formula/eternity/eternity-upgrades.js",
"./src/core/secret-formula/eternity/index.js",
"./src/core/secret-formula/eternity/time-studies/dilation-time-studies.js",
"./src/core/secret-formula/eternity/time-studies/ec-time-studies.js",
"./src/core/secret-formula/eternity/time-studies/normal-time-studies.js",
"./src/core/secret-formula/reality/automator.js",
"./src/core/secret-formula/reality/glyph-cosmetics.js",
"./src/core/secret-formula/reality/glyph-effects.js",
"./src/core/secret-formula/reality/glyph-sacrifices.js",
"./src/core/secret-formula/reality/glyph-types.js",
"./src/core/secret-formula/reality/imaginary-upgrades.js",
"./src/core/secret-formula/reality/index.js",
"./src/core/secret-formula/reality/perks.js",
"./src/core/secret-formula/reality/reality-upgrades.js",
"./src/core/secret-formula/infinity/break-infinity-upgrades.js",
"./src/core/secret-formula/infinity/index.js",
"./src/core/secret-formula/infinity/infinity-upgrades.js",
"./src/core/secret-formula/multiplier-tab/antimatter-dimensions.js",
"./src/core/secret-formula/multiplier-tab/antimatter.js",
"./src/core/secret-formula/multiplier-tab/dilated-time.js",
"./src/core/secret-formula/multiplier-tab/eternities.js",
"./src/core/secret-formula/multiplier-tab/eternity-points.js",
"./src/core/secret-formula/multiplier-tab/galaxies.js",
"./src/core/secret-formula/multiplier-tab/gamespeed.js",
"./src/core/secret-formula/multiplier-tab/general.js",
"./src/core/secret-formula/multiplier-tab/helper-functions.js",
"./src/core/secret-formula/multiplier-tab/icons.js",
"./src/core/secret-formula/multiplier-tab/index.js",
"./src/core/secret-formula/multiplier-tab/infinities.js",
"./src/core/secret-formula/multiplier-tab/infinity-dimensions.js",
"./src/core/secret-formula/multiplier-tab/infinity-points.js",
"./src/core/secret-formula/multiplier-tab/replicanti.js",
"./src/core/secret-formula/multiplier-tab/tachyon-particles.js",
"./src/core/secret-formula/multiplier-tab/tickspeed.js",
"./src/core/secret-formula/multiplier-tab/time-dimensions.js",
"./src/core/secret-formula/multiplier-tab/tree.js",
"./src/core/secret-formula/multiplier-tab/values.js",
"./src/core/storage/base64-binary.js",
"./src/core/storage/cloud-saving.js",
"./src/core/storage/dev-migrations.js",
"./src/core/storage/firebase-config.js",
"./src/core/storage/index.js",
"./src/core/storage/migrations.js",
"./src/core/storage/progress-checker.js",
"./src/core/storage/serializer.js",
"./src/core/storage/storage.js",
"./src/core/automator/automator-backend.js",
"./src/core/automator/automator-codemirror.js",
"./src/core/automator/automator-commands.js",
"./src/core/automator/automator-points.js",
"./src/core/automator/compiler.js",
"./src/core/automator/index.js",
"./src/core/automator/lexer.js",
"./src/core/automator/parser.js",
"./src/core/automator/script-templates.js",
"./src/core/celestials/V.js",
"./src/core/celestials/celestials.js",
"./src/core/celestials/effarig.js",
"./src/core/celestials/enslaved.js",
"./src/core/celestials/quotes.js",
"./src/core/celestials/teresa.js",
"./src/core/celestials/ra/alchemy.js",
"./src/core/celestials/ra/ra.js",
"./src/core/celestials/pelle/galaxy-generator.js",
"./src/core/celestials/pelle/game-end.js",
"./src/core/celestials/pelle/pelle.js",
"./src/core/celestials/pelle/rifts.js",
"./src/core/celestials/pelle/strikes.js",
"./src/core/celestials/pelle/zalgo.js",
"./src/core/celestials/laitela/dark-matter-dimension.js",
"./src/core/celestials/laitela/laitela.js",
"./src/core/celestials/laitela/singularity.js",
"./src/core/game-mechanics/bit-purchasable.js",
"./src/core/game-mechanics/bit-upgrade-state.js",
"./src/core/game-mechanics/effect.js",
"./src/core/game-mechanics/effects.js",
"./src/core/game-mechanics/game-mechanic.js",
"./src/core/game-mechanics/index.js",
"./src/core/game-mechanics/puchasable.js",
"./src/core/game-mechanics/rebuyable.js",
"./src/core/game-mechanics/set-purchasable.js",
"./src/core/autobuyers/annihilation-autobuyer.js",
"./src/core/autobuyers/antimatter-dimension-autobuyer.js",
"./src/core/autobuyers/autobuyer.js",
"./src/core/autobuyers/autobuyers.js",
"./src/core/autobuyers/big-crunch-autobuyer.js",
"./src/core/autobuyers/black-hole-power-autobuyer.js",
"./src/core/autobuyers/dark-matter-dimension-ascension-autobuyer.js",
"./src/core/autobuyers/dark-matter-dimension-autobuyer.js",
"./src/core/autobuyers/dilation-upgrade-autobuyer.js",
"./src/core/autobuyers/dimboost-autobuyer.js",
"./src/core/autobuyers/eternity-autobuyer.js",
"./src/core/autobuyers/galaxy-autobuyer.js",
"./src/core/autobuyers/imaginary-upgrade-autobuyer.js",
"./src/core/autobuyers/infinity-dimension-autobuyer.js",
"./src/core/autobuyers/prestige-currency-multiplier-autobuyer.js",
"./src/core/autobuyers/reality-autobuyer.js",
"./src/core/autobuyers/reality-upgrade-autobuyer.js",
"./src/core/autobuyers/replicanti-galaxy-autobuyer.js",
"./src/core/autobuyers/replicanti-upgrade-autobuyer.js",
"./src/core/autobuyers/sacrifice-autobuyer.js",
"./src/core/autobuyers/singularity-autobuyer.js",
"./src/core/autobuyers/tickspeed-autobuyer.js",
"./src/core/autobuyers/time-dimension-autobuyer.js",
"./src/core/autobuyers/time-theorem-autobuyer.js",
"./src/core/time-studies/dilation-time-study.js",
"./src/core/time-studies/ec-time-study.js",
"./src/core/time-studies/index.js",
"./src/core/time-studies/normal-time-study.js",
"./src/core/time-studies/time-studies.js",
"./src/core/time-studies/time-study-connections.js",
"./src/core/time-studies/time-study-tree.js",
"./src/core/dimensions/antimatter-dimension.js",
"./src/core/dimensions/dimension.js",
"./src/core/dimensions/infinity-dimension.js",
"./src/core/dimensions/time-dimension.js",
"./src/components/BackgroundAnimations.js",
"./src/components/BlobBackground.js",
"./src/components/BlobSnowflake.js",
"./src/components/BlobSnowflakes.js",
"./src/components/ButtonCycle.js",
"./src/components/CelestialQuoteHistory.js",
"./src/components/ChallengeBox.js",
"./src/components/ChallengeGrid.js",
"./src/components/ChallengeGridCell.js",
"./src/components/ChallengeTabHeader.js",
"./src/components/CostDisplay.js",
"./src/components/CreditsDisplay.js",
"./src/components/CustomizeableTooltip.js",
"./src/components/DescriptionDisplay.js",
"./src/components/EffectDisplay.js",
"./src/components/EternityPointsHeader.js",
"./src/components/ExpandingControlBox.js",
"./src/components/ExternalSpeedButton.js",
"./src/components/GameSpeedDisplay.js",
"./src/components/GameUIComponent.js",
"./src/components/GameUiComponentFixed.js",
"./src/components/GenericDimensionRowText.js",
"./src/components/GlyphComponent.js",
"./src/components/GlyphSetName.js",
"./src/components/GlyphSetPreview.js",
"./src/components/GlyphTooltip.js",
"./src/components/GlyphTooltipEffect.js",
"./src/components/HintText.js",
"./src/components/HowToPlay.js",
"./src/components/InfinityPointsHeader.js",
"./src/components/InfinityUpgradeButton.js",
"./src/components/ModalOptionsToggleButton.js",
"./src/components/OfflineSpeedupButton.js",
"./src/components/OpenModalHotkeysButton.js",
"./src/components/OptionsButton.js",
"./src/components/PlusMinusButton.js",
"./src/components/PrimaryButton.js",
"./src/components/PrimaryToggleButton.js",
"./src/components/RealityCurrencyHeader.js",
"./src/components/SaveTimer.js",
"./src/components/SliderComponent.js",
"./src/components/SpectateGame.js",
"./src/components/SpeedrunStatus.js",
"./src/components/ToggleButton.js",
"./src/components/tabs/index.js",
"./src/components/tabs/celestial-navigation/CelestialNavigationTab.js",
"./src/components/tabs/celestial-navigation/NodeBackground.js",
"./src/components/tabs/celestial-navigation/NodeOverlay.js",
"./src/components/tabs/celestial-navigation/NodeRing.js",
"./src/components/tabs/celestial-navigation/ProgressConnector.js",
"./src/components/tabs/celestial-navigation/svg-ring-path.js",
"./src/components/tabs/statistics/MultiplierBreakdownEntry.js",
"./src/components/tabs/statistics/MultiplierBreakdownTab.js",
"./src/components/tabs/statistics/StatisticsTab.js",
"./src/components/tabs/statistics/breakdown-entry-info-group.js",
"./src/components/tabs/statistics/breakdown-entry-info.js",
"./src/components/tabs/statistics/matter-scale.js",
"./src/components/tabs/statistics/percentage-rolling-average.js",
"./src/components/tabs/glyphs/CurrentGlyphEffect.js",
"./src/components/tabs/glyphs/CurrentGlyphEffects.js",
"./src/components/tabs/glyphs/EquippedGlyphs.js",
"./src/components/tabs/glyphs/GlyphInventory.js",
"./src/components/tabs/glyphs/GlyphLevelsAndWeights.js",
"./src/components/tabs/glyphs/GlyphPeek.js",
"./src/components/tabs/glyphs/GlyphsTab.js",
"./src/components/tabs/glyphs/RealityAmplifyButton.js",
"./src/components/tabs/glyphs/RealityReminder.js",
"./src/components/tabs/glyphs/ResetRealityButton.js",
"./src/components/tabs/glyphs/SacrificedGlyphs.js",
"./src/components/tabs/glyphs/SingleGlyphCustomzationPanel.js",
"./src/components/tabs/glyphs/TypeSacrifice.js",
"./src/components/tabs/glyphs/sidebar/AutoSacrificeAdvancedTab.js",
"./src/components/tabs/glyphs/sidebar/AutoSacrificeEffectTab.js",
"./src/components/tabs/glyphs/sidebar/GlyphAutosortButtonGroup.js",
"./src/components/tabs/glyphs/sidebar/GlyphCleanButtonGroup.js",
"./src/components/tabs/glyphs/sidebar/GlyphFilterPanel.js",
"./src/components/tabs/glyphs/sidebar/GlyphInventoryManagementPanel.js",
"./src/components/tabs/glyphs/sidebar/GlyphProtectedRowButtonGroup.js",
"./src/components/tabs/glyphs/sidebar/GlyphRejectionPanel.js",
"./src/components/tabs/glyphs/sidebar/GlyphSetSavePanel.js",
"./src/components/tabs/glyphs/sidebar/GlyphSortButtonGroup.js",
"./src/components/tabs/glyphs/sidebar/GlyphTabSidebar.js",
"./src/components/tabs/glyphs/sidebar/SelectedEffectToggle.js",
"./src/components/tabs/glyph-set-records/GlyphSetRecordsTab.js",
"./src/components/tabs/options-visual/OptionsVisualTab.js",
"./src/components/tabs/options-visual/SelectNotationDropdown.js",
"./src/components/tabs/options-visual/SelectSidebarDropdown.js",
"./src/components/tabs/options-visual/SelectThemeDropdown.js",
"./src/components/tabs/options-visual/UpdateRateSlider.js",
"./src/components/tabs/replicanti/ReplicantiGainText.js",
"./src/components/tabs/replicanti/ReplicantiGalaxyButton.js",
"./src/components/tabs/replicanti/ReplicantiTab.js",
"./src/components/tabs/replicanti/ReplicantiUpgradeButton.js",
"./src/components/tabs/celestial-pelle/ArmageddonButton.js",
"./src/components/tabs/celestial-pelle/CreditsContainer.js",
"./src/components/tabs/celestial-pelle/FadeAway.js",
"./src/components/tabs/celestial-pelle/NewGame.js",
"./src/components/tabs/celestial-pelle/PelleBarPanel.js",
"./src/components/tabs/celestial-pelle/PelleGalaxyGeneratorPanel.js",
"./src/components/tabs/celestial-pelle/PelleRift.js",
"./src/components/tabs/celestial-pelle/PelleRiftBar.js",
"./src/components/tabs/celestial-pelle/PelleStrike.js",
"./src/components/tabs/celestial-pelle/PelleTab.js",
"./src/components/tabs/celestial-pelle/PelleUpgrade.js",
"./src/components/tabs/celestial-pelle/PelleUpgradePanel.js",
"./src/components/tabs/celestial-pelle/RemnantGainFactor.js",
"./src/components/tabs/past-prestige-runs/PastPrestigeRunsContainer.js",
"./src/components/tabs/past-prestige-runs/PastPrestigeRunsTab.js",
"./src/components/tabs/normal-challenges/NormalChallengeBox.js",
"./src/components/tabs/normal-challenges/NormalChallengesTab.js",
"./src/components/tabs/infinity-dimensions/ClassicInfinityDimensionRow.js",
"./src/components/tabs/infinity-dimensions/ClassicInfinityDimensionsTab.js",
"./src/components/tabs/infinity-dimensions/InfinityDimensionsTab.js",
"./src/components/tabs/infinity-dimensions/ModernInfinityDimensionRow.js",
"./src/components/tabs/infinity-dimensions/ModernInfinityDimensionsTab.js",
"./src/components/tabs/options-gameplay/OptionsGameplayTab.js",
"./src/components/tabs/celestial-enslaved/EnslavedTab.js",
"./src/components/tabs/antimatter-dimensions/AntimatterDimensionProgressBar.js",
"./src/components/tabs/antimatter-dimensions/AntimatterDimensionsTab.js",
"./src/components/tabs/antimatter-dimensions/ClassicAntimatterDimensionRow.js",
"./src/components/tabs/antimatter-dimensions/ClassicAntimatterDimensionsTab.js",
"./src/components/tabs/antimatter-dimensions/ClassicAntimatterDimensionsTabHeader.js",
"./src/components/tabs/antimatter-dimensions/ClassicAntimatterGalaxyRow.js",
"./src/components/tabs/antimatter-dimensions/ClassicDimensionBoostRow.js",
"./src/components/tabs/antimatter-dimensions/ModernAntimatterDimensionRow.js",
"./src/components/tabs/antimatter-dimensions/ModernAntimatterDimensionsTab.js",
"./src/components/tabs/antimatter-dimensions/ModernAntimatterGalaxyRow.js",
"./src/components/tabs/antimatter-dimensions/ModernDimensionBoostRow.js",
"./src/components/tabs/antimatter-dimensions/TickspeedRow.js",
"./src/components/tabs/celestial-ra/RaPet.js",
"./src/components/tabs/celestial-ra/RaPetLevelBar.js",
"./src/components/tabs/celestial-ra/RaPetRemembranceButton.js",
"./src/components/tabs/celestial-ra/RaTab.js",
"./src/components/tabs/celestial-ra/RaUpgradeIcon.js",
"./src/components/tabs/time-dimensions/ClassicTimeDimensionRow.js",
"./src/components/tabs/time-dimensions/ClassicTimeDimensionsTab.js",
"./src/components/tabs/time-dimensions/ModernTimeDimensionRow.js",
"./src/components/tabs/time-dimensions/ModernTimeDimensionsTab.js",
"./src/components/tabs/time-dimensions/TimeDimensionsTab.js",
"./src/components/tabs/speedrun-milestones/PreviousSpeedrunInfo.js",
"./src/components/tabs/speedrun-milestones/PreviousSpeedrunTab.js",
"./src/components/tabs/speedrun-milestones/SpeedrunMilestoneCompare.js",
"./src/components/tabs/speedrun-milestones/SpeedrunMilestoneSingle.js",
"./src/components/tabs/speedrun-milestones/SpeedrunMilestonesTab.js",
"./src/components/tabs/celestial-teresa/PerkShopUpgradeButton.js",
"./src/components/tabs/celestial-teresa/TeresaTab.js",
"./src/components/tabs/infinity-upgrades/InfinityUpgradesTab.js",
"./src/components/tabs/infinity-upgrades/IpMultiplierButton.js",
"./src/components/tabs/black-hole/BlackHoleChargingSliders.js",
"./src/components/tabs/black-hole/BlackHoleStateRow.js",
"./src/components/tabs/black-hole/BlackHoleTab.js",
"./src/components/tabs/black-hole/BlackHoleUnlockButton.js",
"./src/components/tabs/black-hole/BlackHoleUpgradeButton.js",
"./src/components/tabs/black-hole/BlackHoleUpgradeRow.js",
"./src/components/tabs/black-hole/black-hole-animation.js",
"./src/components/tabs/shop/ShopButton.js",
"./src/components/tabs/shop/ShopTab.js",
"./src/components/tabs/imaginary-upgrades/ImaginaryUpgradeButton.js",
"./src/components/tabs/imaginary-upgrades/ImaginaryUpgradesTab.js",
"./src/components/tabs/eternity-challenges/EternityChallengeBox.js",
"./src/components/tabs/eternity-challenges/EternityChallengeBoxWrapper.js",
"./src/components/tabs/eternity-challenges/EternityChallengesTab.js",
"./src/components/tabs/celestial-laitela/AnnihilationButton.js",
"./src/components/tabs/celestial-laitela/DarkMatterDimensionGroup.js",
"./src/components/tabs/celestial-laitela/DarkMatterDimensionRow.js",
"./src/components/tabs/celestial-laitela/LaitelaAutobuyerPane.js",
"./src/components/tabs/celestial-laitela/LaitelaRunButton.js",
"./src/components/tabs/celestial-laitela/LaitelaTab.js",
"./src/components/tabs/celestial-laitela/SingularityMilestoneComponent.js",
"./src/components/tabs/celestial-laitela/SingularityMilestonePane.js",
"./src/components/tabs/celestial-laitela/SingularityPane.js",
"./src/components/tabs/challenge-records/ChallengeRecordsList.js",
"./src/components/tabs/challenge-records/ChallengeRecordsTab.js",
"./src/components/tabs/options-saving/AutosaveIntervalSlider.js",
"./src/components/tabs/options-saving/OptionsSavingTab.js",
"./src/components/tabs/options-saving/SaveFileName.js",
"./src/components/tabs/time-dilation/DilationButton.js",
"./src/components/tabs/time-dilation/DilationUpgradeButton.js",
"./src/components/tabs/time-dilation/TachyonParticle.js",
"./src/components/tabs/time-dilation/TachyonParticles.js",
"./src/components/tabs/time-dilation/TimeDilationTab.js",
"./src/components/tabs/secret-achievements/SecretAchievement.js",
"./src/components/tabs/secret-achievements/SecretAchievementRow.js",
"./src/components/tabs/secret-achievements/SecretAchievementTab.js",
"./src/components/tabs/eternity-milestones/EternityMilestoneButton.js",
"./src/components/tabs/eternity-milestones/EternityMilestonesTab.js",
"./src/components/tabs/normal-achievements/NormalAchievement.js",
"./src/components/tabs/normal-achievements/NormalAchievementRow.js",
"./src/components/tabs/normal-achievements/NormalAchievementsTab.js",
"./src/components/tabs/normal-achievements/SwapAchievementImagesButton.js",
"./src/components/tabs/automator/AutomatorBlockEditor.js",
"./src/components/tabs/automator/AutomatorBlockSingleInput.js",
"./src/components/tabs/automator/AutomatorBlockSingleRow.js",
"./src/components/tabs/automator/AutomatorBlocks.js",
"./src/components/tabs/automator/AutomatorButton.js",
"./src/components/tabs/automator/AutomatorControls.js",
"./src/components/tabs/automator/AutomatorDataTransferPage.js",
"./src/components/tabs/automator/AutomatorDataTransferSingleEntry.js",
"./src/components/tabs/automator/AutomatorDefinePage.js",
"./src/components/tabs/automator/AutomatorDefineSingleEntry.js",
"./src/components/tabs/automator/AutomatorDocs.js",
"./src/components/tabs/automator/AutomatorDocsCommandList.js",
"./src/components/tabs/automator/AutomatorDocsIntroPage.js",
"./src/components/tabs/automator/AutomatorDocsManPage.js",
"./src/components/tabs/automator/AutomatorDocsTemplateList.js",
"./src/components/tabs/automator/AutomatorEditor.js",
"./src/components/tabs/automator/AutomatorErrorPage.js",
"./src/components/tabs/automator/AutomatorEventLog.js",
"./src/components/tabs/automator/AutomatorModeSwitch.js",
"./src/components/tabs/automator/AutomatorPointsList.js",
"./src/components/tabs/automator/AutomatorScriptDropdownEntryList.js",
"./src/components/tabs/automator/AutomatorTab.js",
"./src/components/tabs/automator/AutomatorTextEditor.js",
"./src/components/tabs/infinity-challenges/InfinityChallengeBox.js",
"./src/components/tabs/infinity-challenges/InfinityChallengesTab.js",
"./src/components/tabs/celestial-effarig/EffarigRunUnlockReward.js",
"./src/components/tabs/celestial-effarig/EffarigTab.js",
"./src/components/tabs/celestial-effarig/EffarigUnlockButton.js",
"./src/components/tabs/autobuyers/AutobuyerBox.js",
"./src/components/tabs/autobuyers/AutobuyerDropdownEntry.js",
"./src/components/tabs/autobuyers/AutobuyerGroupToggleLabel.js",
"./src/components/tabs/autobuyers/AutobuyerInput.js",
"./src/components/tabs/autobuyers/AutobuyerIntervalButton.js",
"./src/components/tabs/autobuyers/AutobuyerIntervalLabel.js",
"./src/components/tabs/autobuyers/AutobuyerModeButton.js",
"./src/components/tabs/autobuyers/AutobuyerSingleToggleLabel.js",
"./src/components/tabs/autobuyers/AutobuyerToggleLabel.js",
"./src/components/tabs/autobuyers/AutobuyerToggles.js",
"./src/components/tabs/autobuyers/AutobuyersTab.js",
"./src/components/tabs/autobuyers/BigCrunchAutobuyerBox.js",
"./src/components/tabs/autobuyers/DimensionAutobuyerBox.js",
"./src/components/tabs/autobuyers/DimensionBoostAutobuyerBox.js",
"./src/components/tabs/autobuyers/DimensionBulkButton.js",
"./src/components/tabs/autobuyers/EternityAutobuyerBox.js",
"./src/components/tabs/autobuyers/GalaxyAutobuyerBox.js",
"./src/components/tabs/autobuyers/MultipleAutobuyersBox.js",
"./src/components/tabs/autobuyers/MultipleSingleAutobuyersGroup.js",
"./src/components/tabs/autobuyers/RealityAutobuyerBox.js",
"./src/components/tabs/autobuyers/SimpleAutobuyersMultiBox.js",
"./src/components/tabs/autobuyers/SingleAutobuyerBox.js",
"./src/components/tabs/autobuyers/SingleAutobuyerInRow.js",
"./src/components/tabs/autobuyers/TickspeedAutobuyerBox.js",
"./src/components/tabs/time-studies/DilationTimeStudy.js",
"./src/components/tabs/time-studies/ECTimeStudy.js",
"./src/components/tabs/time-studies/EnslavedTimeStudy.js",
"./src/components/tabs/time-studies/HiddenTimeStudyConnection.js",
"./src/components/tabs/time-studies/NormalTimeStudy.js",
"./src/components/tabs/time-studies/SecretTimeStudy.js",
"./src/components/tabs/time-studies/TimeStudiesTab.js",
"./src/components/tabs/time-studies/TimeStudyButton.js",
"./src/components/tabs/time-studies/TimeStudyConnection.js",
"./src/components/tabs/time-studies/TriadTimeStudy.js",
"./src/components/tabs/time-studies/time-study-tree-layout.js",
"./src/components/tabs/time-studies/tt-shop/HoverMenu.js",
"./src/components/tabs/time-studies/tt-shop/TimeStudySaveLoadButton.js",
"./src/components/tabs/time-studies/tt-shop/TimeTheoremBuyButton.js",
"./src/components/tabs/time-studies/tt-shop/TimeTheoremShop.js",
"./src/components/tabs/celestial-v/VTab.js",
"./src/components/tabs/celestial-v/VUnlockRequirement.js",
"./src/components/tabs/break-infinity/BreakInfinityButton.js",
"./src/components/tabs/break-infinity/BreakInfinityTab.js",
"./src/components/tabs/eternity-upgrades/EPMultiplierButton.js",
"./src/components/tabs/eternity-upgrades/EternityUpgradeButton.js",
"./src/components/tabs/eternity-upgrades/EternityUpgradesTab.js",
"./src/components/tabs/reality-upgrades/RealityUpgradeButton.js",
"./src/components/tabs/reality-upgrades/RealityUpgradesTab.js",
"./src/components/tabs/perks/PerkPointLabel.js",
"./src/components/tabs/perks/PerksTab.js",
"./src/components/tabs/alchemy/AlchemyCircleNode.js",
"./src/components/tabs/alchemy/AlchemyResourceArc.js",
"./src/components/tabs/alchemy/AlchemyResourceInfo.js",
"./src/components/tabs/alchemy/AlchemyTab.js",
"./src/components/tabs/alchemy/alchemy-circle-layout.js",
"./src/components/modals/AutobuyerEditModal.js",
"./src/components/modals/AutomatorScriptTemplate.js",
"./src/components/modals/AwayProgressEntry.js",
"./src/components/modals/AwayProgressModal.js",
"./src/components/modals/BreakInfinityModal.js",
"./src/components/modals/ChangeNameModal.js",
"./src/components/modals/ChangelogModal.js",
"./src/components/modals/ClearConstantsModal.js",
"./src/components/modals/CreditsModal.js",
"./src/components/modals/DeleteAutomatorScriptModal.js",
"./src/components/modals/EnslavedHintsModal.js",
"./src/components/modals/GlyphSetSaveDeleteModal.js",
"./src/components/modals/GlyphShowcasePanelEntry.js",
"./src/components/modals/GlyphShowcasePanelModal.js",
"./src/components/modals/H2PModal.js",
"./src/components/modals/ImportAutomatorDataModal.js",
"./src/components/modals/ImportFilterModal.js",
"./src/components/modals/ImportFilterSingleType.js",
"./src/components/modals/ImportSaveModal.js",
"./src/components/modals/ImportTimeStudyConstants.js",
"./src/components/modals/InformationModal.js",
"./src/components/modals/InformationModalButton.js",
"./src/components/modals/LoadGameEntry.js",
"./src/components/modals/LoadGameModal.js",
"./src/components/modals/MessageModal.js",
"./src/components/modals/ModalCloseButton.js",
"./src/components/modals/ModalConfirmationCheck.js",
"./src/components/modals/ModalProgressBar.js",
"./src/components/modals/ModalWrapper.js",
"./src/components/modals/ModalWrapperChoice.js",
"./src/components/modals/ModifySeedModal.js",
"./src/components/modals/PelleEffectsModal.js",
"./src/components/modals/PopupModal.js",
"./src/components/modals/RealityGlyphCreationModal.js",
"./src/components/modals/ReplaceGlyphModal.js",
"./src/components/modals/RespecIAPModal.js",
"./src/components/modals/SacrificeModal.js",
"./src/components/modals/SingularityMilestonesModal.js",
"./src/components/modals/SpeedrunModeModal.js",
"./src/components/modals/StdStoreModal.js",
"./src/components/modals/StdStoreRow.js",
"./src/components/modals/StudyStringLine.js",
"./src/components/modals/StudyStringModal.js",
"./src/components/modals/StudyTreeInfo.js",
"./src/components/modals/SwitchAutomatorEditorModal.js",
"./src/components/modals/UiChoiceModal.js",
"./src/components/modals/UndoGlyphModal.js",
"./src/components/modals/UpgradeMechanicLockModal.js",
"./src/components/modals/options/AnimationOptionsModal.js",
"./src/components/modals/options/AwayProgressOptionsEntry.js",
"./src/components/modals/options/AwayProgressOptionsModal.js",
"./src/components/modals/options/BackupEntry.js",
"./src/components/modals/options/BackupWindowModal.js",
"./src/components/modals/options/ConfirmationOptionsEntry.js",
"./src/components/modals/options/ConfirmationOptionsModal.js",
"./src/components/modals/options/HotkeysModal.js",
"./src/components/modals/options/InfoDisplayOptionsModal.js",
"./src/components/modals/options/ModalWrapperOptions.js",
"./src/components/modals/options/NewsOptionsModal.js",
"./src/components/modals/options/NotationModal.js",
"./src/components/modals/options/PreferredTreeModal.js",
"./src/components/modals/options/SelectGlyphInfoDropdown.js",
"./src/components/modals/options/glyph-appearance/CosmeticSetChoiceModal.js",
"./src/components/modals/options/glyph-appearance/CosmeticSetDropdown.js",
"./src/components/modals/options/glyph-appearance/GlyphCustomization.js",
"./src/components/modals/options/glyph-appearance/GlyphCustomizationSingleType.js",
"./src/components/modals/options/glyph-appearance/GlyphCustomizationSlidingWindow.js",
"./src/components/modals/options/glyph-appearance/GlyphDisplayOptionsModal.js",
"./src/components/modals/options/glyph-appearance/SingleGlyphAppearanceModal.js",
"./src/components/modals/options/hidden-tabs/HiddenSubtabsButton.js",
"./src/components/modals/options/hidden-tabs/HiddenTabGroup.js",
"./src/components/modals/options/hidden-tabs/HiddenTabsModal.js",
"./src/components/modals/prestige/AntimatterGalaxyModal.js",
"./src/components/modals/prestige/ArmageddonModal.js",
"./src/components/modals/prestige/BigCrunchModal.js",
"./src/components/modals/prestige/DimensionBoostModal.js",
"./src/components/modals/prestige/EnterCelestialsModal.js",
"./src/components/modals/prestige/EnterCelestialsRaPet.js",
"./src/components/modals/prestige/EnterDilationModal.js",
"./src/components/modals/prestige/EternityModal.js",
"./src/components/modals/prestige/ExitChallengeModal.js",
"./src/components/modals/prestige/ExitDilationModal.js",
"./src/components/modals/prestige/HardResetModal.js",
"./src/components/modals/prestige/RealityModal.js",
"./src/components/modals/prestige/ReplicantiGalaxyModal.js",
"./src/components/modals/prestige/ResetModal.js",
"./src/components/modals/prestige/ResetRealityModal.js",
"./src/components/modals/challenges/EternityChallengeStartModal.js",
"./src/components/modals/challenges/InfinityChallengeStartModal.js",
"./src/components/modals/challenges/NormalChallengeStartModal.js",
"./src/components/modals/secret-themes/S12GameEntries.js",
"./src/components/modals/secret-themes/S12GamesModal.js",
"./src/components/modals/secret-themes/s12-games.js",
"./src/components/modals/time-study-modal-preview/PseudoTimeStudyButton.js",
"./src/components/modals/time-study-modal-preview/PseudoTimeStudyConnection.js",
"./src/components/modals/time-study-modal-preview/StudyStringPreview.js",
"./src/components/modals/glyph-management/DeleteCompanionGlyphModal.js",
"./src/components/modals/glyph-management/DeleteGlyphModal.js",
"./src/components/modals/glyph-management/PurgeAllRejectedGlyphsModal.js",
"./src/components/modals/glyph-management/PurgeAllUnprotectedGlyphsModal.js",
"./src/components/modals/glyph-management/PurgeGlyphModal.js",
"./src/components/modals/glyph-management/RefineGlyphModal.js",
"./src/components/modals/glyph-management/SacrificeGlyphModal.js",
"./src/components/modals/celestial-quotes/CelestialQuoteBackground.js",
"./src/components/modals/celestial-quotes/CelestialQuoteHistoryDisplay.js",
"./src/components/modals/celestial-quotes/CelestialQuoteLine.js",
"./src/components/modals/celestial-quotes/CelestialQuoteModal.js",
"./src/components/modals/celestial-quotes/templates/CelestialQuoteLineBasicInteractable.js",
"./src/components/modals/catchup/CatchupEntry.js",
"./src/components/modals/catchup/CatchupGroup.js",
"./src/components/modals/catchup/CatchupModal.js",
"./src/components/ui-modes/BigCrunchButton.js",
"./src/components/ui-modes/FailableEcText.js",
"./src/components/ui-modes/GameHeader.js",
"./src/components/ui-modes/HeaderBlackHole.js",
"./src/components/ui-modes/HeaderBlackHoleStatusText.js",
"./src/components/ui-modes/HeaderChallengeDisplay.js",
"./src/components/ui-modes/HeaderChallengeEffects.js",
"./src/components/ui-modes/HeaderPrestigeGroup.js",
"./src/components/ui-modes/HeaderTickspeedInfo.js",
"./src/components/ui-modes/NewsTicker.js",
"./src/components/ui-modes/classic/ClassicSubtabBar.js",
"./src/components/ui-modes/classic/ClassicSubtabButton.js",
"./src/components/ui-modes/classic/ClassicTabBar.js",
"./src/components/ui-modes/classic/ClassicTabButton.js",
"./src/components/ui-modes/classic/ClassicUi.js",
"./src/components/ui-modes/prestige-header/BigCrunchButton.js",
"./src/components/ui-modes/prestige-header/EternityButton.js",
"./src/components/ui-modes/prestige-header/HeaderCenterContainer.js",
"./src/components/ui-modes/prestige-header/HeaderEternityContainer.js",
"./src/components/ui-modes/prestige-header/HeaderInfinityContainer.js",
"./src/components/ui-modes/prestige-header/RealityButton.js",
"./src/components/ui-modes/prestige-header/UnlockInfinityDimButton.js",
"./src/components/ui-modes/modern/ModernSidebar.js",
"./src/components/ui-modes/modern/ModernSidebarCurrency.js",
"./src/components/ui-modes/modern/ModernTabButton.js",
"./src/components/ui-modes/modern/ModernUi.js",
"./src/components/ui-modes/s12/DesktopIcons.js",
"./src/components/ui-modes/s12/S12Subtabs.js",
"./src/components/ui-modes/s12/S12Taskbar.js",
"./src/components/ui-modes/s12/S12Ui.js",
"./src/components/ui-modes/s12/S12UiFixed.js",
"./src/components/ui-modes/s12/TaskbarIcon.js",
"./src/components/ui-modes/s12/desktop-icons.js",
"./src/components/ui-modes/s12/windows.js",
"./src/utility/deepmerge.js",
"./src/utility/index.js",
"./src/utility/open-external-link.js",
"./src/utility/type-check.js",
"./modules/break_infinity.js",
"./modules/chevrotain.js",
"./modules/drag-drop-touch.js",
"./modules/gamma.js",
"./modules/mousetrap.js",
"./modules/notations.js",
"./modules/pako.js",
"./modules/sha512.js",
"./modules/sortable.js",
"./modules/svg-pan-zoom.js",
"./modules/tslib.js",
"./modules/tween.js",
"./modules/v-tooltip.js",
"./modules/vis-network.js",
"./modules/vue-gtag.js",
"./modules/vue-loading.js",
"./modules/vue-split-pane.js",
"./modules/vue.js",
"./modules/vuedraggable.js",
"./modules/codemirror/lib/codemirror.js",
"./modules/codemirror/addon/hint/anyword-hint.js",
"./modules/codemirror/addon/hint/css-hint.js",
"./modules/codemirror/addon/hint/html-hint.js",
"./modules/codemirror/addon/hint/javascript-hint.js",
"./modules/codemirror/addon/hint/show-hint.js",
"./modules/codemirror/addon/hint/sql-hint.js",
"./modules/codemirror/addon/hint/xml-hint.js",
"./modules/codemirror/addon/lint/coffeescript-lint.js",
"./modules/codemirror/addon/lint/css-lint.js",
"./modules/codemirror/addon/lint/html-lint.js",
"./modules/codemirror/addon/lint/javascript-lint.js",
"./modules/codemirror/addon/lint/json-lint.js",
"./modules/codemirror/addon/lint/lint.js",
"./modules/codemirror/addon/lint/yaml-lint.js",
"./modules/codemirror/addon/scroll/annotatescrollbar.js",
"./modules/codemirror/addon/scroll/scrollpastend.js",
"./modules/codemirror/addon/scroll/simplescrollbars.js",
"./modules/codemirror/addon/mode/loadmode.js",
"./modules/codemirror/addon/mode/multiplex.js",
"./modules/codemirror/addon/mode/multiplex_test.js",
"./modules/codemirror/addon/mode/overlay.js",
"./modules/codemirror/addon/mode/simple.js",
"./modules/codemirror/addon/merge/merge.js",
"./modules/codemirror/addon/comment/comment.js",
"./modules/codemirror/addon/comment/continuecomment.js",
"./modules/codemirror/addon/search/jump-to-line.js",
"./modules/codemirror/addon/search/match-highlighter.js",
"./modules/codemirror/addon/search/matchesonscrollbar.js",
"./modules/codemirror/addon/search/search.js",
"./modules/codemirror/addon/search/searchcursor.js",
"./modules/codemirror/addon/dialog/dialog.js",
"./modules/codemirror/addon/edit/closebrackets.js",
"./modules/codemirror/addon/edit/closetag.js",
"./modules/codemirror/addon/edit/continuelist.js",
"./modules/codemirror/addon/edit/matchbrackets.js",
"./modules/codemirror/addon/edit/matchtags.js",
"./modules/codemirror/addon/edit/trailingspace.js",
"./modules/codemirror/addon/wrap/hardwrap.js",
"./modules/codemirror/addon/fold/brace-fold.js",
"./modules/codemirror/addon/fold/comment-fold.js",
"./modules/codemirror/addon/fold/foldcode.js",
"./modules/codemirror/addon/fold/foldgutter.js",
"./modules/codemirror/addon/fold/indent-fold.js",
"./modules/codemirror/addon/fold/markdown-fold.js",
"./modules/codemirror/addon/fold/xml-fold.js",
"./modules/codemirror/addon/display/autorefresh.js",
"./modules/codemirror/addon/display/fullscreen.js",
"./modules/codemirror/addon/display/panel.js",
"./modules/codemirror/addon/display/placeholder.js",
"./modules/codemirror/addon/display/rulers.js",
"./modules/codemirror/addon/selection/active-line.js",
"./modules/codemirror/addon/selection/mark-selection.js",
"./modules/codemirror/addon/selection/selection-pointer.js",
"./modules/codemirror/addon/tern/tern.js",
"./modules/codemirror/addon/tern/worker.js",
"./modules/codemirror/addon/runmode/colorize.js",
"./modules/codemirror/addon/runmode/runmode-standalone.js",
"./modules/codemirror/addon/runmode/runmode.js",
"./modules/codemirror/addon/runmode/runmode.node.js"
];
// 安装:缓存核心 + 全部 JS 模块
self.addEventListener("install", event => {
event.waitUntil(
caches.open(CACHE_NAME)
.then(cache => Promise.all([
cache.addAll(CORE_ASSETS),
cache.addAll(JS_MODULES)
]))
.then(() => self.skipWaiting())
.catch(err => console.warn("SW pre-cache partial failure:", err))
);
});
// 激活:清理旧版本缓存
self.addEventListener("activate", event => {
event.waitUntil(
caches.keys()
.then(keys => Promise.all(
keys.filter(key => key !== CACHE_NAME).map(key => caches.delete(key))
))
.then(() => self.clients.claim())
);
});
// 请求:cache-first + 运行时填充(图片/音频等非预缓存资源)
self.addEventListener("fetch", event => {
const url = new URL(event.request.url);
if (url.origin !== self.location.origin) return;
if (event.request.method !== "GET") return;
event.respondWith(
caches.match(event.request).then(cached => {
if (cached) return cached;
return fetch(event.request).then(response => {
if (response && response.status === 200 && response.type === "basic") {
const clone = response.clone();
caches.open(CACHE_NAME).then(cache => cache.put(event.request, clone));
}
return response;
});
}).catch(() => {
if (event.request.mode === "navigate") {
return caches.match("./index.html");
}
return Response.error();
})
);
});