vvvfs 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -68,6 +68,7 @@ const vvvfs = new VVVFS("vvvfs", {
68
68
  ```javascript
69
69
  (async function () {
70
70
  const file = new VVVFS.File("/home/user/Desktop/test.txt");
71
+ // file.options.throwError = true;
71
72
  await file.writeText("Hello World!");
72
73
  console.log(await file.readText());
73
74
  await file.delete();
@@ -77,6 +78,15 @@ const vvvfs = new VVVFS("vvvfs", {
77
78
 
78
79
  ## 更新日志
79
80
 
81
+ ### 0.0.7
82
+
83
+ - AI 了优化一下
84
+
85
+ ### 0.0.6
86
+
87
+ - `VVVFS.File` 类中新增 `dbname` 和 `options` 属性
88
+ - `VVVFS` 新增 `defaultDBName` 属性
89
+
80
90
  ### 0.0.5
81
91
 
82
92
  - 新增 `VVVFS.File` 类
package/esbuild.config.js CHANGED
@@ -1,19 +1,17 @@
1
1
  import { build } from 'esbuild';
2
2
  import fs from 'fs';
3
3
 
4
- const pkg = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
5
-
4
+ /**
5
+ * 构建库
6
+ */
6
7
  build({
7
8
  entryPoints: ['index.ts'],
8
9
  bundle: true,
9
10
  outfile: 'dist/vvvfs.min.js',
10
11
  format: 'iife',
11
- define: {
12
- 'process.env.PACKAGE_VERSION': JSON.stringify(pkg.version),
13
- },
14
12
  minify: true,
15
13
  platform: 'browser',
16
- target: ["chrome80", "firefox70", "safari13", "edge80"],
14
+ target: ["chrome72", "firefox126", "safari14", "edge79", "opera60"],
17
15
  logLevel: 'info',
18
16
  drop: ['console', 'debugger'],
19
17
  }).catch(() => process.exit(1));
package/index.html CHANGED
@@ -25,6 +25,8 @@
25
25
  console.log("搜索文件", await vvvfs.search("/", "t"));
26
26
  console.log("移动文件", await vvvfs.move("/test2.txt", "/test3.txt"));
27
27
  console.log("删除文件", await vvvfs.delete("/test.txt"));
28
+ const file = new VVVFS.File("test.txt");
29
+ console.log("写入文件", await file.writeText("Hello World"));
28
30
  } catch (error) {
29
31
  console.error(error);
30
32
  }
package/index.ts CHANGED
@@ -59,6 +59,10 @@ class VVVFSError extends Error {
59
59
  * @param path 文件路径
60
60
  */
61
61
  class VVVFSFile {
62
+ /**
63
+ * 数据库名称
64
+ */
65
+ private _dbname: string = VVVFS.defaultDBName;
62
66
  /**
63
67
  * 文件路径
64
68
  */
@@ -66,7 +70,7 @@ class VVVFSFile {
66
70
  /**
67
71
  * 虚拟文件系统实例
68
72
  */
69
- private _vvvfs: VVVFS = new VVVFS();
73
+ private _vvvfs: VVVFS = new VVVFS(this._dbname);
70
74
  /**
71
75
  * 获取文件路径
72
76
  */
@@ -80,6 +84,26 @@ class VVVFSFile {
80
84
  set path(path: string) {
81
85
  this._path = joinPath(path);
82
86
  }
87
+ /**
88
+ * 设置数据库名称
89
+ * @param dbname 数据库名称
90
+ */
91
+ set dbname(dbname: string) {
92
+ this._dbname = dbname;
93
+ this._vvvfs = new VVVFS(dbname);
94
+ }
95
+ /**
96
+ * 获取数据库名称
97
+ */
98
+ get dbname() {
99
+ return this._dbname;
100
+ }
101
+ set options(options: VVVFSOptions) {
102
+ this._vvvfs.options = options;
103
+ }
104
+ get options() {
105
+ return this._vvvfs.options;
106
+ }
83
107
  /**
84
108
  * 构造函数
85
109
  * @param paths 文件路径
@@ -196,6 +220,7 @@ class VVVFSFile {
196
220
 
197
221
  const version = packageJson.version;
198
222
  class VVVFS {
223
+ static defaultDBName = "vvvfs";
199
224
  private db: VVVFSDatabase;
200
225
  options: VVVFSOptions;
201
226
  /**
@@ -212,14 +237,14 @@ class VVVFS {
212
237
  * @param options 配置项
213
238
  */
214
239
  constructor(
215
- name = "vvvfs",
240
+ name?: string,
216
241
  options = {
217
242
  throwError: false,
218
243
  },
219
244
  ) {
220
245
  this.options = options;
221
246
  try {
222
- this.db = new Dexie(name) as VVVFSDatabase;
247
+ this.db = new Dexie(name || VVVFS.defaultDBName) as VVVFSDatabase;
223
248
  this.db.version(1).stores({
224
249
  files: "++id, name, path, type, file, [name+path+type]",
225
250
  });
@@ -384,22 +409,22 @@ class VVVFS {
384
409
  * @param path 文件路径
385
410
  */
386
411
  async createFile(path: string) {
387
- if (await this.exists(path)) {
412
+ const targetPath = joinPath(path);
413
+ if (await this.exists(targetPath)) {
388
414
  console.warn("文件已存在");
389
415
  return true;
390
416
  }
391
417
  try {
392
- const { name, parent } = parsePath(path);
418
+ const { name, parent } = parsePath(targetPath);
393
419
  if (!(await this.exists(parent))) {
394
420
  await this.createDir(parent);
395
421
  }
396
- // console.log(name, parent);
397
422
  await this.db.files.add({
398
423
  name: name,
399
424
  path: parent,
400
425
  type: "file",
401
426
  file: new File([], name, {
402
- type: mime.getType(path) || "application/octet-stream",
427
+ type: mime.getType(targetPath) || "application/octet-stream",
403
428
  }),
404
429
  });
405
430
  return true;
@@ -416,12 +441,13 @@ class VVVFS {
416
441
  * @param path 目录路径
417
442
  */
418
443
  async createDir(path: string) {
419
- if (await this.exists(path)) {
444
+ const targetPath = joinPath(path);
445
+ if (await this.exists(targetPath)) {
420
446
  console.warn("目录已存在");
421
447
  return true;
422
448
  }
423
449
  try {
424
- const { name, parent } = parsePath(path);
450
+ const { name, parent } = parsePath(targetPath);
425
451
  if (!(await this.exists(parent))) {
426
452
  if (parent == "/") {
427
453
  await this.db.files.add({
@@ -435,7 +461,6 @@ class VVVFS {
435
461
  await this.createDir(parent);
436
462
  }
437
463
  }
438
- console.log(name, parent);
439
464
  await this.db.files.add({
440
465
  name: name,
441
466
  path: parent,
@@ -457,7 +482,8 @@ class VVVFS {
457
482
  */
458
483
  async exists(path: string) {
459
484
  try {
460
- const { name, parent } = parsePath(path);
485
+ const targetPath = joinPath(path);
486
+ const { name, parent } = parsePath(targetPath);
461
487
  return (
462
488
  (await this.db.files
463
489
  .where({
@@ -480,8 +506,9 @@ class VVVFS {
480
506
  */
481
507
  async write(path: string, content: Blob) {
482
508
  try {
483
- if (!(await this.exists(path))) {
484
- const success = await this.createFile(path);
509
+ const targetPath = joinPath(path);
510
+ if (!(await this.exists(targetPath))) {
511
+ const success = await this.createFile(targetPath);
485
512
  if (!success) {
486
513
  console.warn("创建文件失败");
487
514
  if (this.options.throwError) {
@@ -490,19 +517,17 @@ class VVVFS {
490
517
  return false;
491
518
  }
492
519
  }
493
- const { name, parent } = parsePath(path);
494
- console.log(name, parent);
495
- if (await this.isDir(parent + "/" + name)) {
520
+ if (await this.isDir(targetPath)) {
496
521
  console.warn("路径已存在");
497
522
  if (this.options.throwError) {
498
523
  throw new VVVFSError("Write", "路径已存在");
499
524
  }
500
525
  return false;
501
526
  }
527
+ const { name, parent } = parsePath(targetPath);
502
528
  const file = new File([content], name, {
503
- type: mime.getType(path) || "application/octet-stream",
529
+ type: mime.getType(targetPath) || "application/octet-stream",
504
530
  });
505
- console.log(file);
506
531
  const fileRecord = await this.db.files.where({ name, path: parent }).first();
507
532
  if (fileRecord) {
508
533
  await this.db.files.put({
@@ -568,14 +593,15 @@ class VVVFS {
568
593
  */
569
594
  async read(path: string) {
570
595
  try {
571
- if (!(await this.exists(path))) {
596
+ const targetPath = joinPath(path);
597
+ if (!(await this.exists(targetPath))) {
572
598
  console.warn("文件不存在");
573
599
  if (this.options.throwError) {
574
600
  throw new VVVFSError("Read", "文件不存在");
575
601
  }
576
602
  return null;
577
603
  }
578
- const { name, parent } = parsePath(path);
604
+ const { name, parent } = parsePath(targetPath);
579
605
  return (await this.db.files.where({ name, path: parent }).first())?.file;
580
606
  } catch (error) {
581
607
  console.error("读取文件失败", error);
@@ -643,7 +669,8 @@ class VVVFS {
643
669
  */
644
670
  async isFile(path: string) {
645
671
  try {
646
- const { name, parent } = parsePath(path);
672
+ const targetPath = joinPath(path);
673
+ const { name, parent } = parsePath(targetPath);
647
674
  return (await this.db.files.where({ name, path: parent, type: "file" }).count()) > 0;
648
675
  } catch (error) {
649
676
  console.error("判断文件类型失败", error);
@@ -659,7 +686,8 @@ class VVVFS {
659
686
  */
660
687
  async isDir(path: string) {
661
688
  try {
662
- const { name, parent } = parsePath(path);
689
+ const targetPath = joinPath(path);
690
+ const { name, parent } = parsePath(targetPath);
663
691
  return (await this.db.files.where({ path: parent, name, type: "dir" }).count()) > 0;
664
692
  } catch (error) {
665
693
  console.error("判断文件类型失败", error);
@@ -675,8 +703,15 @@ class VVVFS {
675
703
  */
676
704
  async list(path: string) {
677
705
  try {
678
- const { name, parent } = parsePath(path);
679
- return (await this.db.files.where({ path: parent }).toArray())
706
+ const targetPath = joinPath(path);
707
+ if (!(await this.isDir(targetPath))) {
708
+ console.warn("路径不是目录");
709
+ if (this.options.throwError) {
710
+ throw new VVVFSError("List", "路径不是目录");
711
+ }
712
+ return [];
713
+ }
714
+ return (await this.db.files.where({ path: targetPath }).toArray())
680
715
  .map((file) => file.name)
681
716
  .filter((item) => item != "");
682
717
  } catch (error) {
@@ -694,20 +729,50 @@ class VVVFS {
694
729
  */
695
730
  async rename(path: string, newName: string) {
696
731
  try {
697
- if (!(await this.exists(path))) {
732
+ const sourcePath = joinPath(path);
733
+ const { name, parent } = parsePath(sourcePath);
734
+ if (!(await this.exists(sourcePath))) {
698
735
  console.warn("文件不存在");
699
736
  if (this.options.throwError) {
700
737
  throw new VVVFSError("Rename", "文件不存在");
701
738
  }
702
739
  return false;
703
740
  }
704
- const { name, parent } = parsePath(path);
705
- const file = await this.db.files.get({ path, name });
706
- await this.db.files.put({
741
+ const newPath = joinPath(parent, newName);
742
+ if (newPath === sourcePath) {
743
+ return true;
744
+ }
745
+ if (await this.exists(newPath)) {
746
+ console.warn("目标文件已存在");
747
+ if (this.options.throwError) {
748
+ throw new VVVFSError("Rename", "目标文件已存在");
749
+ }
750
+ return false;
751
+ }
752
+ const fileRecord = await this.db.files.where({ path: parent, name }).first();
753
+ if (!fileRecord) {
754
+ console.warn("文件记录未找到");
755
+ if (this.options.throwError) {
756
+ throw new VVVFSError("Rename", "文件记录未找到");
757
+ }
758
+ return false;
759
+ }
760
+ if (fileRecord.type === "dir") {
761
+ const descendants = await this.db.files
762
+ .filter(
763
+ (file) =>
764
+ file.path === sourcePath || file.path.startsWith(sourcePath + "/"),
765
+ )
766
+ .toArray();
767
+ for (const descendant of descendants) {
768
+ const relativePath = descendant.path.slice(sourcePath.length);
769
+ const updatedPath = joinPath(newPath + relativePath);
770
+ await this.db.files.update(descendant.id!, { path: updatedPath });
771
+ }
772
+ }
773
+ await this.db.files.update(fileRecord.id!, {
707
774
  name: newName,
708
775
  path: parent,
709
- type: "file",
710
- file: file!.file,
711
776
  });
712
777
  return true;
713
778
  } catch (e) {
@@ -724,29 +789,30 @@ class VVVFS {
724
789
  */
725
790
  async delete(path: string) {
726
791
  try {
727
- if (!(await this.exists(path))) {
792
+ const targetPath = joinPath(path);
793
+ if (!(await this.exists(targetPath))) {
728
794
  console.warn("文件不存在");
729
795
  if (this.options.throwError) {
730
796
  throw new VVVFSError("Delete", "文件不存在");
731
797
  }
732
798
  return false;
733
799
  }
734
- const { name, parent } = parsePath(path);
735
- if (await this.isDir(path)) {
736
- const files = await this.list(path);
800
+ const { name, parent } = parsePath(targetPath);
801
+ if (await this.isDir(targetPath)) {
802
+ const files = await this.list(targetPath);
737
803
  for (const file of files) {
738
- if (await this.isDir(joinPath(path, file))) {
739
- const fileRecord = await this.db.files
740
- .where({ name, path: parent })
741
- .first();
742
- await this.db.files.delete(fileRecord!.id!);
743
- }
744
- await this.delete(joinPath(parent, file));
804
+ await this.delete(joinPath(targetPath, file));
805
+ }
806
+ const dirRecord = await this.db.files.where({ name, path: parent, type: "dir" }).first();
807
+ if (dirRecord) {
808
+ await this.db.files.delete(dirRecord.id!);
745
809
  }
746
810
  return true;
747
811
  } else {
748
- const fileRecord = await this.db.files.where({ name, path: parent }).first();
749
- await this.db.files.delete(fileRecord!.id!);
812
+ const fileRecord = await this.db.files.where({ name, path: parent, type: "file" }).first();
813
+ if (fileRecord) {
814
+ await this.db.files.delete(fileRecord.id!);
815
+ }
750
816
  return true;
751
817
  }
752
818
  } catch (e) {
@@ -764,34 +830,51 @@ class VVVFS {
764
830
  */
765
831
  async move(path: string, newPath: string) {
766
832
  try {
767
- if (await this.exists(newPath)) {
833
+ const sourcePath = joinPath(path);
834
+ const destinationPath = joinPath(newPath);
835
+ if (await this.exists(destinationPath)) {
768
836
  console.warn("目标文件已存在");
769
837
  if (this.options.throwError) {
770
838
  throw new VVVFSError("Move", "目标文件已存在");
771
839
  }
772
840
  return false;
773
841
  }
774
- if (!(await this.exists(path))) {
842
+ if (!(await this.exists(sourcePath))) {
775
843
  console.warn("源文件不存在");
776
844
  if (this.options.throwError) {
777
845
  throw new VVVFSError("Move", "源文件不存在");
778
846
  }
779
847
  return false;
780
848
  }
781
- const { name, parent } = parsePath(path);
782
- const { name: newName, parent: newParent } = parsePath(newPath);
783
- await this.createDir(newParent);
784
- if (await this.isDir(path)) {
785
- const dirs = await this.list(path);
786
- for (const dir of dirs) {
787
- await this.move(path + "/" + dir, newPath + "/" + dir);
849
+ if (destinationPath.startsWith(sourcePath + "/")) {
850
+ console.warn("目标路径是源路径的子路径");
851
+ if (this.options.throwError) {
852
+ throw new VVVFSError("Move", "目标路径是源路径的子路径");
788
853
  }
854
+ return false;
855
+ }
856
+ const { name, parent } = parsePath(sourcePath);
857
+ const { name: newName, parent: newParent } = parsePath(destinationPath);
858
+ if (await this.isDir(sourcePath)) {
859
+ await this.createDir(destinationPath);
860
+ const children = await this.list(sourcePath);
861
+ for (const child of children) {
862
+ await this.move(joinPath(sourcePath, child), joinPath(destinationPath, child));
863
+ }
864
+ const dirRecord = await this.db.files.where({ name, path: parent, type: "dir" }).first();
865
+ if (dirRecord) {
866
+ await this.db.files.delete(dirRecord.id!);
867
+ }
868
+ return true;
789
869
  } else {
790
- const fileRecord = await this.db.files.where({ name, path: parent }).first();
791
- await this.db.files.update(fileRecord!.id!, { name: newName, path: newParent });
870
+ await this.createDir(newParent);
871
+ const fileRecord = await this.db.files.where({ name, path: parent, type: "file" }).first();
872
+ if (fileRecord) {
873
+ await this.db.files.update(fileRecord.id!, { name: newName, path: newParent });
874
+ return true;
875
+ }
876
+ return false;
792
877
  }
793
- await this.delete(path);
794
- return true;
795
878
  } catch (e) {
796
879
  console.error(e);
797
880
  if (this.options.throwError) {
@@ -807,33 +890,51 @@ class VVVFS {
807
890
  */
808
891
  async copy(path: string, newPath: string) {
809
892
  try {
810
- if (await this.exists(newPath)) {
893
+ const sourcePath = joinPath(path);
894
+ const destinationPath = joinPath(newPath);
895
+ if (await this.exists(destinationPath)) {
811
896
  console.warn("目标文件已存在");
812
897
  if (this.options.throwError) {
813
898
  throw new VVVFSError("Copy", "目标文件已存在");
814
899
  }
815
900
  return false;
816
901
  }
817
- if (!(await this.exists(path))) {
902
+ if (!(await this.exists(sourcePath))) {
818
903
  console.warn("源文件不存在");
819
904
  if (this.options.throwError) {
820
905
  throw new VVVFSError("Copy", "源文件不存在");
821
906
  }
822
907
  return false;
823
908
  }
824
- const { name, parent } = parsePath(path);
825
- const { name: newName, parent: newParent } = parsePath(newPath);
826
- await this.createDir(newParent);
827
- if (await this.isDir(path)) {
828
- const dirs = await this.list(path);
829
- for (const dir of dirs) {
830
- await this.move(path + "/" + dir, newPath + "/" + dir);
909
+ if (destinationPath.startsWith(sourcePath + "/")) {
910
+ console.warn("目标路径是源路径的子路径");
911
+ if (this.options.throwError) {
912
+ throw new VVVFSError("Copy", "目标路径是源路径的子路径");
913
+ }
914
+ return false;
915
+ }
916
+ const { name, parent } = parsePath(sourcePath);
917
+ const { name: newName, parent: newParent } = parsePath(destinationPath);
918
+ if (await this.isDir(sourcePath)) {
919
+ await this.createDir(destinationPath);
920
+ const children = await this.list(sourcePath);
921
+ for (const child of children) {
922
+ await this.copy(joinPath(sourcePath, child), joinPath(destinationPath, child));
831
923
  }
924
+ return true;
832
925
  } else {
833
- const fileRecord = await this.db.files.where({ name, path: parent }).first();
834
- await this.db.files.update(fileRecord!.id!, { name: newName, path: newParent });
926
+ const fileRecord = await this.db.files.where({ name, path: parent, type: "file" }).first();
927
+ if (fileRecord) {
928
+ await this.db.files.add({
929
+ name: newName,
930
+ path: newParent,
931
+ type: fileRecord.type,
932
+ file: fileRecord.file,
933
+ });
934
+ return true;
935
+ }
936
+ return false;
835
937
  }
836
- return true;
837
938
  } catch (e) {
838
939
  console.error(e);
839
940
  if (this.options.throwError) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vvvfs",
3
- "version": "0.0.5",
3
+ "version": "0.0.7",
4
4
  "description": "一个使用IndexDB实现的虚拟文件系统",
5
5
  "keywords": [
6
6
  "Virtual",
@@ -25,5 +25,9 @@
25
25
  "dexie": "^4.3.0",
26
26
  "esbuild": "^0.27.3",
27
27
  "mime": "^4.1.0"
28
+ },
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/IFTC-XLKJ/vvvfs.git"
28
32
  }
29
33
  }
package/dist/vvvfs.min.js DELETED
@@ -1,3 +0,0 @@
1
- (()=>{var Ta=Object.create;var Bn=Object.defineProperty;var Ka=Object.getOwnPropertyDescriptor;var Oa=Object.getOwnPropertyNames;var Aa=Object.getPrototypeOf,Pa=Object.prototype.hasOwnProperty;var Ca=(B,v,m)=>v in B?Bn(B,v,{enumerable:!0,configurable:!0,writable:!0,value:m}):B[v]=m;var Ia=(B,v)=>()=>(v||B((v={exports:{}}).exports,v),v.exports);var Ra=(B,v,m,k)=>{if(v&&typeof v=="object"||typeof v=="function")for(let O of Oa(v))!Pa.call(B,O)&&O!==m&&Bn(B,O,{get:()=>v[O],enumerable:!(k=Ka(v,O))||k.enumerable});return B};var Fa=(B,v,m)=>(m=B!=null?Ta(Aa(B)):{},Ra(v||!B||!B.__esModule?Bn(m,"default",{value:B,enumerable:!0}):m,B));var Be=(B,v,m)=>Ca(B,typeof v!="symbol"?v+"":v,m);var Vi=Ia((Mn,Vn)=>{(function(B,v){typeof Mn=="object"&&typeof Vn<"u"?Vn.exports=v():typeof define=="function"&&define.amd?define(v):(B=typeof globalThis<"u"?globalThis:B||self,B.Dexie=v())})(Mn,(function(){"use strict";var B=function(e,t){return B=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(n[r]=i[r])},B(e,t)};function v(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");B(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var m=function(){return m=Object.assign||function(t){for(var n,i=1,r=arguments.length;i<r;i++){n=arguments[i];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},m.apply(this,arguments)};function k(e,t,n){if(n||arguments.length===2)for(var i=0,r=t.length,a;i<r;i++)(a||!(i in t))&&(a||(a=Array.prototype.slice.call(t,0,i)),a[i]=t[i]);return e.concat(a||Array.prototype.slice.call(t))}typeof SuppressedError=="function"&&SuppressedError;var O=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,z=Object.keys,P=Array.isArray;typeof Promise<"u"&&!O.Promise&&(O.Promise=Promise);function N(e,t){return typeof t!="object"||z(t).forEach(function(n){e[n]=t[n]}),e}var H=Object.getPrototypeOf,Z={}.hasOwnProperty;function ee(e,t){return Z.call(e,t)}function Ne(e,t){typeof t=="function"&&(t=t(H(e))),(typeof Reflect>"u"?z:Reflect.ownKeys)(t).forEach(function(n){ye(e,n,t[n])})}var $n=Object.defineProperty;function ye(e,t,n,i){$n(e,t,N(n&&ee(n,"get")&&typeof n.get=="function"?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},i))}function Le(e){return{from:function(t){return e.prototype=Object.create(t.prototype),ye(e.prototype,"constructor",e),{extend:Ne.bind(null,e.prototype)}}}}var Yi=Object.getOwnPropertyDescriptor;function Un(e,t){var n=Yi(e,t),i;return n||(i=H(e))&&Un(i,t)}var Qi=[].slice;function yt(e,t,n){return Qi.call(e,t,n)}function Yn(e,t){return t(e)}function et(e){if(!e)throw new Error("Assertion Failed")}function Qn(e){O.setImmediate?setImmediate(e):setTimeout(e,0)}function Hi(e,t){return e.reduce(function(n,i,r){var a=t(i,r);return a&&(n[a[0]]=a[1]),n},{})}function de(e,t){if(typeof t=="string"&&ee(e,t))return e[t];if(!t)return e;if(typeof t!="string"){for(var n=[],i=0,r=t.length;i<r;++i){var a=de(e,t[i]);n.push(a)}return n}var o=t.indexOf(".");if(o!==-1){var s=e[t.substr(0,o)];return s==null?void 0:de(s,t.substr(o+1))}}function te(e,t,n){if(!(!e||t===void 0)&&!("isFrozen"in Object&&Object.isFrozen(e)))if(typeof t!="string"&&"length"in t){et(typeof n!="string"&&"length"in n);for(var i=0,r=t.length;i<r;++i)te(e,t[i],n[i])}else{var a=t.indexOf(".");if(a!==-1){var o=t.substr(0,a),s=t.substr(a+1);if(s==="")n===void 0?P(e)&&!isNaN(parseInt(o))?e.splice(o,1):delete e[o]:e[o]=n;else{var c=e[o];(!c||!ee(e,o))&&(c=e[o]={}),te(c,s,n)}}else n===void 0?P(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}function Gi(e,t){typeof t=="string"?te(e,t,void 0):"length"in t&&[].map.call(t,function(n){te(e,n,void 0)})}function Hn(e){var t={};for(var n in e)ee(e,n)&&(t[n]=e[n]);return t}var Ji=[].concat;function Gn(e){return Ji.apply([],e)}var Xi="BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(Gn([8,16,32,64].map(function(e){return["Int","Uint","Float"].map(function(t){return t+e+"Array"})}))).filter(function(e){return O[e]}),Jn=new Set(Xi.map(function(e){return O[e]}));function Xn(e){var t={};for(var n in e)if(ee(e,n)){var i=e[n];t[n]=!i||typeof i!="object"||Jn.has(i.constructor)?i:Xn(i)}return t}function Zi(e){for(var t in e)if(ee(e,t))return!1;return!0}var tt=null;function De(e){tt=new WeakMap;var t=Yt(e);return tt=null,t}function Yt(e){if(!e||typeof e!="object")return e;var t=tt.get(e);if(t)return t;if(P(e)){t=[],tt.set(e,t);for(var n=0,i=e.length;n<i;++n)t.push(Yt(e[n]))}else if(Jn.has(e.constructor))t=e;else{var r=H(e);t=r===Object.prototype?{}:Object.create(r),tt.set(e,t);for(var a in e)ee(e,a)&&(t[a]=Yt(e[a]))}return t}var er={}.toString;function Qt(e){return er.call(e).slice(8,-1)}var Ht=typeof Symbol<"u"?Symbol.iterator:"@@iterator",tr=typeof Ht=="symbol"?function(e){var t;return e!=null&&(t=e[Ht])&&t.apply(e)}:function(){return null};function Te(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n>=0}var We={};function me(e){var t,n,i,r;if(arguments.length===1){if(P(e))return e.slice();if(this===We&&typeof e=="string")return[e];if(r=tr(e)){for(n=[];i=r.next(),!i.done;)n.push(i.value);return n}if(e==null)return[e];if(t=e.length,typeof t=="number"){for(n=new Array(t);t--;)n[t]=e[t];return n}return[e]}for(t=arguments.length,n=new Array(t);t--;)n[t]=arguments[t];return n}var Gt=typeof Symbol<"u"?function(e){return e[Symbol.toStringTag]==="AsyncFunction"}:function(){return!1},nr=["Modify","Bulk","OpenFailed","VersionChange","Schema","Upgrade","InvalidTable","MissingAPI","NoSuchDatabase","InvalidArgument","SubTransaction","Unsupported","Internal","DatabaseClosed","PrematureCommit","ForeignAwait"],Zn=["Unknown","Constraint","Data","TransactionInactive","ReadOnly","Version","NotFound","InvalidState","InvalidAccess","Abort","Timeout","QuotaExceeded","Syntax","DataClone"],Jt=nr.concat(Zn),ir={VersionChanged:"Database version changed by other database connection",DatabaseClosed:"Database has been closed",Abort:"Transaction aborted",TransactionInactive:"Transaction has already completed or failed",MissingAPI:"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"};function qe(e,t){this.name=e,this.message=t}Le(qe).from(Error).extend({toString:function(){return this.name+": "+this.message}});function ei(e,t){return e+". Errors: "+Object.keys(t).map(function(n){return t[n].toString()}).filter(function(n,i,r){return r.indexOf(n)===i}).join(`
2
- `)}function gt(e,t,n,i){this.failures=t,this.failedKeys=i,this.successCount=n,this.message=ei(e,t)}Le(gt).from(qe);function $e(e,t){this.name="BulkError",this.failures=Object.keys(t).map(function(n){return t[n]}),this.failuresByPos=t,this.message=ei(e,this.failures)}Le($e).from(qe);var Xt=Jt.reduce(function(e,t){return e[t]=t+"Error",e},{}),rr=qe,I=Jt.reduce(function(e,t){var n=t+"Error";function i(r,a){this.name=n,r?typeof r=="string"?(this.message="".concat(r).concat(a?`
3
- `+a:""),this.inner=a||null):typeof r=="object"&&(this.message="".concat(r.name," ").concat(r.message),this.inner=r):(this.message=ir[t]||n,this.inner=null)}return Le(i).from(rr),e[t]=i,e},{});I.Syntax=SyntaxError,I.Type=TypeError,I.Range=RangeError;var ti=Zn.reduce(function(e,t){return e[t+"Error"]=I[t],e},{});function ar(e,t){if(!e||e instanceof qe||e instanceof TypeError||e instanceof SyntaxError||!e.name||!ti[e.name])return e;var n=new ti[e.name](t||e.message,e);return"stack"in e&&ye(n,"stack",{get:function(){return this.inner.stack}}),n}var xt=Jt.reduce(function(e,t){return["Syntax","Type","Range"].indexOf(t)===-1&&(e[t+"Error"]=I[t]),e},{});xt.ModifyError=gt,xt.DexieError=qe,xt.BulkError=$e;function $(){}function nt(e){return e}function or(e,t){return e==null||e===nt?t:function(n){return t(e(n))}}function Ke(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function sr(e,t){return e===$?t:function(){var n=e.apply(this,arguments);n!==void 0&&(arguments[0]=n);var i=this.onsuccess,r=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?Ke(i,this.onsuccess):i),r&&(this.onerror=this.onerror?Ke(r,this.onerror):r),a!==void 0?a:n}}function cr(e,t){return e===$?t:function(){e.apply(this,arguments);var n=this.onsuccess,i=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?Ke(n,this.onsuccess):n),i&&(this.onerror=this.onerror?Ke(i,this.onerror):i)}}function lr(e,t){return e===$?t:function(n){var i=e.apply(this,arguments);N(n,i);var r=this.onsuccess,a=this.onerror;this.onsuccess=null,this.onerror=null;var o=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?Ke(r,this.onsuccess):r),a&&(this.onerror=this.onerror?Ke(a,this.onerror):a),i===void 0?o===void 0?void 0:o:N(i,o)}}function ur(e,t){return e===$?t:function(){return t.apply(this,arguments)===!1?!1:e.apply(this,arguments)}}function Zt(e,t){return e===$?t:function(){var n=e.apply(this,arguments);if(n&&typeof n.then=="function"){for(var i=this,r=arguments.length,a=new Array(r);r--;)a[r]=arguments[r];return n.then(function(){return t.apply(i,a)})}return t.apply(this,arguments)}}var le=typeof location<"u"&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function ni(e,t){le=e}var it={},ii=100,en=typeof Promise>"u"?[]:(function(){var e=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[e,H(e),e];var t=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[t,H(t),e]})(),ri=en[0],ai=en[1],pr=en[2],fr=ai&&ai.then,Oe=ri&&ri.constructor,tn=!!pr;function dr(){queueMicrotask(vr)}var rt=function(e,t){at.push([e,t]),wt&&(dr(),wt=!1)},nn=!0,wt=!0,Ae=[],bt=[],rn=nt,ge={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:$,pgp:!1,env:{},finalize:$},A=ge,at=[],Pe=0,_t=[];function D(e){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var t=this._PSD=A;if(typeof e!="function"){if(e!==it)throw new TypeError("Not a function");this._state=arguments[1],this._value=arguments[2],this._state===!1&&on(this,this._value);return}this._state=null,this._value=null,++t.ref,si(this,e)}var an={get:function(){var e=A,t=St;function n(i,r){var a=this,o=!e.global&&(e!==A||t!==St),s=o&&!we(),c=new D(function(l,f){sn(a,new oi(ui(i,e,o,s),ui(r,e,o,s),l,f,e))});return this._consoleTask&&(c._consoleTask=this._consoleTask),c}return n.prototype=it,n},set:function(e){ye(this,"then",e&&e.prototype===it?an:{get:function(){return e},set:an.set})}};Ne(D.prototype,{then:an,_then:function(e,t){sn(this,new oi(null,null,e,t,A))},catch:function(e){if(arguments.length===1)return this.then(null,e);var t=arguments[0],n=arguments[1];return typeof t=="function"?this.then(null,function(i){return i instanceof t?n(i):kt(i)}):this.then(null,function(i){return i&&i.name===t?n(i):kt(i)})},finally:function(e){return this.then(function(t){return D.resolve(e()).then(function(){return t})},function(t){return D.resolve(e()).then(function(){return kt(t)})})},timeout:function(e,t){var n=this;return e<1/0?new D(function(i,r){var a=setTimeout(function(){return r(new I.Timeout(t))},e);n.then(i,r).finally(clearTimeout.bind(null,a))}):this}}),typeof Symbol<"u"&&Symbol.toStringTag&&ye(D.prototype,Symbol.toStringTag,"Dexie.Promise"),ge.env=li();function oi(e,t,n,i,r){this.onFulfilled=typeof e=="function"?e:null,this.onRejected=typeof t=="function"?t:null,this.resolve=n,this.reject=i,this.psd=r}Ne(D,{all:function(){var e=me.apply(null,arguments).map(Dt);return new D(function(t,n){e.length===0&&t([]);var i=e.length;e.forEach(function(r,a){return D.resolve(r).then(function(o){e[a]=o,--i||t(e)},n)})})},resolve:function(e){if(e instanceof D)return e;if(e&&typeof e.then=="function")return new D(function(n,i){e.then(n,i)});var t=new D(it,!0,e);return t},reject:kt,race:function(){var e=me.apply(null,arguments).map(Dt);return new D(function(t,n){e.map(function(i){return D.resolve(i).then(t,n)})})},PSD:{get:function(){return A},set:function(e){return A=e}},totalEchoes:{get:function(){return St}},newPSD:xe,usePSD:Ce,scheduler:{get:function(){return rt},set:function(e){rt=e}},rejectionMapper:{get:function(){return rn},set:function(e){rn=e}},follow:function(e,t){return new D(function(n,i){return xe(function(r,a){var o=A;o.unhandleds=[],o.onunhandled=a,o.finalize=Ke(function(){var s=this;hr(function(){s.unhandleds.length===0?r():a(s.unhandleds[0])})},o.finalize),e()},t,n,i)})}}),Oe&&(Oe.allSettled&&ye(D,"allSettled",function(){var e=me.apply(null,arguments).map(Dt);return new D(function(t){e.length===0&&t([]);var n=e.length,i=new Array(n);e.forEach(function(r,a){return D.resolve(r).then(function(o){return i[a]={status:"fulfilled",value:o}},function(o){return i[a]={status:"rejected",reason:o}}).then(function(){return--n||t(i)})})})}),Oe.any&&typeof AggregateError<"u"&&ye(D,"any",function(){var e=me.apply(null,arguments).map(Dt);return new D(function(t,n){e.length===0&&n(new AggregateError([]));var i=e.length,r=new Array(i);e.forEach(function(a,o){return D.resolve(a).then(function(s){return t(s)},function(s){r[o]=s,--i||n(new AggregateError(r))})})})}),Oe.withResolvers&&(D.withResolvers=Oe.withResolvers));function si(e,t){try{t(function(n){if(e._state===null){if(n===e)throw new TypeError("A promise cannot be resolved with itself.");var i=e._lib&&Ue();n&&typeof n.then=="function"?si(e,function(r,a){n instanceof D?n._then(r,a):n.then(r,a)}):(e._state=!0,e._value=n,ci(e)),i&&Ye()}},on.bind(null,e))}catch(n){on(e,n)}}function on(e,t){if(bt.push(t),e._state===null){var n=e._lib&&Ue();t=rn(t),e._state=!1,e._value=t,yr(e),ci(e),n&&Ye()}}function ci(e){var t=e._listeners;e._listeners=[];for(var n=0,i=t.length;n<i;++n)sn(e,t[n]);var r=e._PSD;--r.ref||r.finalize(),Pe===0&&(++Pe,rt(function(){--Pe===0&&cn()},[]))}function sn(e,t){if(e._state===null){e._listeners.push(t);return}var n=e._state?t.onFulfilled:t.onRejected;if(n===null)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++Pe,rt(mr,[n,e,t])}function mr(e,t,n){try{var i,r=t._value;!t._state&&bt.length&&(bt=[]),i=le&&t._consoleTask?t._consoleTask.run(function(){return e(r)}):e(r),!t._state&&bt.indexOf(r)===-1&&gr(t),n.resolve(i)}catch(a){n.reject(a)}finally{--Pe===0&&cn(),--n.psd.ref||n.psd.finalize()}}function vr(){Ce(ge,function(){Ue()&&Ye()})}function Ue(){var e=nn;return nn=!1,wt=!1,e}function Ye(){var e,t,n;do for(;at.length>0;)for(e=at,at=[],n=e.length,t=0;t<n;++t){var i=e[t];i[0].apply(null,i[1])}while(at.length>0);nn=!0,wt=!0}function cn(){var e=Ae;Ae=[],e.forEach(function(i){i._PSD.onunhandled.call(null,i._value,i)});for(var t=_t.slice(0),n=t.length;n;)t[--n]()}function hr(e){function t(){e(),_t.splice(_t.indexOf(t),1)}_t.push(t),++Pe,rt(function(){--Pe===0&&cn()},[])}function yr(e){Ae.some(function(t){return t._value===e._value})||Ae.push(e)}function gr(e){for(var t=Ae.length;t;)if(Ae[--t]._value===e._value){Ae.splice(t,1);return}}function kt(e){return new D(it,!1,e)}function U(e,t){var n=A;return function(){var i=Ue(),r=A;try{return be(n,!0),e.apply(this,arguments)}catch(a){t&&t(a)}finally{be(r,!1),i&&Ye()}}}var G={awaits:0,echoes:0,id:0},xr=0,Et=[],jt=0,St=0,wr=0;function xe(e,t,n,i){var r=A,a=Object.create(r);a.parent=r,a.ref=0,a.global=!1,a.id=++wr,ge.env,a.env=tn?{Promise:D,PromiseProp:{value:D,configurable:!0,writable:!0},all:D.all,race:D.race,allSettled:D.allSettled,any:D.any,resolve:D.resolve,reject:D.reject}:{},t&&N(a,t),++r.ref,a.finalize=function(){--this.parent.ref||this.parent.finalize()};var o=Ce(a,e,n,i);return a.ref===0&&a.finalize(),o}function Qe(){return G.id||(G.id=++xr),++G.awaits,G.echoes+=ii,G.id}function we(){return G.awaits?(--G.awaits===0&&(G.id=0),G.echoes=G.awaits*ii,!0):!1}(""+fr).indexOf("[native code]")===-1&&(Qe=we=$);function Dt(e){return G.echoes&&e&&e.constructor===Oe?(Qe(),e.then(function(t){return we(),t},function(t){return we(),Q(t)})):e}function br(e){++St,(!G.echoes||--G.echoes===0)&&(G.echoes=G.awaits=G.id=0),Et.push(A),be(e,!0)}function _r(){var e=Et[Et.length-1];Et.pop(),be(e,!1)}function be(e,t){var n=A;if((t?G.echoes&&(!jt++||e!==A):jt&&(!--jt||e!==A))&&queueMicrotask(t?br.bind(null,e):_r),e!==A&&(A=e,n===ge&&(ge.env=li()),tn)){var i=ge.env.Promise,r=e.env;(n.global||e.global)&&(Object.defineProperty(O,"Promise",r.PromiseProp),i.all=r.all,i.race=r.race,i.resolve=r.resolve,i.reject=r.reject,r.allSettled&&(i.allSettled=r.allSettled),r.any&&(i.any=r.any))}}function li(){var e=O.Promise;return tn?{Promise:e,PromiseProp:Object.getOwnPropertyDescriptor(O,"Promise"),all:e.all,race:e.race,allSettled:e.allSettled,any:e.any,resolve:e.resolve,reject:e.reject}:{}}function Ce(e,t,n,i,r){var a=A;try{return be(e,!0),t(n,i,r)}finally{be(a,!1)}}function ui(e,t,n,i){return typeof e!="function"?e:function(){var r=A;n&&Qe(),be(t,!0);try{return e.apply(this,arguments)}finally{be(r,!1),i&&queueMicrotask(we)}}}function ln(e){Promise===Oe&&G.echoes===0?jt===0?e():enqueueNativeMicroTask(e):setTimeout(e,0)}var Q=D.reject;function un(e,t,n,i){if(!e.idbdb||!e._state.openComplete&&!A.letThrough&&!e._vip){if(e._state.openComplete)return Q(new I.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._state.autoOpen)return Q(new I.DatabaseClosed);e.open().catch($)}return e._state.dbReadyPromise.then(function(){return un(e,t,n,i)})}else{var r=e._createTransaction(t,n,e._dbSchema);try{r.create(),e._state.PR1398_maxLoop=3}catch(a){return a.name===Xt.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(e.close({disableAutoOpen:!1}),e.open().then(function(){return un(e,t,n,i)})):Q(a)}return r._promise(t,function(a,o){return xe(function(){return A.trans=r,i(a,o,r)})}).then(function(a){if(t==="readwrite")try{r.idbtrans.commit()}catch{}return t==="readonly"?a:r._completion.then(function(){return a})})}}var pi="4.3.0",Ie="\uFFFF",pn=-1/0,ve="Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",fi="String expected.",He=[],Tt="__dbnames",fn="readonly",dn="readwrite";function Re(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}var di={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function Kt(e){return typeof e=="string"&&!/\./.test(e)?function(t){return t[e]===void 0&&e in t&&(t=De(t),delete t[e]),t}:function(t){return t}}function mi(){throw I.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.")}function W(e,t){try{var n=vi(e),i=vi(t);if(n!==i)return n==="Array"?1:i==="Array"?-1:n==="binary"?1:i==="binary"?-1:n==="string"?1:i==="string"?-1:n==="Date"?1:i!=="Date"?NaN:-1;switch(n){case"number":case"Date":case"string":return e>t?1:e<t?-1:0;case"binary":return Er(hi(e),hi(t));case"Array":return kr(e,t)}}catch{}return NaN}function kr(e,t){for(var n=e.length,i=t.length,r=n<i?n:i,a=0;a<r;++a){var o=W(e[a],t[a]);if(o!==0)return o}return n===i?0:n<i?-1:1}function Er(e,t){for(var n=e.length,i=t.length,r=n<i?n:i,a=0;a<r;++a)if(e[a]!==t[a])return e[a]<t[a]?-1:1;return n===i?0:n<i?-1:1}function vi(e){var t=typeof e;if(t!=="object")return t;if(ArrayBuffer.isView(e))return"binary";var n=Qt(e);return n==="ArrayBuffer"?"binary":n}function hi(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}function Ot(e,t,n){var i=e.schema.yProps;return i?(t&&n.numFailures>0&&(t=t.filter(function(r,a){return!n.failures[a]})),Promise.all(i.map(function(r){var a=r.updatesTable;return t?e.db.table(a).where("k").anyOf(t).delete():e.db.table(a).clear()})).then(function(){return n})):n}var ot=(function(){function e(t){this["@@propmod"]=t}return e.prototype.execute=function(t){var n,i=this["@@propmod"];if(i.add!==void 0){var r=i.add;if(P(r))return k(k([],P(t)?t:[],!0),r,!0).sort();if(typeof r=="number")return(Number(t)||0)+r;if(typeof r=="bigint")try{return BigInt(t)+r}catch{return BigInt(0)+r}throw new TypeError("Invalid term ".concat(r))}if(i.remove!==void 0){var a=i.remove;if(P(a))return P(t)?t.filter(function(s){return!a.includes(s)}).sort():[];if(typeof a=="number")return Number(t)-a;if(typeof a=="bigint")try{return BigInt(t)-a}catch{return BigInt(0)-a}throw new TypeError("Invalid subtrahend ".concat(a))}var o=(n=i.replacePrefix)===null||n===void 0?void 0:n[0];return o&&typeof t=="string"&&t.startsWith(o)?i.replacePrefix[1]+t.substring(o.length):t},e})();function yi(e,t){for(var n=z(t),i=n.length,r=!1,a=0;a<i;++a){var o=n[a],s=t[o],c=de(e,o);s instanceof ot?(te(e,o,s.execute(c)),r=!0):c!==s&&(te(e,o,s),r=!0)}return r}var gi=(function(){function e(){}return e.prototype._trans=function(t,n,i){var r=this._tx||A.trans,a=this.name,o=le&&typeof console<"u"&&console.createTask&&void 0;function s(f,u,y){if(!y.schema[a])throw new I.NotFound("Table "+a+" not part of transaction");return n(y.idbtrans,y)}var c=Ue();try{var l=r&&r.db._novip===this.db._novip?r===A.trans?r._promise(t,s,i):xe(function(){return r._promise(t,s,i)},{trans:r,transless:A.transless||A}):un(this.db,t,[this.name],s);return o&&(l._consoleTask=o,l=l.catch(function(f){return Q(f)})),l}finally{c&&Ye()}},e.prototype.get=function(t,n){var i=this;return t&&t.constructor===Object?this.where(t).first(n):t==null?Q(new I.Type("Invalid argument to Table.get()")):this._trans("readonly",function(r){return i.core.get({trans:r,key:t}).then(function(a){return i.hook.reading.fire(a)})}).then(n)},e.prototype.where=function(t){if(typeof t=="string")return new this.db.WhereClause(this,t);if(P(t))return new this.db.WhereClause(this,"[".concat(t.join("+"),"]"));var n=z(t);if(n.length===1)return this.where(n[0]).equals(t[n[0]]);var i=this.schema.indexes.concat(this.schema.primKey).filter(function(f){if(f.compound&&n.every(function(y){return f.keyPath.indexOf(y)>=0})){for(var u=0;u<n.length;++u)if(n.indexOf(f.keyPath[u])===-1)return!1;return!0}return!1}).sort(function(f,u){return f.keyPath.length-u.keyPath.length})[0];if(i&&this.db._maxKey!==Ie){var r=i.keyPath.slice(0,n.length);return this.where(r).equals(r.map(function(f){return t[f]}))}var a=this.schema.idxByName;function o(f,u){return W(f,u)===0}var s=n.reduce(function(f,u){var y=f[0],E=f[1],p=a[u],d=t[u];return[y||p,y||!p?Re(E,p&&p.multi?function(h){var g=de(h,u);return P(g)&&g.some(function(w){return o(d,w)})}:function(h){return o(d,de(h,u))}):E]},[null,null]),c=s[0],l=s[1];return c?this.where(c.name).equals(t[c.keyPath]).filter(l):i?this.filter(l):this.where(n).equals("")},e.prototype.filter=function(t){return this.toCollection().and(t)},e.prototype.count=function(t){return this.toCollection().count(t)},e.prototype.offset=function(t){return this.toCollection().offset(t)},e.prototype.limit=function(t){return this.toCollection().limit(t)},e.prototype.each=function(t){return this.toCollection().each(t)},e.prototype.toArray=function(t){return this.toCollection().toArray(t)},e.prototype.toCollection=function(){return new this.db.Collection(new this.db.WhereClause(this))},e.prototype.orderBy=function(t){return new this.db.Collection(new this.db.WhereClause(this,P(t)?"[".concat(t.join("+"),"]"):t))},e.prototype.reverse=function(){return this.toCollection().reverse()},e.prototype.mapToClass=function(t){var n=this,i=n.db,r=n.name;this.schema.mappedClass=t,t.prototype instanceof mi&&(t=(function(c){v(l,c);function l(){return c!==null&&c.apply(this,arguments)||this}return Object.defineProperty(l.prototype,"db",{get:function(){return i},enumerable:!1,configurable:!0}),l.prototype.table=function(){return r},l})(t));for(var a=new Set,o=t.prototype;o;o=H(o))Object.getOwnPropertyNames(o).forEach(function(c){return a.add(c)});var s=function(c){if(!c)return c;var l=Object.create(t.prototype);for(var f in c)if(!a.has(f))try{l[f]=c[f]}catch{}return l};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=s,this.hook("reading",s),t},e.prototype.defineClass=function(){function t(n){N(this,n)}return this.mapToClass(t)},e.prototype.add=function(t,n){var i=this,r=this.schema.primKey,a=r.auto,o=r.keyPath,s=t;return o&&a&&(s=Kt(o)(t)),this._trans("readwrite",function(c){return i.core.mutate({trans:c,type:"add",keys:n!=null?[n]:null,values:[s]})}).then(function(c){return c.numFailures?D.reject(c.failures[0]):c.lastResult}).then(function(c){if(o)try{te(t,o,c)}catch{}return c})},e.prototype.upsert=function(t,n){var i=this,r=this.schema.primKey.keyPath;return this._trans("readwrite",function(a){return i.core.get({trans:a,key:t}).then(function(o){var s=o!=null?o:{};return yi(s,n),r&&te(s,r,t),i.core.mutate({trans:a,type:"put",values:[s],keys:[t],upsert:!0,updates:{keys:[t],changeSpecs:[n]}}).then(function(c){return c.numFailures?D.reject(c.failures[0]):!!o})})})},e.prototype.update=function(t,n){if(typeof t=="object"&&!P(t)){var i=de(t,this.schema.primKey.keyPath);return i===void 0?Q(new I.InvalidArgument("Given object does not contain its primary key")):this.where(":id").equals(i).modify(n)}else return this.where(":id").equals(t).modify(n)},e.prototype.put=function(t,n){var i=this,r=this.schema.primKey,a=r.auto,o=r.keyPath,s=t;return o&&a&&(s=Kt(o)(t)),this._trans("readwrite",function(c){return i.core.mutate({trans:c,type:"put",values:[s],keys:n!=null?[n]:null})}).then(function(c){return c.numFailures?D.reject(c.failures[0]):c.lastResult}).then(function(c){if(o)try{te(t,o,c)}catch{}return c})},e.prototype.delete=function(t){var n=this;return this._trans("readwrite",function(i){return n.core.mutate({trans:i,type:"delete",keys:[t]}).then(function(r){return Ot(n,[t],r)}).then(function(r){return r.numFailures?D.reject(r.failures[0]):void 0})})},e.prototype.clear=function(){var t=this;return this._trans("readwrite",function(n){return t.core.mutate({trans:n,type:"deleteRange",range:di}).then(function(i){return Ot(t,null,i)})}).then(function(n){return n.numFailures?D.reject(n.failures[0]):void 0})},e.prototype.bulkGet=function(t){var n=this;return this._trans("readonly",function(i){return n.core.getMany({keys:t,trans:i}).then(function(r){return r.map(function(a){return n.hook.reading.fire(a)})})})},e.prototype.bulkAdd=function(t,n,i){var r=this,a=Array.isArray(n)?n:void 0;i=i||(a?void 0:n);var o=i?i.allKeys:void 0;return this._trans("readwrite",function(s){var c=r.schema.primKey,l=c.auto,f=c.keyPath;if(f&&a)throw new I.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");if(a&&a.length!==t.length)throw new I.InvalidArgument("Arguments objects and keys must have the same length");var u=t.length,y=f&&l?t.map(Kt(f)):t;return r.core.mutate({trans:s,type:"add",keys:a,values:y,wantResults:o}).then(function(E){var p=E.numFailures,d=E.results,h=E.lastResult,g=E.failures,w=o?d:h;if(p===0)return w;throw new $e("".concat(r.name,".bulkAdd(): ").concat(p," of ").concat(u," operations failed"),g)})})},e.prototype.bulkPut=function(t,n,i){var r=this,a=Array.isArray(n)?n:void 0;i=i||(a?void 0:n);var o=i?i.allKeys:void 0;return this._trans("readwrite",function(s){var c=r.schema.primKey,l=c.auto,f=c.keyPath;if(f&&a)throw new I.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");if(a&&a.length!==t.length)throw new I.InvalidArgument("Arguments objects and keys must have the same length");var u=t.length,y=f&&l?t.map(Kt(f)):t;return r.core.mutate({trans:s,type:"put",keys:a,values:y,wantResults:o}).then(function(E){var p=E.numFailures,d=E.results,h=E.lastResult,g=E.failures,w=o?d:h;if(p===0)return w;throw new $e("".concat(r.name,".bulkPut(): ").concat(p," of ").concat(u," operations failed"),g)})})},e.prototype.bulkUpdate=function(t){var n=this,i=this.core,r=t.map(function(s){return s.key}),a=t.map(function(s){return s.changes}),o=[];return this._trans("readwrite",function(s){return i.getMany({trans:s,keys:r,cache:"clone"}).then(function(c){var l=[],f=[];t.forEach(function(y,E){var p=y.key,d=y.changes,h=c[E];if(h){for(var g=0,w=Object.keys(d);g<w.length;g++){var b=w[g],_=d[b];if(b===n.schema.primKey.keyPath){if(W(_,p)!==0)throw new I.Constraint("Cannot update primary key in bulkUpdate()")}else te(h,b,_)}o.push(E),l.push(p),f.push(h)}});var u=l.length;return i.mutate({trans:s,type:"put",keys:l,values:f,updates:{keys:r,changeSpecs:a}}).then(function(y){var E=y.numFailures,p=y.failures;if(E===0)return u;for(var d=0,h=Object.keys(p);d<h.length;d++){var g=h[d],w=o[Number(g)];if(w!=null){var b=p[g];delete p[g],p[w]=b}}throw new $e("".concat(n.name,".bulkUpdate(): ").concat(E," of ").concat(u," operations failed"),p)})})})},e.prototype.bulkDelete=function(t){var n=this,i=t.length;return this._trans("readwrite",function(r){return n.core.mutate({trans:r,type:"delete",keys:t}).then(function(a){return Ot(n,t,a)})}).then(function(r){var a=r.numFailures,o=r.lastResult,s=r.failures;if(a===0)return o;throw new $e("".concat(n.name,".bulkDelete(): ").concat(a," of ").concat(i," operations failed"),s)})},e})();function st(e){var t={},n=function(s,c){if(c){for(var l=arguments.length,f=new Array(l-1);--l;)f[l-1]=arguments[l];return t[s].subscribe.apply(null,f),e}else if(typeof s=="string")return t[s]};n.addEventType=a;for(var i=1,r=arguments.length;i<r;++i)a(arguments[i]);return n;function a(s,c,l){if(typeof s=="object")return o(s);c||(c=ur),l||(l=$);var f={subscribers:[],fire:l,subscribe:function(u){f.subscribers.indexOf(u)===-1&&(f.subscribers.push(u),f.fire=c(f.fire,u))},unsubscribe:function(u){f.subscribers=f.subscribers.filter(function(y){return y!==u}),f.fire=f.subscribers.reduce(c,l)}};return t[s]=n[s]=f,f}function o(s){z(s).forEach(function(c){var l=s[c];if(P(l))a(c,s[c][0],s[c][1]);else if(l==="asap")var f=a(c,nt,function(){for(var y=arguments.length,E=new Array(y);y--;)E[y]=arguments[y];f.subscribers.forEach(function(p){Qn(function(){p.apply(null,E)})})});else throw new I.InvalidArgument("Invalid event config")})}}function ct(e,t){return Le(t).from({prototype:e}),t}function jr(e){return ct(gi.prototype,function(n,i,r){this.db=e,this._tx=r,this.name=n,this.schema=i,this.hook=e._allTables[n]?e._allTables[n].hook:st(null,{creating:[sr,$],reading:[or,nt],updating:[lr,$],deleting:[cr,$]})})}function Ge(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function mn(e,t){e.filter=Re(e.filter,t)}function vn(e,t,n){var i=e.replayFilter;e.replayFilter=i?function(){return Re(i(),t())}:t,e.justLimit=n&&!i}function Sr(e,t){e.isMatch=Re(e.isMatch,t)}function At(e,t){if(e.isPrimKey)return t.primaryKey;var n=t.getIndexByKeyPath(e.index);if(!n)throw new I.Schema("KeyPath "+e.index+" on object store "+t.name+" is not indexed");return n}function xi(e,t,n){var i=At(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:e.dir==="prev",unique:!!e.unique,query:{index:i,range:e.range}})}function Pt(e,t,n,i){var r=e.replayFilter?Re(e.filter,e.replayFilter()):e.filter;if(e.or){var a={},o=function(s,c,l){if(!r||r(c,l,function(y){return c.stop(y)},function(y){return c.fail(y)})){var f=c.primaryKey,u=""+f;u==="[object ArrayBuffer]"&&(u=""+new Uint8Array(f)),ee(a,u)||(a[u]=!0,t(s,c,l))}};return Promise.all([e.or._iterate(o,n),wi(xi(e,i,n),e.algorithm,o,!e.keysOnly&&e.valueMapper)])}else return wi(xi(e,i,n),Re(e.algorithm,r),t,!e.keysOnly&&e.valueMapper)}function wi(e,t,n,i){var r=i?function(o,s,c){return n(i(o),s,c)}:n,a=U(r);return e.then(function(o){if(o)return o.start(function(){var s=function(){return o.continue()};(!t||t(o,function(c){return s=c},function(c){o.stop(c),s=$},function(c){o.fail(c),s=$}))&&a(o.value,o,function(c){return s=c}),s()})})}var Dr=(function(){function e(){}return e.prototype._read=function(t,n){var i=this._ctx;return i.error?i.table._trans(null,Q.bind(null,i.error)):i.table._trans("readonly",t).then(n)},e.prototype._write=function(t){var n=this._ctx;return n.error?n.table._trans(null,Q.bind(null,n.error)):n.table._trans("readwrite",t,"locked")},e.prototype._addAlgorithm=function(t){var n=this._ctx;n.algorithm=Re(n.algorithm,t)},e.prototype._iterate=function(t,n){return Pt(this._ctx,t,n,this._ctx.table.core)},e.prototype.clone=function(t){var n=Object.create(this.constructor.prototype),i=Object.create(this._ctx);return t&&N(i,t),n._ctx=i,n},e.prototype.raw=function(){return this._ctx.valueMapper=null,this},e.prototype.each=function(t){var n=this._ctx;return this._read(function(i){return Pt(n,t,i,n.table.core)})},e.prototype.count=function(t){var n=this;return this._read(function(i){var r=n._ctx,a=r.table.core;if(Ge(r,!0))return a.count({trans:i,query:{index:At(r,a.schema),range:r.range}}).then(function(s){return Math.min(s,r.limit)});var o=0;return Pt(r,function(){return++o,!1},i,a).then(function(){return o})}).then(t)},e.prototype.sortBy=function(t,n){var i=t.split(".").reverse(),r=i[0],a=i.length-1;function o(l,f){return f?o(l[i[f]],f-1):l[r]}var s=this._ctx.dir==="next"?1:-1;function c(l,f){var u=o(l,a),y=o(f,a);return W(u,y)*s}return this.toArray(function(l){return l.sort(c)}).then(n)},e.prototype.toArray=function(t){var n=this;return this._read(function(i){var r=n._ctx;if(r.dir==="next"&&Ge(r,!0)&&r.limit>0){var a=r.valueMapper,o=At(r,r.table.core.schema);return r.table.core.query({trans:i,limit:r.limit,values:!0,query:{index:o,range:r.range}}).then(function(c){var l=c.result;return a?l.map(a):l})}else{var s=[];return Pt(r,function(c){return s.push(c)},i,r.table.core).then(function(){return s})}},t)},e.prototype.offset=function(t){var n=this._ctx;return t<=0?this:(n.offset+=t,Ge(n)?vn(n,function(){var i=t;return function(r,a){return i===0?!0:i===1?(--i,!1):(a(function(){r.advance(i),i=0}),!1)}}):vn(n,function(){var i=t;return function(){return--i<0}}),this)},e.prototype.limit=function(t){return this._ctx.limit=Math.min(this._ctx.limit,t),vn(this._ctx,function(){var n=t;return function(i,r,a){return--n<=0&&r(a),n>=0}},!0),this},e.prototype.until=function(t,n){return mn(this._ctx,function(i,r,a){return t(i.value)?(r(a),n):!0}),this},e.prototype.first=function(t){return this.limit(1).toArray(function(n){return n[0]}).then(t)},e.prototype.last=function(t){return this.reverse().first(t)},e.prototype.filter=function(t){return mn(this._ctx,function(n){return t(n.value)}),Sr(this._ctx,t),this},e.prototype.and=function(t){return this.filter(t)},e.prototype.or=function(t){return new this.db.WhereClause(this._ctx.table,t,this)},e.prototype.reverse=function(){return this._ctx.dir=this._ctx.dir==="prev"?"next":"prev",this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this},e.prototype.desc=function(){return this.reverse()},e.prototype.eachKey=function(t){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(i,r){t(r.key,r)})},e.prototype.eachUniqueKey=function(t){return this._ctx.unique="unique",this.eachKey(t)},e.prototype.eachPrimaryKey=function(t){var n=this._ctx;return n.keysOnly=!n.isMatch,this.each(function(i,r){t(r.primaryKey,r)})},e.prototype.keys=function(t){var n=this._ctx;n.keysOnly=!n.isMatch;var i=[];return this.each(function(r,a){i.push(a.key)}).then(function(){return i}).then(t)},e.prototype.primaryKeys=function(t){var n=this._ctx;if(n.dir==="next"&&Ge(n,!0)&&n.limit>0)return this._read(function(r){var a=At(n,n.table.core.schema);return n.table.core.query({trans:r,values:!1,limit:n.limit,query:{index:a,range:n.range}})}).then(function(r){var a=r.result;return a}).then(t);n.keysOnly=!n.isMatch;var i=[];return this.each(function(r,a){i.push(a.primaryKey)}).then(function(){return i}).then(t)},e.prototype.uniqueKeys=function(t){return this._ctx.unique="unique",this.keys(t)},e.prototype.firstKey=function(t){return this.limit(1).keys(function(n){return n[0]}).then(t)},e.prototype.lastKey=function(t){return this.reverse().firstKey(t)},e.prototype.distinct=function(){var t=this._ctx,n=t.index&&t.table.schema.idxByName[t.index];if(!n||!n.multi)return this;var i={};return mn(this._ctx,function(r){var a=r.primaryKey.toString(),o=ee(i,a);return i[a]=!0,!o}),this},e.prototype.modify=function(t){var n=this,i=this._ctx;return this._write(function(r){var a;typeof t=="function"?a=t:a=function(g){return yi(g,t)};var o=i.table.core,s=o.schema.primaryKey,c=s.outbound,l=s.extractKey,f=200,u=n.db._options.modifyChunkSize;u&&(typeof u=="object"?f=u[o.name]||u["*"]||200:f=u);var y=[],E=0,p=[],d=function(g,w){var b=w.failures,_=w.numFailures;E+=g-_;for(var x=0,j=z(b);x<j.length;x++){var T=j[x];y.push(b[T])}},h=t===bi;return n.clone().primaryKeys().then(function(g){var w=Ge(i)&&i.limit===1/0&&(typeof t!="function"||h)&&{index:i.index,range:i.range},b=function(_){var x=Math.min(f,g.length-_),j=g.slice(_,_+x);return(h?Promise.resolve([]):o.getMany({trans:r,keys:j,cache:"immutable"})).then(function(T){var S=[],R=[],V=c?[]:null,K=h?j:[];if(!h)for(var M=0;M<x;++M){var F=T[M],q={value:De(F),primKey:g[_+M]};a.call(q,q.value,q)!==!1&&(q.value==null?K.push(g[_+M]):!c&&W(l(F),l(q.value))!==0?(K.push(g[_+M]),S.push(q.value)):(R.push(q.value),c&&V.push(g[_+M])))}return Promise.resolve(S.length>0&&o.mutate({trans:r,type:"add",values:S}).then(function(C){for(var Y in C.failures)K.splice(parseInt(Y),1);d(S.length,C)})).then(function(){return(R.length>0||w&&typeof t=="object")&&o.mutate({trans:r,type:"put",keys:V,values:R,criteria:w,changeSpec:typeof t!="function"&&t,isAdditionalChunk:_>0}).then(function(C){return d(R.length,C)})}).then(function(){return(K.length>0||w&&h)&&o.mutate({trans:r,type:"delete",keys:K,criteria:w,isAdditionalChunk:_>0}).then(function(C){return Ot(i.table,K,C)}).then(function(C){return d(K.length,C)})}).then(function(){return g.length>_+x&&b(_+f)})})};return b(0).then(function(){if(y.length>0)throw new gt("Error modifying one or more objects",y,E,p);return g.length})})})},e.prototype.delete=function(){var t=this._ctx,n=t.range;return Ge(t)&&!t.table.schema.yProps&&(t.isPrimKey||n.type===3)?this._write(function(i){var r=t.table.core.schema.primaryKey,a=n;return t.table.core.count({trans:i,query:{index:r,range:a}}).then(function(o){return t.table.core.mutate({trans:i,type:"deleteRange",range:a}).then(function(s){var c=s.failures,l=s.numFailures;if(l)throw new gt("Could not delete some values",Object.keys(c).map(function(f){return c[f]}),o-l);return o-l})})}):this.modify(bi)},e})(),bi=function(e,t){return t.value=null};function Tr(e){return ct(Dr.prototype,function(n,i){this.db=e;var r=di,a=null;if(i)try{r=i()}catch(l){a=l}var o=n._ctx,s=o.table,c=s.hook.reading.fire;this._ctx={table:s,index:o.index,isPrimKey:!o.index||s.schema.primKey.keyPath&&o.index===s.schema.primKey.name,range:r,keysOnly:!1,dir:"next",unique:"",algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:a,or:o.or,valueMapper:c!==nt?c:null}})}function Kr(e,t){return e<t?-1:e===t?0:1}function Or(e,t){return e>t?-1:e===t?0:1}function re(e,t,n){var i=e instanceof ki?new e.Collection(e):e;return i._ctx.error=n?new n(t):new TypeError(t),i}function Je(e){return new e.Collection(e,function(){return _i("")}).limit(0)}function Ar(e){return e==="next"?function(t){return t.toUpperCase()}:function(t){return t.toLowerCase()}}function Pr(e){return e==="next"?function(t){return t.toLowerCase()}:function(t){return t.toUpperCase()}}function Cr(e,t,n,i,r,a){for(var o=Math.min(e.length,i.length),s=-1,c=0;c<o;++c){var l=t[c];if(l!==i[c])return r(e[c],n[c])<0?e.substr(0,c)+n[c]+n.substr(c+1):r(e[c],i[c])<0?e.substr(0,c)+i[c]+n.substr(c+1):s>=0?e.substr(0,s)+t[s]+n.substr(s+1):null;r(e[c],l)<0&&(s=c)}return o<i.length&&a==="next"?e+n.substr(e.length):o<e.length&&a==="prev"?e.substr(0,n.length):s<0?null:e.substr(0,s)+i[s]+n.substr(s+1)}function Ct(e,t,n,i){var r,a,o,s,c,l,f,u=n.length;if(!n.every(function(d){return typeof d=="string"}))return re(e,fi);function y(d){r=Ar(d),a=Pr(d),o=d==="next"?Kr:Or;var h=n.map(function(g){return{lower:a(g),upper:r(g)}}).sort(function(g,w){return o(g.lower,w.lower)});s=h.map(function(g){return g.upper}),c=h.map(function(g){return g.lower}),l=d,f=d==="next"?"":i}y("next");var E=new e.Collection(e,function(){return _e(s[0],c[u-1]+i)});E._ondirectionchange=function(d){y(d)};var p=0;return E._addAlgorithm(function(d,h,g){var w=d.key;if(typeof w!="string")return!1;var b=a(w);if(t(b,c,p))return!0;for(var _=null,x=p;x<u;++x){var j=Cr(w,b,s[x],c[x],o,l);j===null&&_===null?p=x+1:(_===null||o(_,j)>0)&&(_=j)}return h(_!==null?function(){d.continue(_+f)}:g),!1}),E}function _e(e,t,n,i){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:i}}function _i(e){return{type:1,lower:e,upper:e}}var ki=(function(){function e(){}return Object.defineProperty(e.prototype,"Collection",{get:function(){return this._ctx.table.db.Collection},enumerable:!1,configurable:!0}),e.prototype.between=function(t,n,i,r){i=i!==!1,r=r===!0;try{return this._cmp(t,n)>0||this._cmp(t,n)===0&&(i||r)&&!(i&&r)?Je(this):new this.Collection(this,function(){return _e(t,n,!i,!r)})}catch{return re(this,ve)}},e.prototype.equals=function(t){return t==null?re(this,ve):new this.Collection(this,function(){return _i(t)})},e.prototype.above=function(t){return t==null?re(this,ve):new this.Collection(this,function(){return _e(t,void 0,!0)})},e.prototype.aboveOrEqual=function(t){return t==null?re(this,ve):new this.Collection(this,function(){return _e(t,void 0,!1)})},e.prototype.below=function(t){return t==null?re(this,ve):new this.Collection(this,function(){return _e(void 0,t,!1,!0)})},e.prototype.belowOrEqual=function(t){return t==null?re(this,ve):new this.Collection(this,function(){return _e(void 0,t)})},e.prototype.startsWith=function(t){return typeof t!="string"?re(this,fi):this.between(t,t+Ie,!0,!0)},e.prototype.startsWithIgnoreCase=function(t){return t===""?this.startsWith(t):Ct(this,function(n,i){return n.indexOf(i[0])===0},[t],Ie)},e.prototype.equalsIgnoreCase=function(t){return Ct(this,function(n,i){return n===i[0]},[t],"")},e.prototype.anyOfIgnoreCase=function(){var t=me.apply(We,arguments);return t.length===0?Je(this):Ct(this,function(n,i){return i.indexOf(n)!==-1},t,"")},e.prototype.startsWithAnyOfIgnoreCase=function(){var t=me.apply(We,arguments);return t.length===0?Je(this):Ct(this,function(n,i){return i.some(function(r){return n.indexOf(r)===0})},t,Ie)},e.prototype.anyOf=function(){var t=this,n=me.apply(We,arguments),i=this._cmp;try{n.sort(i)}catch{return re(this,ve)}if(n.length===0)return Je(this);var r=new this.Collection(this,function(){return _e(n[0],n[n.length-1])});r._ondirectionchange=function(o){i=o==="next"?t._ascending:t._descending,n.sort(i)};var a=0;return r._addAlgorithm(function(o,s,c){for(var l=o.key;i(l,n[a])>0;)if(++a,a===n.length)return s(c),!1;return i(l,n[a])===0?!0:(s(function(){o.continue(n[a])}),!1)}),r},e.prototype.notEqual=function(t){return this.inAnyRange([[pn,t],[t,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})},e.prototype.noneOf=function(){var t=me.apply(We,arguments);if(t.length===0)return new this.Collection(this);try{t.sort(this._ascending)}catch{return re(this,ve)}var n=t.reduce(function(i,r){return i?i.concat([[i[i.length-1][1],r]]):[[pn,r]]},null);return n.push([t[t.length-1],this.db._maxKey]),this.inAnyRange(n,{includeLowers:!1,includeUppers:!1})},e.prototype.inAnyRange=function(t,n){var i=this,r=this._cmp,a=this._ascending,o=this._descending,s=this._min,c=this._max;if(t.length===0)return Je(this);if(!t.every(function(x){return x[0]!==void 0&&x[1]!==void 0&&a(x[0],x[1])<=0}))return re(this,"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower",I.InvalidArgument);var l=!n||n.includeLowers!==!1,f=n&&n.includeUppers===!0;function u(x,j){for(var T=0,S=x.length;T<S;++T){var R=x[T];if(r(j[0],R[1])<0&&r(j[1],R[0])>0){R[0]=s(R[0],j[0]),R[1]=c(R[1],j[1]);break}}return T===S&&x.push(j),x}var y=a;function E(x,j){return y(x[0],j[0])}var p;try{p=t.reduce(u,[]),p.sort(E)}catch{return re(this,ve)}var d=0,h=f?function(x){return a(x,p[d][1])>0}:function(x){return a(x,p[d][1])>=0},g=l?function(x){return o(x,p[d][0])>0}:function(x){return o(x,p[d][0])>=0};function w(x){return!h(x)&&!g(x)}var b=h,_=new this.Collection(this,function(){return _e(p[0][0],p[p.length-1][1],!l,!f)});return _._ondirectionchange=function(x){x==="next"?(b=h,y=a):(b=g,y=o),p.sort(E)},_._addAlgorithm(function(x,j,T){for(var S=x.key;b(S);)if(++d,d===p.length)return j(T),!1;return w(S)?!0:(i._cmp(S,p[d][1])===0||i._cmp(S,p[d][0])===0||j(function(){y===a?x.continue(p[d][0]):x.continue(p[d][1])}),!1)}),_},e.prototype.startsWithAnyOf=function(){var t=me.apply(We,arguments);return t.every(function(n){return typeof n=="string"})?t.length===0?Je(this):this.inAnyRange(t.map(function(n){return[n,n+Ie]})):re(this,"startsWithAnyOf() only works with strings")},e})();function Ir(e){return ct(ki.prototype,function(n,i,r){if(this.db=e,this._ctx={table:n,index:i===":id"?null:i,or:r},this._cmp=this._ascending=W,this._descending=function(a,o){return W(o,a)},this._max=function(a,o){return W(a,o)>0?a:o},this._min=function(a,o){return W(a,o)<0?a:o},this._IDBKeyRange=e._deps.IDBKeyRange,!this._IDBKeyRange)throw new I.MissingAPI})}function ue(e){return U(function(t){return lt(t),e(t.target.error),!1})}function lt(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}var ut="storagemutated",hn="x-storagemutated-1",ke=st(null,ut),Rr=(function(){function e(){}return e.prototype._lock=function(){return et(!A.global),++this._reculock,this._reculock===1&&!A.global&&(A.lockOwnerFor=this),this},e.prototype._unlock=function(){if(et(!A.global),--this._reculock===0)for(A.global||(A.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var t=this._blockedFuncs.shift();try{Ce(t[1],t[0])}catch{}}return this},e.prototype._locked=function(){return this._reculock&&A.lockOwnerFor!==this},e.prototype.create=function(t){var n=this;if(!this.mode)return this;var i=this.db.idbdb,r=this.db._state.dbOpenError;if(et(!this.idbtrans),!t&&!i)switch(r&&r.name){case"DatabaseClosedError":throw new I.DatabaseClosed(r);case"MissingAPIError":throw new I.MissingAPI(r.message,r);default:throw new I.OpenFailed(r)}if(!this.active)throw new I.TransactionInactive;return et(this._completion._state===null),t=this.idbtrans=t||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):i.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability})),t.onerror=U(function(a){lt(a),n._reject(t.error)}),t.onabort=U(function(a){lt(a),n.active&&n._reject(new I.Abort(t.error)),n.active=!1,n.on("abort").fire(a)}),t.oncomplete=U(function(){n.active=!1,n._resolve(),"mutatedParts"in t&&ke.storagemutated.fire(t.mutatedParts)}),this},e.prototype._promise=function(t,n,i){var r=this;if(t==="readwrite"&&this.mode!=="readwrite")return Q(new I.ReadOnly("Transaction is readonly"));if(!this.active)return Q(new I.TransactionInactive);if(this._locked())return new D(function(o,s){r._blockedFuncs.push([function(){r._promise(t,n,i).then(o,s)},A])});if(i)return xe(function(){var o=new D(function(s,c){r._lock();var l=n(s,c,r);l&&l.then&&l.then(s,c)});return o.finally(function(){return r._unlock()}),o._lib=!0,o});var a=new D(function(o,s){var c=n(o,s,r);c&&c.then&&c.then(o,s)});return a._lib=!0,a},e.prototype._root=function(){return this.parent?this.parent._root():this},e.prototype.waitFor=function(t){var n=this._root(),i=D.resolve(t);if(n._waitingFor)n._waitingFor=n._waitingFor.then(function(){return i});else{n._waitingFor=i,n._waitingQueue=[];var r=n.idbtrans.objectStore(n.storeNames[0]);(function o(){for(++n._spinCount;n._waitingQueue.length;)n._waitingQueue.shift()();n._waitingFor&&(r.get(-1/0).onsuccess=o)})()}var a=n._waitingFor;return new D(function(o,s){i.then(function(c){return n._waitingQueue.push(U(o.bind(null,c)))},function(c){return n._waitingQueue.push(U(s.bind(null,c)))}).finally(function(){n._waitingFor===a&&(n._waitingFor=null)})})},e.prototype.abort=function(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new I.Abort))},e.prototype.table=function(t){var n=this._memoizedTables||(this._memoizedTables={});if(ee(n,t))return n[t];var i=this.schema[t];if(!i)throw new I.NotFound("Table "+t+" not part of transaction");var r=new this.db.Table(t,i,this);return r.core=this.db.core.table(t),n[t]=r,r},e})();function Fr(e){return ct(Rr.prototype,function(n,i,r,a,o){var s=this;n!=="readonly"&&i.forEach(function(c){var l,f=(l=r[c])===null||l===void 0?void 0:l.yProps;f&&(i=i.concat(f.map(function(u){return u.updatesTable})))}),this.db=e,this.mode=n,this.storeNames=i,this.schema=r,this.chromeTransactionDurability=a,this.idbtrans=null,this.on=st(this,"complete","error","abort"),this.parent=o||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new D(function(c,l){s._resolve=c,s._reject=l}),this._completion.then(function(){s.active=!1,s.on.complete.fire()},function(c){var l=s.active;return s.active=!1,s.on.error.fire(c),s.parent?s.parent._reject(c):l&&s.idbtrans&&s.idbtrans.abort(),Q(c)})})}function yn(e,t,n,i,r,a,o,s){return{name:e,keyPath:t,unique:n,multi:i,auto:r,compound:a,src:(n&&!o?"&":"")+(i?"*":"")+(r?"++":"")+Ei(t),type:s}}function Ei(e){return typeof e=="string"?e:e?"["+[].join.call(e,"+")+"]":""}function gn(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:Hi(n,function(i){return[i.name,i]})}}function zr(e){return e.length===1?e[0]:e}var pt=function(e){try{return e.only([[]]),pt=function(){return[[]]},[[]]}catch{return pt=function(){return Ie},Ie}};function xn(e){return e==null?function(){}:typeof e=="string"?Br(e):function(t){return de(t,e)}}function Br(e){var t=e.split(".");return t.length===1?function(n){return n[e]}:function(n){return de(n,e)}}function ji(e){return[].slice.call(e)}var Mr=0;function ft(e){return e==null?":id":typeof e=="string"?e:"[".concat(e.join("+"),"]")}function Vr(e,t,n){function i(u,y){var E=ji(u.objectStoreNames);return{schema:{name:u.name,tables:E.map(function(p){return y.objectStore(p)}).map(function(p){var d=p.keyPath,h=p.autoIncrement,g=P(d),w=d==null,b={},_={name:p.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:w,compound:g,keyPath:d,autoIncrement:h,unique:!0,extractKey:xn(d)},indexes:ji(p.indexNames).map(function(x){return p.index(x)}).map(function(x){var j=x.name,T=x.unique,S=x.multiEntry,R=x.keyPath,V=P(R),K={name:j,compound:V,keyPath:R,unique:T,multiEntry:S,extractKey:xn(R)};return b[ft(R)]=K,K}),getIndexByKeyPath:function(x){return b[ft(x)]}};return b[":id"]=_.primaryKey,d!=null&&(b[ft(d)]=_.primaryKey),_})},hasGetAll:E.length>0&&"getAll"in y.objectStore(E[0])&&!(typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}function r(u){if(u.type===3)return null;if(u.type===4)throw new Error("Cannot convert never type to IDBKeyRange");var y=u.lower,E=u.upper,p=u.lowerOpen,d=u.upperOpen,h=y===void 0?E===void 0?null:t.upperBound(E,!!d):E===void 0?t.lowerBound(y,!!p):t.bound(y,E,!!p,!!d);return h}function a(u){var y=u.name;function E(h){var g=h.trans,w=h.type,b=h.keys,_=h.values,x=h.range;return new Promise(function(j,T){j=U(j);var S=g.objectStore(y),R=S.keyPath==null,V=w==="put"||w==="add";if(!V&&w!=="delete"&&w!=="deleteRange")throw new Error("Invalid operation type: "+w);var K=(b||_||{length:1}).length;if(b&&_&&b.length!==_.length)throw new Error("Given keys array must have same length as given values array.");if(K===0)return j({numFailures:0,failures:{},results:[],lastResult:void 0});var M,F=[],q=[],C=0,Y=function(fe){++C,lt(fe)};if(w==="deleteRange"){if(x.type===4)return j({numFailures:C,failures:q,results:[],lastResult:void 0});x.type===3?F.push(M=S.clear()):F.push(M=S.delete(r(x)))}else{var X=V?R?[_,b]:[_,null]:[b,null],pe=X[0],ne=X[1];if(V)for(var ae=0;ae<K;++ae)F.push(M=ne&&ne[ae]!==void 0?S[w](pe[ae],ne[ae]):S[w](pe[ae])),M.onerror=Y;else for(var ae=0;ae<K;++ae)F.push(M=S[w](pe[ae])),M.onerror=Y}var Se=function(fe){var vt=fe.target.result;F.forEach(function(ce,$t){return ce.error!=null&&(q[$t]=ce.error)}),j({numFailures:C,failures:q,results:w==="delete"?b:F.map(function(ce){return ce.result}),lastResult:vt})};M.onerror=function(fe){Y(fe),Se(fe)},M.onsuccess=Se})}function p(h){var g=h.trans,w=h.values,b=h.query,_=h.reverse,x=h.unique;return new Promise(function(j,T){j=U(j);var S=b.index,R=b.range,V=g.objectStore(y),K=S.isPrimaryKey?V:V.index(S.name),M=_?x?"prevunique":"prev":x?"nextunique":"next",F=w||!("openKeyCursor"in K)?K.openCursor(r(R),M):K.openKeyCursor(r(R),M);F.onerror=ue(T),F.onsuccess=U(function(q){var C=F.result;if(!C){j(null);return}C.___id=++Mr,C.done=!1;var Y=C.continue.bind(C),X=C.continuePrimaryKey;X&&(X=X.bind(C));var pe=C.advance.bind(C),ne=function(){throw new Error("Cursor not started")},ae=function(){throw new Error("Cursor not stopped")};C.trans=g,C.stop=C.continue=C.continuePrimaryKey=C.advance=ne,C.fail=U(T),C.next=function(){var Se=this,fe=1;return this.start(function(){return fe--?Se.continue():Se.stop()}).then(function(){return Se})},C.start=function(Se){var fe=new Promise(function(ce,$t){ce=U(ce),F.onerror=ue($t),C.fail=$t,C.stop=function(Da){C.stop=C.continue=C.continuePrimaryKey=C.advance=ae,ce(Da)}}),vt=function(){if(F.result)try{Se()}catch(ce){C.fail(ce)}else C.done=!0,C.start=function(){throw new Error("Cursor behind last entry")},C.stop()};return F.onsuccess=U(function(ce){F.onsuccess=vt,vt()}),C.continue=Y,C.continuePrimaryKey=X,C.advance=pe,vt(),fe},j(C)},T)})}function d(h){return function(g){return new Promise(function(w,b){w=U(w);var _=g.trans,x=g.values,j=g.limit,T=g.query,S=j===1/0?void 0:j,R=T.index,V=T.range,K=_.objectStore(y),M=R.isPrimaryKey?K:K.index(R.name),F=r(V);if(j===0)return w({result:[]});if(h){var q=x?M.getAll(F,S):M.getAllKeys(F,S);q.onsuccess=function(pe){return w({result:pe.target.result})},q.onerror=ue(b)}else{var C=0,Y=x||!("openKeyCursor"in M)?M.openCursor(F):M.openKeyCursor(F),X=[];Y.onsuccess=function(pe){var ne=Y.result;if(!ne)return w({result:X});if(X.push(x?ne.value:ne.primaryKey),++C===j)return w({result:X});ne.continue()},Y.onerror=ue(b)}})}}return{name:y,schema:u,mutate:E,getMany:function(h){var g=h.trans,w=h.keys;return new Promise(function(b,_){b=U(b);for(var x=g.objectStore(y),j=w.length,T=new Array(j),S=0,R=0,V,K=function(C){var Y=C.target;(T[Y._pos]=Y.result)!=null,++R===S&&b(T)},M=ue(_),F=0;F<j;++F){var q=w[F];q!=null&&(V=x.get(w[F]),V._pos=F,V.onsuccess=K,V.onerror=M,++S)}S===0&&b(T)})},get:function(h){var g=h.trans,w=h.key;return new Promise(function(b,_){b=U(b);var x=g.objectStore(y),j=x.get(w);j.onsuccess=function(T){return b(T.target.result)},j.onerror=ue(_)})},query:d(c),openCursor:p,count:function(h){var g=h.query,w=h.trans,b=g.index,_=g.range;return new Promise(function(x,j){var T=w.objectStore(y),S=b.isPrimaryKey?T:T.index(b.name),R=r(_),V=R?S.count(R):S.count();V.onsuccess=U(function(K){return x(K.target.result)}),V.onerror=ue(j)})}}}var o=i(e,n),s=o.schema,c=o.hasGetAll,l=s.tables.map(function(u){return a(u)}),f={};return l.forEach(function(u){return f[u.name]=u}),{stack:"dbcore",transaction:e.transaction.bind(e),table:function(u){var y=f[u];if(!y)throw new Error("Table '".concat(u,"' not found"));return f[u]},MIN_KEY:-1/0,MAX_KEY:pt(t),schema:s}}function Nr(e,t){return t.reduce(function(n,i){var r=i.create;return m(m({},n),r(n))},e)}function Lr(e,t,n,i){var r=n.IDBKeyRange;n.indexedDB;var a=Nr(Vr(t,r,i),e.dbcore);return{dbcore:a}}function It(e,t){var n=t.db,i=Lr(e._middlewares,n,e._deps,t);e.core=i.dbcore,e.tables.forEach(function(r){var a=r.name;e.core.schema.tables.some(function(o){return o.name===a})&&(r.core=e.core.table(a),e[a]instanceof e.Table&&(e[a].core=r.core))})}function Rt(e,t,n,i){n.forEach(function(r){var a=i[r];t.forEach(function(o){var s=Un(o,r);(!s||"value"in s&&s.value===void 0)&&(o===e.Transaction.prototype||o instanceof e.Transaction?ye(o,r,{get:function(){return this.table(r)},set:function(c){$n(this,r,{value:c,writable:!0,configurable:!0,enumerable:!0})}}):o[r]=new e.Table(r,a))})})}function wn(e,t){t.forEach(function(n){for(var i in n)n[i]instanceof e.Table&&delete n[i]})}function Wr(e,t){return e._cfg.version-t._cfg.version}function qr(e,t,n,i){var r=e._dbSchema;n.objectStoreNames.contains("$meta")&&!r.$meta&&(r.$meta=gn("$meta",Di("")[0],[]),e._storeNames.push("$meta"));var a=e._createTransaction("readwrite",e._storeNames,r);a.create(n),a._completion.catch(i);var o=a._reject.bind(a),s=A.transless||A;xe(function(){if(A.trans=a,A.transless=s,t===0)z(r).forEach(function(c){_n(n,c,r[c].primKey,r[c].indexes)}),It(e,n),D.follow(function(){return e.on.populate.fire(a)}).catch(o);else return It(e,n),Ur(e,a,t).then(function(c){return Yr(e,c,a,n)}).catch(o)})}function $r(e,t){Si(e._dbSchema,t),t.db.version%10===0&&!t.objectStoreNames.contains("$meta")&&t.db.createObjectStore("$meta").add(Math.ceil(t.db.version/10-1),"version");var n=zt(e,e.idbdb,t);Bt(e,e._dbSchema,t);for(var i=bn(n,e._dbSchema),r=function(l){if(l.change.length||l.recreate)return{value:void 0};var f=t.objectStore(l.name);l.add.forEach(function(u){Ft(f,u)})},a=0,o=i.change;a<o.length;a++){var s=o[a],c=r(s);if(typeof c=="object")return c.value}}function Ur(e,t,n){return t.storeNames.includes("$meta")?t.table("$meta").get("version").then(function(i){return i!=null?i:n}):D.resolve(n)}function Yr(e,t,n,i){var r=[],a=e._versions,o=e._dbSchema=zt(e,e.idbdb,i),s=a.filter(function(l){return l._cfg.version>=t});if(s.length===0)return D.resolve();s.forEach(function(l){r.push(function(){var f=o,u=l._cfg.dbschema;Bt(e,f,i),Bt(e,u,i),o=e._dbSchema=u;var y=bn(f,u);y.add.forEach(function(w){_n(i,w[0],w[1].primKey,w[1].indexes)}),y.change.forEach(function(w){if(w.recreate)throw new I.Upgrade("Not yet support for changing primary key");var b=i.objectStore(w.name);w.add.forEach(function(_){return Ft(b,_)}),w.change.forEach(function(_){b.deleteIndex(_.name),Ft(b,_)}),w.del.forEach(function(_){return b.deleteIndex(_)})});var E=l._cfg.contentUpgrade;if(E&&l._cfg.version>t){It(e,i),n._memoizedTables={};var p=Hn(u);y.del.forEach(function(w){p[w]=f[w]}),wn(e,[e.Transaction.prototype]),Rt(e,[e.Transaction.prototype],z(p),p),n.schema=p;var d=Gt(E);d&&Qe();var h,g=D.follow(function(){if(h=E(n),h&&d){var w=we.bind(null,null);h.then(w,w)}});return h&&typeof h.then=="function"?D.resolve(h):g.then(function(){return h})}}),r.push(function(f){var u=l._cfg.dbschema;Qr(u,f),wn(e,[e.Transaction.prototype]),Rt(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),n.schema=e._dbSchema}),r.push(function(f){e.idbdb.objectStoreNames.contains("$meta")&&(Math.ceil(e.idbdb.version/10)===l._cfg.version?(e.idbdb.deleteObjectStore("$meta"),delete e._dbSchema.$meta,e._storeNames=e._storeNames.filter(function(u){return u!=="$meta"})):f.objectStore("$meta").put(l._cfg.version,"version"))})});function c(){return r.length?D.resolve(r.shift()(n.idbtrans)).then(c):D.resolve()}return c().then(function(){Si(o,i)})}function bn(e,t){var n={del:[],add:[],change:[]},i;for(i in e)t[i]||n.del.push(i);for(i in t){var r=e[i],a=t[i];if(!r)n.add.push([i,a]);else{var o={name:i,def:a,recreate:!1,del:[],add:[],change:[]};if(""+(r.primKey.keyPath||"")!=""+(a.primKey.keyPath||"")||r.primKey.auto!==a.primKey.auto)o.recreate=!0,n.change.push(o);else{var s=r.idxByName,c=a.idxByName,l=void 0;for(l in s)c[l]||o.del.push(l);for(l in c){var f=s[l],u=c[l];f?f.src!==u.src&&o.change.push(u):o.add.push(u)}(o.del.length>0||o.add.length>0||o.change.length>0)&&n.change.push(o)}}}return n}function _n(e,t,n,i){var r=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return i.forEach(function(a){return Ft(r,a)}),r}function Si(e,t){z(e).forEach(function(n){t.db.objectStoreNames.contains(n)||_n(t,n,e[n].primKey,e[n].indexes)})}function Qr(e,t){[].slice.call(t.db.objectStoreNames).forEach(function(n){return e[n]==null&&t.db.deleteObjectStore(n)})}function Ft(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function zt(e,t,n){var i={},r=yt(t.objectStoreNames,0);return r.forEach(function(a){for(var o=n.objectStore(a),s=o.keyPath,c=yn(Ei(s),s||"",!0,!1,!!o.autoIncrement,s&&typeof s!="string",!0),l=[],f=0;f<o.indexNames.length;++f){var u=o.index(o.indexNames[f]);s=u.keyPath;var y=yn(u.name,s,!!u.unique,!!u.multiEntry,!1,s&&typeof s!="string",!1);l.push(y)}i[a]=gn(a,c,l)}),i}function Hr(e,t,n){e.verno=t.version/10;var i=e._dbSchema=zt(e,t,n);e._storeNames=yt(t.objectStoreNames,0),Rt(e,[e._allTables],z(i),i)}function Gr(e,t){var n=zt(e,e.idbdb,t),i=bn(n,e._dbSchema);return!(i.add.length||i.change.some(function(r){return r.add.length||r.change.length}))}function Bt(e,t,n){for(var i=n.db.objectStoreNames,r=0;r<i.length;++r){var a=i[r],o=n.objectStore(a);e._hasGetAll="getAll"in o;for(var s=0;s<o.indexNames.length;++s){var c=o.indexNames[s],l=o.index(c).keyPath,f=typeof l=="string"?l:"["+yt(l).join("+")+"]";if(t[a]){var u=t[a].idxByName[f];u&&(u.name=c,delete t[a].idxByName[f],t[a].idxByName[c]=u)}}}typeof navigator<"u"&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&O.WorkerGlobalScope&&O instanceof O.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(e._hasGetAll=!1)}function Di(e){return e.split(",").map(function(t,n){var i,r=t.split(":"),a=(i=r[1])===null||i===void 0?void 0:i.trim();t=r[0].trim();var o=t.replace(/([&*]|\+\+)/g,""),s=/^\[/.test(o)?o.match(/^\[(.*)\]$/)[1].split("+"):o;return yn(o,s||null,/\&/.test(t),/\*/.test(t),/\+\+/.test(t),P(s),n===0,a)})}var Jr=(function(){function e(){}return e.prototype._createTableSchema=function(t,n,i){return gn(t,n,i)},e.prototype._parseIndexSyntax=function(t){return Di(t)},e.prototype._parseStoresSpec=function(t,n){var i=this;z(t).forEach(function(r){if(t[r]!==null){var a=i._parseIndexSyntax(t[r]),o=a.shift();if(!o)throw new I.Schema("Invalid schema for table "+r+": "+t[r]);if(o.unique=!0,o.multi)throw new I.Schema("Primary key cannot be multiEntry*");a.forEach(function(c){if(c.auto)throw new I.Schema("Only primary key can be marked as autoIncrement (++)");if(!c.keyPath)throw new I.Schema("Index must have a name and cannot be an empty string")});var s=i._createTableSchema(r,o,a);n[r]=s}})},e.prototype.stores=function(t){var n=this.db;this._cfg.storesSource=this._cfg.storesSource?N(this._cfg.storesSource,t):t;var i=n._versions,r={},a={};return i.forEach(function(o){N(r,o._cfg.storesSource),a=o._cfg.dbschema={},o._parseStoresSpec(r,a)}),n._dbSchema=a,wn(n,[n._allTables,n,n.Transaction.prototype]),Rt(n,[n._allTables,n,n.Transaction.prototype,this._cfg.tables],z(a),a),n._storeNames=z(a),this},e.prototype.upgrade=function(t){return this._cfg.contentUpgrade=Zt(this._cfg.contentUpgrade||$,t),this},e})();function Xr(e){return ct(Jr.prototype,function(n){this.db=e,this._cfg={version:n,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}})}function kn(e,t){var n=e._dbNamesDB;return n||(n=e._dbNamesDB=new he(Tt,{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:"name"})),n.table("dbnames")}function En(e){return e&&typeof e.databases=="function"}function Zr(e){var t=e.indexedDB,n=e.IDBKeyRange;return En(t)?Promise.resolve(t.databases()).then(function(i){return i.map(function(r){return r.name}).filter(function(r){return r!==Tt})}):kn(t,n).toCollection().primaryKeys()}function ea(e,t){var n=e.indexedDB,i=e.IDBKeyRange;!En(n)&&t!==Tt&&kn(n,i).put({name:t}).catch($)}function ta(e,t){var n=e.indexedDB,i=e.IDBKeyRange;!En(n)&&t!==Tt&&kn(n,i).delete(t).catch($)}function jn(e){return xe(function(){return A.letThrough=!0,e()})}function na(){var e=!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent);if(!e||!indexedDB.databases)return Promise.resolve();var t;return new Promise(function(n){var i=function(){return indexedDB.databases().finally(n)};t=setInterval(i,100),i()}).finally(function(){return clearInterval(t)})}var Sn;function Dn(e){return!("from"in e)}var J=function(e,t){if(this)N(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0});else{var n=new J;return e&&"d"in e&&N(n,e),n}};Ne(J.prototype,(Sn={add:function(e){return mt(this,e),this},addKey:function(e){return dt(this,e,e),this},addKeys:function(e){var t=this;return e.forEach(function(n){return dt(t,n,n)}),this},hasKey:function(e){var t=Mt(this).next(e).value;return t&&W(t.from,e)<=0&&W(t.to,e)>=0}},Sn[Ht]=function(){return Mt(this)},Sn));function dt(e,t,n){var i=W(t,n);if(!isNaN(i)){if(i>0)throw RangeError();if(Dn(e))return N(e,{from:t,to:n,d:1});var r=e.l,a=e.r;if(W(n,e.from)<0)return r?dt(r,t,n):e.l={from:t,to:n,d:1,l:null,r:null},Ki(e);if(W(t,e.to)>0)return a?dt(a,t,n):e.r={from:t,to:n,d:1,l:null,r:null},Ki(e);W(t,e.from)<0&&(e.from=t,e.l=null,e.d=a?a.d+1:1),W(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);var o=!e.r;r&&!e.l&&mt(e,r),a&&o&&mt(e,a)}}function mt(e,t){function n(i,r){var a=r.from,o=r.to,s=r.l,c=r.r;dt(i,a,o),s&&n(i,s),c&&n(i,c)}Dn(t)||n(e,t)}function Ti(e,t){var n=Mt(t),i=n.next();if(i.done)return!1;for(var r=i.value,a=Mt(e),o=a.next(r.from),s=o.value;!i.done&&!o.done;){if(W(s.from,r.to)<=0&&W(s.to,r.from)>=0)return!0;W(r.from,s.from)<0?r=(i=n.next(s.from)).value:s=(o=a.next(r.from)).value}return!1}function Mt(e){var t=Dn(e)?null:{s:0,n:e};return{next:function(n){for(var i=arguments.length>0;t;)switch(t.s){case 0:if(t.s=1,i)for(;t.n.l&&W(n,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!i||W(n,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function Ki(e){var t,n,i=(((t=e.r)===null||t===void 0?void 0:t.d)||0)-(((n=e.l)===null||n===void 0?void 0:n.d)||0),r=i>1?"r":i<-1?"l":"";if(r){var a=r==="r"?"l":"r",o=m({},e),s=e[r];e.from=s.from,e.to=s.to,e[r]=s[r],o[r]=s[a],e[a]=o,o.d=Oi(o)}e.d=Oi(e)}function Oi(e){var t=e.r,n=e.l;return(t?n?Math.max(t.d,n.d):t.d:n?n.d:0)+1}function Vt(e,t){return z(t).forEach(function(n){e[n]?mt(e[n],t[n]):e[n]=Xn(t[n])}),e}function Tn(e,t){return e.all||t.all||Object.keys(e).some(function(n){return t[n]&&Ti(t[n],e[n])})}var Fe={},Kn={},On=!1;function Nt(e,t){Vt(Kn,e),On||(On=!0,setTimeout(function(){On=!1;var n=Kn;Kn={},An(n,!1)},0))}function An(e,t){t===void 0&&(t=!1);var n=new Set;if(e.all)for(var i=0,r=Object.values(Fe);i<r.length;i++){var a=r[i];Ai(a,e,n,t)}else for(var o in e){var s=/^idb\:\/\/(.*)\/(.*)\//.exec(o);if(s){var c=s[1],l=s[2],a=Fe["idb://".concat(c,"/").concat(l)];a&&Ai(a,e,n,t)}}n.forEach(function(f){return f()})}function Ai(e,t,n,i){for(var r=[],a=0,o=Object.entries(e.queries.query);a<o.length;a++){for(var s=o[a],c=s[0],l=s[1],f=[],u=0,y=l;u<y.length;u++){var E=y[u];Tn(t,E.obsSet)?E.subscribers.forEach(function(g){return n.add(g)}):i&&f.push(E)}i&&r.push([c,f])}if(i)for(var p=0,d=r;p<d.length;p++){var h=d[p],c=h[0],f=h[1];e.queries.query[c]=f}}function ia(e){var t=e._state,n=e._deps.indexedDB;if(t.isBeingOpened||e.idbdb)return t.dbReadyPromise.then(function(){return t.dbOpenError?Q(t.dbOpenError):e});t.isBeingOpened=!0,t.dbOpenError=null,t.openComplete=!1;var i=t.openCanceller,r=Math.round(e.verno*10),a=!1;function o(){if(t.openCanceller!==i)throw new I.DatabaseClosed("db.open() was cancelled")}var s=t.dbReadyResolve,c=null,l=!1,f=function(){return new D(function(u,y){if(o(),!n)throw new I.MissingAPI;var E=e.name,p=t.autoSchema||!r?n.open(E):n.open(E,r);if(!p)throw new I.MissingAPI;p.onerror=ue(y),p.onblocked=U(e._fireOnBlocked),p.onupgradeneeded=U(function(d){if(c=p.transaction,t.autoSchema&&!e._options.allowEmptyDB){p.onerror=lt,c.abort(),p.result.close();var h=n.deleteDatabase(E);h.onsuccess=h.onerror=U(function(){y(new I.NoSuchDatabase("Database ".concat(E," doesnt exist")))})}else{c.onerror=ue(y);var g=d.oldVersion>Math.pow(2,62)?0:d.oldVersion;l=g<1,e.idbdb=p.result,a&&$r(e,c),qr(e,g/10,c,y)}},y),p.onsuccess=U(function(){c=null;var d=e.idbdb=p.result,h=yt(d.objectStoreNames);if(h.length>0)try{var g=d.transaction(zr(h),"readonly");if(t.autoSchema)Hr(e,d,g);else if(Bt(e,e._dbSchema,g),!Gr(e,g)&&!a)return d.close(),r=d.version+1,a=!0,u(f());It(e,g)}catch{}He.push(e),d.onversionchange=U(function(w){t.vcFired=!0,e.on("versionchange").fire(w)}),d.onclose=U(function(){e.close({disableAutoOpen:!1})}),l&&ea(e._deps,E),u()},y)}).catch(function(u){switch(u==null?void 0:u.name){case"UnknownError":if(t.PR1398_maxLoop>0)return t.PR1398_maxLoop--,f();break;case"VersionError":if(r>0)return r=0,f();break}return D.reject(u)})};return D.race([i,(typeof navigator>"u"?D.resolve():na()).then(f)]).then(function(){return o(),t.onReadyBeingFired=[],D.resolve(jn(function(){return e.on.ready.fire(e.vip)})).then(function u(){if(t.onReadyBeingFired.length>0){var y=t.onReadyBeingFired.reduce(Zt,$);return t.onReadyBeingFired=[],D.resolve(jn(function(){return y(e.vip)})).then(u)}})}).finally(function(){t.openCanceller===i&&(t.onReadyBeingFired=null,t.isBeingOpened=!1)}).catch(function(u){t.dbOpenError=u;try{c&&c.abort()}catch{}return i===t.openCanceller&&e._close(),Q(u)}).finally(function(){t.openComplete=!0,s()}).then(function(){if(l){var u={};e.tables.forEach(function(y){y.schema.indexes.forEach(function(E){E.name&&(u["idb://".concat(e.name,"/").concat(y.name,"/").concat(E.name)]=new J(-1/0,[[[]]]))}),u["idb://".concat(e.name,"/").concat(y.name,"/")]=u["idb://".concat(e.name,"/").concat(y.name,"/:dels")]=new J(-1/0,[[[]]])}),ke(ut).fire(u),An(u,!0)}return e})}function Pn(e){var t=function(o){return e.next(o)},n=function(o){return e.throw(o)},i=a(t),r=a(n);function a(o){return function(s){var c=o(s),l=c.value;return c.done?l:!l||typeof l.then!="function"?P(l)?Promise.all(l).then(i,r):i(l):l.then(i,r)}}return a(t)()}function ra(e,t,n){var i=arguments.length;if(i<2)throw new I.InvalidArgument("Too few arguments");for(var r=new Array(i-1);--i;)r[i-1]=arguments[i];n=r.pop();var a=Gn(r);return[e,a,n]}function Pi(e,t,n,i,r){return D.resolve().then(function(){var a=A.transless||A,o=e._createTransaction(t,n,e._dbSchema,i);o.explicit=!0;var s={trans:o,transless:a};if(i)o.idbtrans=i.idbtrans;else try{o.create(),o.idbtrans._explicit=!0,e._state.PR1398_maxLoop=3}catch(u){return u.name===Xt.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(e.close({disableAutoOpen:!1}),e.open().then(function(){return Pi(e,t,n,null,r)})):Q(u)}var c=Gt(r);c&&Qe();var l,f=D.follow(function(){if(l=r.call(o,o),l)if(c){var u=we.bind(null,null);l.then(u,u)}else typeof l.next=="function"&&typeof l.throw=="function"&&(l=Pn(l))},s);return(l&&typeof l.then=="function"?D.resolve(l).then(function(u){return o.active?u:Q(new I.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"))}):f.then(function(){return l})).then(function(u){return i&&o._resolve(),o._completion.then(function(){return u})}).catch(function(u){return o._reject(u),Q(u)})})}function Lt(e,t,n){for(var i=P(e)?e.slice():[e],r=0;r<n;++r)i.push(t);return i}function aa(e){return m(m({},e),{table:function(t){var n=e.table(t),i=n.schema,r={},a=[];function o(d,h,g){var w=ft(d),b=r[w]=r[w]||[],_=d==null?0:typeof d=="string"?1:d.length,x=h>0,j=m(m({},g),{name:x?"".concat(w,"(virtual-from:").concat(g.name,")"):g.name,lowLevelIndex:g,isVirtual:x,keyTail:h,keyLength:_,extractKey:xn(d),unique:!x&&g.unique});if(b.push(j),j.isPrimaryKey||a.push(j),_>1){var T=_===2?d[0]:d.slice(0,_-1);o(T,h+1,g)}return b.sort(function(S,R){return S.keyTail-R.keyTail}),j}var s=o(i.primaryKey.keyPath,0,i.primaryKey);r[":id"]=[s];for(var c=0,l=i.indexes;c<l.length;c++){var f=l[c];o(f.keyPath,0,f)}function u(d){var h=r[ft(d)];return h&&h[0]}function y(d,h){return{type:d.type===1?2:d.type,lower:Lt(d.lower,d.lowerOpen?e.MAX_KEY:e.MIN_KEY,h),lowerOpen:!0,upper:Lt(d.upper,d.upperOpen?e.MIN_KEY:e.MAX_KEY,h),upperOpen:!0}}function E(d){var h=d.query.index;return h.isVirtual?m(m({},d),{query:{index:h.lowLevelIndex,range:y(d.query.range,h.keyTail)}}):d}var p=m(m({},n),{schema:m(m({},i),{primaryKey:s,indexes:a,getIndexByKeyPath:u}),count:function(d){return n.count(E(d))},query:function(d){return n.query(E(d))},openCursor:function(d){var h=d.query.index,g=h.keyTail,w=h.isVirtual,b=h.keyLength;if(!w)return n.openCursor(d);function _(x){function j(S){S!=null?x.continue(Lt(S,d.reverse?e.MAX_KEY:e.MIN_KEY,g)):d.unique?x.continue(x.key.slice(0,b).concat(d.reverse?e.MIN_KEY:e.MAX_KEY,g)):x.continue()}var T=Object.create(x,{continue:{value:j},continuePrimaryKey:{value:function(S,R){x.continuePrimaryKey(Lt(S,e.MAX_KEY,g),R)}},primaryKey:{get:function(){return x.primaryKey}},key:{get:function(){var S=x.key;return b===1?S[0]:S.slice(0,b)}},value:{get:function(){return x.value}}});return T}return n.openCursor(E(d)).then(function(x){return x&&_(x)})}});return p}})}var oa={stack:"dbcore",name:"VirtualIndexMiddleware",level:1,create:aa};function Cn(e,t,n,i){return n=n||{},i=i||"",z(e).forEach(function(r){if(!ee(t,r))n[i+r]=void 0;else{var a=e[r],o=t[r];if(typeof a=="object"&&typeof o=="object"&&a&&o){var s=Qt(a),c=Qt(o);s!==c?n[i+r]=t[r]:s==="Object"?Cn(a,o,n,i+r+"."):a!==o&&(n[i+r]=t[r])}else a!==o&&(n[i+r]=t[r])}}),z(t).forEach(function(r){ee(e,r)||(n[i+r]=t[r])}),n}function In(e,t){return t.type==="delete"?t.keys:t.keys||t.values.map(e.extractKey)}var sa={stack:"dbcore",name:"HooksMiddleware",level:2,create:function(e){return m(m({},e),{table:function(t){var n=e.table(t),i=n.schema.primaryKey,r=m(m({},n),{mutate:function(a){var o=A.trans,s=o.table(t).hook,c=s.deleting,l=s.creating,f=s.updating;switch(a.type){case"add":if(l.fire===$)break;return o._promise("readwrite",function(){return u(a)},!0);case"put":if(l.fire===$&&f.fire===$)break;return o._promise("readwrite",function(){return u(a)},!0);case"delete":if(c.fire===$)break;return o._promise("readwrite",function(){return u(a)},!0);case"deleteRange":if(c.fire===$)break;return o._promise("readwrite",function(){return y(a)},!0)}return n.mutate(a);function u(p){var d=A.trans,h=p.keys||In(i,p);if(!h)throw new Error("Keys missing");return p=p.type==="add"||p.type==="put"?m(m({},p),{keys:h}):m({},p),p.type!=="delete"&&(p.values=k([],p.values,!0)),p.keys&&(p.keys=k([],p.keys,!0)),ca(n,p,h).then(function(g){var w=h.map(function(b,_){var x=g[_],j={onerror:null,onsuccess:null};if(p.type==="delete")c.fire.call(j,b,x,d);else if(p.type==="add"||x===void 0){var T=l.fire.call(j,b,p.values[_],d);b==null&&T!=null&&(b=T,p.keys[_]=b,i.outbound||te(p.values[_],i.keyPath,b))}else{var S=Cn(x,p.values[_]),R=f.fire.call(j,S,b,x,d);if(R){var V=p.values[_];Object.keys(R).forEach(function(K){ee(V,K)?V[K]=R[K]:te(V,K,R[K])})}}return j});return n.mutate(p).then(function(b){for(var _=b.failures,x=b.results,j=b.numFailures,T=b.lastResult,S=0;S<h.length;++S){var R=x?x[S]:h[S],V=w[S];R==null?V.onerror&&V.onerror(_[S]):V.onsuccess&&V.onsuccess(p.type==="put"&&g[S]?p.values[S]:R)}return{failures:_,results:x,numFailures:j,lastResult:T}}).catch(function(b){return w.forEach(function(_){return _.onerror&&_.onerror(b)}),Promise.reject(b)})})}function y(p){return E(p.trans,p.range,1e4)}function E(p,d,h){return n.query({trans:p,values:!1,query:{index:i,range:d},limit:h}).then(function(g){var w=g.result;return u({type:"delete",keys:w,trans:p}).then(function(b){return b.numFailures>0?Promise.reject(b.failures[0]):w.length<h?{failures:[],numFailures:0,lastResult:void 0}:E(p,m(m({},d),{lower:w[w.length-1],lowerOpen:!0}),h)})})}}});return r}})}};function ca(e,t,n){return t.type==="add"?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:"immutable"})}function Ci(e,t,n){try{if(!t||t.keys.length<e.length)return null;for(var i=[],r=0,a=0;r<t.keys.length&&a<e.length;++r)W(t.keys[r],e[a])===0&&(i.push(n?De(t.values[r]):t.values[r]),++a);return i.length===e.length?i:null}catch{return null}}var la={stack:"dbcore",level:-1,create:function(e){return{table:function(t){var n=e.table(t);return m(m({},n),{getMany:function(i){if(!i.cache)return n.getMany(i);var r=Ci(i.keys,i.trans._cache,i.cache==="clone");return r?D.resolve(r):n.getMany(i).then(function(a){return i.trans._cache={keys:i.keys,values:i.cache==="clone"?De(a):a},a})},mutate:function(i){return i.type!=="add"&&(i.trans._cache=null),n.mutate(i)}})}}}};function Ii(e,t){return e.trans.mode==="readonly"&&!!e.subscr&&!e.trans.explicit&&e.trans.db._options.cache!=="disabled"&&!t.schema.primaryKey.outbound}function Ri(e,t){switch(e){case"query":return t.values&&!t.unique;case"get":return!1;case"getMany":return!1;case"count":return!1;case"openCursor":return!1}}var ua={stack:"dbcore",level:0,name:"Observability",create:function(e){var t=e.schema.name,n=new J(e.MIN_KEY,e.MAX_KEY);return m(m({},e),{transaction:function(i,r,a){if(A.subscr&&r!=="readonly")throw new I.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(A.querier));return e.transaction(i,r,a)},table:function(i){var r=e.table(i),a=r.schema,o=a.primaryKey,s=a.indexes,c=o.extractKey,l=o.outbound,f=o.autoIncrement&&s.filter(function(p){return p.compound&&p.keyPath.includes(o.keyPath)}),u=m(m({},r),{mutate:function(p){var d,h,g=p.trans,w=p.mutatedParts||(p.mutatedParts={}),b=function(F){var q="idb://".concat(t,"/").concat(i,"/").concat(F);return w[q]||(w[q]=new J)},_=b(""),x=b(":dels"),j=p.type,T=p.type==="deleteRange"?[p.range]:p.type==="delete"?[p.keys]:p.values.length<50?[In(o,p).filter(function(F){return F}),p.values]:[],S=T[0],R=T[1],V=p.trans._cache;if(P(S)){_.addKeys(S);var K=j==="delete"||S.length===R.length?Ci(S,V):null;K||x.addKeys(S),(K||R)&&pa(b,a,K,R)}else if(S){var M={from:(d=S.lower)!==null&&d!==void 0?d:e.MIN_KEY,to:(h=S.upper)!==null&&h!==void 0?h:e.MAX_KEY};x.add(M),_.add(M)}else _.add(n),x.add(n),a.indexes.forEach(function(F){return b(F.name).add(n)});return r.mutate(p).then(function(F){return S&&(p.type==="add"||p.type==="put")&&(_.addKeys(F.results),f&&f.forEach(function(q){for(var C=p.values.map(function(ne){return q.extractKey(ne)}),Y=q.keyPath.findIndex(function(ne){return ne===o.keyPath}),X=0,pe=F.results.length;X<pe;++X)C[X][Y]=F.results[X];b(q.name).addKeys(C)})),g.mutatedParts=Vt(g.mutatedParts||{},w),F})}}),y=function(p){var d,h,g=p.query,w=g.index,b=g.range;return[w,new J((d=b.lower)!==null&&d!==void 0?d:e.MIN_KEY,(h=b.upper)!==null&&h!==void 0?h:e.MAX_KEY)]},E={get:function(p){return[o,new J(p.key)]},getMany:function(p){return[o,new J().addKeys(p.keys)]},count:y,query:y,openCursor:y};return z(E).forEach(function(p){u[p]=function(d){var h=A.subscr,g=!!h,w=Ii(A,r)&&Ri(p,d),b=w?d.obsSet={}:h;if(g){var _=function(K){var M="idb://".concat(t,"/").concat(i,"/").concat(K);return b[M]||(b[M]=new J)},x=_(""),j=_(":dels"),T=E[p](d),S=T[0],R=T[1];if(p==="query"&&S.isPrimaryKey&&!d.values?j.add(R):_(S.name||"").add(R),!S.isPrimaryKey)if(p==="count")j.add(n);else{var V=p==="query"&&l&&d.values&&r.query(m(m({},d),{values:!1}));return r[p].apply(this,arguments).then(function(K){if(p==="query"){if(l&&d.values)return V.then(function(C){var Y=C.result;return x.addKeys(Y),K});var M=d.values?K.result.map(c):K.result;d.values?x.addKeys(M):j.addKeys(M)}else if(p==="openCursor"){var F=K,q=d.values;return F&&Object.create(F,{key:{get:function(){return j.addKey(F.primaryKey),F.key}},primaryKey:{get:function(){var C=F.primaryKey;return j.addKey(C),C}},value:{get:function(){return q&&x.addKey(F.primaryKey),F.value}}})}return K})}}return r[p].apply(this,arguments)}}),u}})}};function pa(e,t,n,i){function r(a){var o=e(a.name||"");function s(l){return l!=null?a.extractKey(l):null}var c=function(l){return a.multiEntry&&P(l)?l.forEach(function(f){return o.addKey(f)}):o.addKey(l)};(n||i).forEach(function(l,f){var u=n&&s(n[f]),y=i&&s(i[f]);W(u,y)!==0&&(u!=null&&c(u),y!=null&&c(y))})}t.indexes.forEach(r)}function Fi(e,t,n){if(n.numFailures===0)return t;if(t.type==="deleteRange")return null;var i=t.keys?t.keys.length:"values"in t&&t.values?t.values.length:1;if(n.numFailures===i)return null;var r=m({},t);return P(r.keys)&&(r.keys=r.keys.filter(function(a,o){return!(o in n.failures)})),"values"in r&&P(r.values)&&(r.values=r.values.filter(function(a,o){return!(o in n.failures)})),r}function fa(e,t){return t.lower===void 0?!0:t.lowerOpen?W(e,t.lower)>0:W(e,t.lower)>=0}function da(e,t){return t.upper===void 0?!0:t.upperOpen?W(e,t.upper)<0:W(e,t.upper)<=0}function Rn(e,t){return fa(e,t)&&da(e,t)}function zi(e,t,n,i,r,a){if(!n||n.length===0)return e;var o=t.query.index,s=o.multiEntry,c=t.query.range,l=i.schema.primaryKey,f=l.extractKey,u=o.extractKey,y=(o.lowLevelIndex||o).extractKey,E=n.reduce(function(p,d){var h=p,g=[];if(d.type==="add"||d.type==="put")for(var w=new J,b=d.values.length-1;b>=0;--b){var _=d.values[b],x=f(_);if(!w.hasKey(x)){var j=u(_);(s&&P(j)?j.some(function(K){return Rn(K,c)}):Rn(j,c))&&(w.addKey(x),g.push(_))}}switch(d.type){case"add":{var T=new J().addKeys(t.values?p.map(function(K){return f(K)}):p);h=p.concat(t.values?g.filter(function(K){var M=f(K);return T.hasKey(M)?!1:(T.addKey(M),!0)}):g.map(function(K){return f(K)}).filter(function(K){return T.hasKey(K)?!1:(T.addKey(K),!0)}));break}case"put":{var S=new J().addKeys(d.values.map(function(K){return f(K)}));h=p.filter(function(K){return!S.hasKey(t.values?f(K):K)}).concat(t.values?g:g.map(function(K){return f(K)}));break}case"delete":var R=new J().addKeys(d.keys);h=p.filter(function(K){return!R.hasKey(t.values?f(K):K)});break;case"deleteRange":var V=d.range;h=p.filter(function(K){return!Rn(f(K),V)});break}return h},e);return E===e?e:(E.sort(function(p,d){return W(y(p),y(d))||W(f(p),f(d))}),t.limit&&t.limit<1/0&&(E.length>t.limit?E.length=t.limit:e.length===t.limit&&E.length<t.limit&&(r.dirty=!0)),a?Object.freeze(E):E)}function Bi(e,t){return W(e.lower,t.lower)===0&&W(e.upper,t.upper)===0&&!!e.lowerOpen==!!t.lowerOpen&&!!e.upperOpen==!!t.upperOpen}function ma(e,t,n,i){if(e===void 0)return t!==void 0?-1:0;if(t===void 0)return 1;var r=W(e,t);if(r===0){if(n&&i)return 0;if(n)return 1;if(i)return-1}return r}function va(e,t,n,i){if(e===void 0)return t!==void 0?1:0;if(t===void 0)return-1;var r=W(e,t);if(r===0){if(n&&i)return 0;if(n)return-1;if(i)return 1}return r}function ha(e,t){return ma(e.lower,t.lower,e.lowerOpen,t.lowerOpen)<=0&&va(e.upper,t.upper,e.upperOpen,t.upperOpen)>=0}function ya(e,t,n,i){var r=Fe["idb://".concat(e,"/").concat(t)];if(!r)return[];var a=r.queries[n];if(!a)return[null,!1,r,null];var o=i.query?i.query.index.name:null,s=a[o||""];if(!s)return[null,!1,r,null];switch(n){case"query":var c=s.find(function(u){return u.req.limit===i.limit&&u.req.values===i.values&&Bi(u.req.query.range,i.query.range)});if(c)return[c,!0,r,s];var l=s.find(function(u){var y="limit"in u.req?u.req.limit:1/0;return y>=i.limit&&(i.values?u.req.values:!0)&&ha(u.req.query.range,i.query.range)});return[l,!1,r,s];case"count":var f=s.find(function(u){return Bi(u.req.query.range,i.query.range)});return[f,!!f,r,s]}}function ga(e,t,n,i){e.subscribers.add(n),i.addEventListener("abort",function(){e.subscribers.delete(n),e.subscribers.size===0&&xa(e,t)})}function xa(e,t){setTimeout(function(){e.subscribers.size===0&&Te(t,e)},3e3)}var wa={stack:"dbcore",level:0,name:"Cache",create:function(e){var t=e.schema.name,n=m(m({},e),{transaction:function(i,r,a){var o=e.transaction(i,r,a);if(r==="readwrite"){var s=new AbortController,c=s.signal,l=function(f){return function(){if(s.abort(),r==="readwrite"){for(var u=new Set,y=0,E=i;y<E.length;y++){var p=E[y],d=Fe["idb://".concat(t,"/").concat(p)];if(d){var h=e.table(p),g=d.optimisticOps.filter(function(q){return q.trans===o});if(o._explicit&&f&&o.mutatedParts)for(var w=0,b=Object.values(d.queries.query);w<b.length;w++)for(var _=b[w],x=0,j=_.slice();x<j.length;x++){var T=j[x];Tn(T.obsSet,o.mutatedParts)&&(Te(_,T),T.subscribers.forEach(function(q){return u.add(q)}))}else if(g.length>0){d.optimisticOps=d.optimisticOps.filter(function(q){return q.trans!==o});for(var S=0,R=Object.values(d.queries.query);S<R.length;S++)for(var _=R[S],V=0,K=_.slice();V<K.length;V++){var T=K[V];if(T.res!=null&&o.mutatedParts)if(f&&!T.dirty){var M=Object.isFrozen(T.res),F=zi(T.res,T.req,g,h,T,M);T.dirty?(Te(_,T),T.subscribers.forEach(function(Y){return u.add(Y)})):F!==T.res&&(T.res=F,T.promise=D.resolve({result:F}))}else T.dirty&&Te(_,T),T.subscribers.forEach(function(Y){return u.add(Y)})}}}}u.forEach(function(q){return q()})}}};o.addEventListener("abort",l(!1),{signal:c}),o.addEventListener("error",l(!1),{signal:c}),o.addEventListener("complete",l(!0),{signal:c})}return o},table:function(i){var r=e.table(i),a=r.schema.primaryKey,o=m(m({},r),{mutate:function(s){var c=A.trans;if(a.outbound||c.db._options.cache==="disabled"||c.explicit||c.idbtrans.mode!=="readwrite")return r.mutate(s);var l=Fe["idb://".concat(t,"/").concat(i)];if(!l)return r.mutate(s);var f=r.mutate(s);return(s.type==="add"||s.type==="put")&&(s.values.length>=50||In(a,s).some(function(u){return u==null}))?f.then(function(u){var y=m(m({},s),{values:s.values.map(function(p,d){var h;if(u.failures[d])return p;var g=!((h=a.keyPath)===null||h===void 0)&&h.includes(".")?De(p):m({},p);return te(g,a.keyPath,u.results[d]),g})}),E=Fi(l,y,u);l.optimisticOps.push(E),queueMicrotask(function(){return s.mutatedParts&&Nt(s.mutatedParts)})}):(l.optimisticOps.push(s),s.mutatedParts&&Nt(s.mutatedParts),f.then(function(u){if(u.numFailures>0){Te(l.optimisticOps,s);var y=Fi(l,s,u);y&&l.optimisticOps.push(y),s.mutatedParts&&Nt(s.mutatedParts)}}),f.catch(function(){Te(l.optimisticOps,s),s.mutatedParts&&Nt(s.mutatedParts)})),f},query:function(s){var c;if(!Ii(A,r)||!Ri("query",s))return r.query(s);var l=((c=A.trans)===null||c===void 0?void 0:c.db._options.cache)==="immutable",f=A,u=f.requery,y=f.signal,E=ya(t,i,"query",s),p=E[0],d=E[1],h=E[2],g=E[3];if(p&&d)p.obsSet=s.obsSet;else{var w=r.query(s).then(function(b){var _=b.result;if(p&&(p.res=_),l){for(var x=0,j=_.length;x<j;++x)Object.freeze(_[x]);Object.freeze(_)}else b.result=De(_);return b}).catch(function(b){return g&&p&&Te(g,p),Promise.reject(b)});p={obsSet:s.obsSet,promise:w,subscribers:new Set,type:"query",req:s,dirty:!1},g?g.push(p):(g=[p],h||(h=Fe["idb://".concat(t,"/").concat(i)]={queries:{query:{},count:{}},objs:new Map,optimisticOps:[],unsignaledParts:{}}),h.queries.query[s.query.index.name||""]=g)}return ga(p,g,u,y),p.promise.then(function(b){return{result:zi(b.result,s,h==null?void 0:h.optimisticOps,r,p,l)}})}});return o}});return n}};function Wt(e,t){return new Proxy(e,{get:function(n,i,r){return i==="db"?t:Reflect.get(n,i,r)}})}var he=(function(){function e(t,n){var i=this;this._middlewares={},this.verno=0;var r=e.dependencies;this._options=n=m({addons:e.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange,cache:"cloned"},n),this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};var a=n.addons;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;var o={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:$,dbReadyPromise:null,cancelOpen:$,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3,autoOpen:n.autoOpen};o.dbReadyPromise=new D(function(c){o.dbReadyResolve=c}),o.openCanceller=new D(function(c,l){o.cancelOpen=l}),this._state=o,this.name=t,this.on=st(this,"populate","blocked","versionchange","close",{ready:[Zt,$]}),this.once=function(c,l){var f=function(){for(var u=[],y=0;y<arguments.length;y++)u[y]=arguments[y];i.on(c).unsubscribe(f),l.apply(i,u)};return i.on(c,f)},this.on.ready.subscribe=Yn(this.on.ready.subscribe,function(c){return function(l,f){e.vip(function(){var u=i._state;if(u.openComplete)u.dbOpenError||D.resolve().then(l),f&&c(l);else if(u.onReadyBeingFired)u.onReadyBeingFired.push(l),f&&c(l);else{c(l);var y=i;f||c(function E(){y.on.ready.unsubscribe(l),y.on.ready.unsubscribe(E)})}})}}),this.Collection=Tr(this),this.Table=jr(this),this.Transaction=Fr(this),this.Version=Xr(this),this.WhereClause=Ir(this),this.on("versionchange",function(c){c.newVersion>0,i.close({disableAutoOpen:!1})}),this.on("blocked",function(c){!c.newVersion||c.newVersion<c.oldVersion}),this._maxKey=pt(n.IDBKeyRange),this._createTransaction=function(c,l,f,u){return new i.Transaction(c,l,f,i._options.chromeTransactionDurability,u)},this._fireOnBlocked=function(c){i.on("blocked").fire(c),He.filter(function(l){return l.name===i.name&&l!==i&&!l._state.vcFired}).map(function(l){return l.on("versionchange").fire(c)})},this.use(la),this.use(wa),this.use(ua),this.use(oa),this.use(sa);var s=new Proxy(this,{get:function(c,l,f){if(l==="_vip")return!0;if(l==="table")return function(y){return Wt(i.table(y),s)};var u=Reflect.get(c,l,f);return u instanceof gi?Wt(u,s):l==="tables"?u.map(function(y){return Wt(y,s)}):l==="_createTransaction"?function(){var y=u.apply(this,arguments);return Wt(y,s)}:u}});this.vip=s,a.forEach(function(c){return c(i)})}return e.prototype.version=function(t){if(isNaN(t)||t<.1)throw new I.Type("Given version is not a positive number");if(t=Math.round(t*10)/10,this.idbdb||this._state.isBeingOpened)throw new I.Schema("Cannot add version when database is open");this.verno=Math.max(this.verno,t);var n=this._versions,i=n.filter(function(r){return r._cfg.version===t})[0];return i||(i=new this.Version(t),n.push(i),n.sort(Wr),i.stores({}),this._state.autoSchema=!1,i)},e.prototype._whenReady=function(t){var n=this;return this.idbdb&&(this._state.openComplete||A.letThrough||this._vip)?t():new D(function(i,r){if(n._state.openComplete)return r(new I.DatabaseClosed(n._state.dbOpenError));if(!n._state.isBeingOpened){if(!n._state.autoOpen){r(new I.DatabaseClosed);return}n.open().catch($)}n._state.dbReadyPromise.then(i,r)}).then(t)},e.prototype.use=function(t){var n=t.stack,i=t.create,r=t.level,a=t.name;a&&this.unuse({stack:n,name:a});var o=this._middlewares[n]||(this._middlewares[n]=[]);return o.push({stack:n,create:i,level:r==null?10:r,name:a}),o.sort(function(s,c){return s.level-c.level}),this},e.prototype.unuse=function(t){var n=t.stack,i=t.name,r=t.create;return n&&this._middlewares[n]&&(this._middlewares[n]=this._middlewares[n].filter(function(a){return r?a.create!==r:i?a.name!==i:!1})),this},e.prototype.open=function(){var t=this;return Ce(ge,function(){return ia(t)})},e.prototype._close=function(){this.on.close.fire(new CustomEvent("close"));var t=this._state,n=He.indexOf(this);if(n>=0&&He.splice(n,1),this.idbdb){try{this.idbdb.close()}catch{}this.idbdb=null}t.isBeingOpened||(t.dbReadyPromise=new D(function(i){t.dbReadyResolve=i}),t.openCanceller=new D(function(i,r){t.cancelOpen=r}))},e.prototype.close=function(t){var n=t===void 0?{disableAutoOpen:!0}:t,i=n.disableAutoOpen,r=this._state;i?(r.isBeingOpened&&r.cancelOpen(new I.DatabaseClosed),this._close(),r.autoOpen=!1,r.dbOpenError=new I.DatabaseClosed):(this._close(),r.autoOpen=this._options.autoOpen||r.isBeingOpened,r.openComplete=!1,r.dbOpenError=null)},e.prototype.delete=function(t){var n=this;t===void 0&&(t={disableAutoOpen:!0});var i=arguments.length>0&&typeof arguments[0]!="object",r=this._state;return new D(function(a,o){var s=function(){n.close(t);var c=n._deps.indexedDB.deleteDatabase(n.name);c.onsuccess=U(function(){ta(n._deps,n.name),a()}),c.onerror=ue(o),c.onblocked=n._fireOnBlocked};if(i)throw new I.InvalidArgument("Invalid closeOptions argument to db.delete()");r.isBeingOpened?r.dbReadyPromise.then(s):s()})},e.prototype.backendDB=function(){return this.idbdb},e.prototype.isOpen=function(){return this.idbdb!==null},e.prototype.hasBeenClosed=function(){var t=this._state.dbOpenError;return t&&t.name==="DatabaseClosed"},e.prototype.hasFailed=function(){return this._state.dbOpenError!==null},e.prototype.dynamicallyOpened=function(){return this._state.autoSchema},Object.defineProperty(e.prototype,"tables",{get:function(){var t=this;return z(this._allTables).map(function(n){return t._allTables[n]})},enumerable:!1,configurable:!0}),e.prototype.transaction=function(){var t=ra.apply(this,arguments);return this._transaction.apply(this,t)},e.prototype._transaction=function(t,n,i){var r=this,a=A.trans;(!a||a.db!==this||t.indexOf("!")!==-1)&&(a=null);var o=t.indexOf("?")!==-1;t=t.replace("!","").replace("?","");var s,c;try{if(c=n.map(function(f){var u=f instanceof r.Table?f.name:f;if(typeof u!="string")throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");return u}),t=="r"||t===fn)s=fn;else if(t=="rw"||t==dn)s=dn;else throw new I.InvalidArgument("Invalid transaction mode: "+t);if(a){if(a.mode===fn&&s===dn)if(o)a=null;else throw new I.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");a&&c.forEach(function(f){if(a&&a.storeNames.indexOf(f)===-1)if(o)a=null;else throw new I.SubTransaction("Table "+f+" not included in parent transaction.")}),o&&a&&!a.active&&(a=null)}}catch(f){return a?a._promise(null,function(u,y){y(f)}):Q(f)}var l=Pi.bind(null,this,s,c,a,i);return a?a._promise(s,l,"lock"):A.trans?Ce(A.transless,function(){return r._whenReady(l)}):this._whenReady(l)},e.prototype.table=function(t){if(!ee(this._allTables,t))throw new I.InvalidTable("Table ".concat(t," does not exist"));return this._allTables[t]},e})(),ba=typeof Symbol<"u"&&"observable"in Symbol?Symbol.observable:"@@observable",_a=(function(){function e(t){this._subscribe=t}return e.prototype.subscribe=function(t,n,i){return this._subscribe(!t||typeof t=="function"?{next:t,error:n,complete:i}:t)},e.prototype[ba]=function(){return this},e})(),qt;try{qt={indexedDB:O.indexedDB||O.mozIndexedDB||O.webkitIndexedDB||O.msIndexedDB,IDBKeyRange:O.IDBKeyRange||O.webkitIDBKeyRange}}catch{qt={indexedDB:null,IDBKeyRange:null}}function Mi(e){var t=!1,n,i=new _a(function(r){var a=Gt(e);function o(g){var w=Ue();try{a&&Qe();var b=xe(e,g);return a&&(b=b.finally(we)),b}finally{w&&Ye()}}var s=!1,c,l={},f={},u={get closed(){return s},unsubscribe:function(){s||(s=!0,c&&c.abort(),y&&ke.storagemutated.unsubscribe(d))}};r.start&&r.start(u);var y=!1,E=function(){return ln(h)};function p(){return Tn(f,l)}var d=function(g){Vt(l,g),p()&&E()},h=function(){if(!(s||!qt.indexedDB)){l={};var g={};c&&c.abort(),c=new AbortController;var w={subscr:g,signal:c.signal,requery:E,querier:e,trans:null},b=o(w);Promise.resolve(b).then(function(_){t=!0,n=_,!(s||w.signal.aborted)&&(l={},f=g,!Zi(f)&&!y&&(ke(ut,d),y=!0),ln(function(){return!s&&r.next&&r.next(_)}))},function(_){t=!1,["DatabaseClosedError","AbortError"].includes(_==null?void 0:_.name)||s||ln(function(){s||r.error&&r.error(_)})})}};return setTimeout(E,0),u});return i.hasValue=function(){return t},i.getValue=function(){return n},i}var ze=he;Ne(ze,m(m({},xt),{delete:function(e){var t=new ze(e,{addons:[]});return t.delete()},exists:function(e){return new ze(e,{addons:[]}).open().then(function(t){return t.close(),!0}).catch("NoSuchDatabaseError",function(){return!1})},getDatabaseNames:function(e){try{return Zr(ze.dependencies).then(e)}catch{return Q(new I.MissingAPI)}},defineClass:function(){function e(t){N(this,t)}return e},ignoreTransaction:function(e){return A.trans?Ce(A.transless,e):e()},vip:jn,async:function(e){return function(){try{var t=Pn(e.apply(this,arguments));return!t||typeof t.then!="function"?D.resolve(t):t}catch(n){return Q(n)}}},spawn:function(e,t,n){try{var i=Pn(e.apply(n,t||[]));return!i||typeof i.then!="function"?D.resolve(i):i}catch(r){return Q(r)}},currentTransaction:{get:function(){return A.trans||null}},waitFor:function(e,t){var n=D.resolve(typeof e=="function"?ze.ignoreTransaction(e):e).timeout(t||6e4);return A.trans?A.trans.waitFor(n):n},Promise:D,debug:{get:function(){return le},set:function(e){ni(e)}},derive:Le,extend:N,props:Ne,override:Yn,Events:st,on:ke,liveQuery:Mi,extendObservabilitySet:Vt,getByKeyPath:de,setByKeyPath:te,delByKeyPath:Gi,shallowClone:Hn,deepClone:De,getObjectDiff:Cn,cmp:W,asap:Qn,minKey:pn,addons:[],connections:He,errnames:Xt,dependencies:qt,cache:Fe,semVer:pi,version:pi.split(".").map(function(e){return parseInt(e)}).reduce(function(e,t,n){return e+t/Math.pow(10,n*2)})})),ze.maxKey=pt(ze.dependencies.IDBKeyRange),typeof dispatchEvent<"u"&&typeof addEventListener<"u"&&(ke(ut,function(e){if(!Ee){var t;t=new CustomEvent(hn,{detail:e}),Ee=!0,dispatchEvent(t),Ee=!1}}),addEventListener(hn,function(e){var t=e.detail;Ee||Fn(t)}));function Fn(e){var t=Ee;try{Ee=!0,ke.storagemutated.fire(e),An(e,!0)}finally{Ee=t}}var Ee=!1,je,zn=function(){};typeof BroadcastChannel<"u"&&(zn=function(){je=new BroadcastChannel(hn),je.onmessage=function(e){return e.data&&Fn(e.data)}},zn(),typeof je.unref=="function"&&je.unref(),ke(ut,function(e){Ee||je.postMessage(e)})),typeof addEventListener<"u"&&(addEventListener("pagehide",function(e){if(!he.disableBfCache&&e.persisted){je==null||je.close();for(var t=0,n=He;t<n.length;t++){var i=n[t];i.close({disableAutoOpen:!1})}}}),addEventListener("pageshow",function(e){!he.disableBfCache&&e.persisted&&(zn(),Fn({all:new J(-1/0,[[]])}))}));function ka(e){return new ot({add:e})}function Ea(e){return new ot({remove:e})}function ja(e,t){return new ot({replacePrefix:[e,t]})}D.rejectionMapper=ar,ni(le);var Sa=Object.freeze({__proto__:null,Dexie:he,Entity:mi,PropModification:ot,RangeSet:J,add:ka,cmp:W,default:he,liveQuery:Mi,mergeRanges:mt,rangesOverlap:Ti,remove:Ea,replacePrefix:ja});return m(he,Sa,{default:he}),he}))});var Ut=Fa(Vi(),1),Ni=Symbol.for("Dexie"),Xe=globalThis[Ni]||(globalThis[Ni]=Ut.default);if(Ut.default.semVer!==Xe.semVer)throw new Error(`Two different versions of Dexie loaded in the same app: ${Ut.default.semVer} and ${Xe.semVer}`);var{liveQuery:Va,mergeRanges:Na,rangesOverlap:La,RangeSet:Wa,cmp:qa,Entity:$a,PropModification:Ua,replacePrefix:Ya,add:Qa,remove:Ha,DexieYProvider:Ga}=Xe;var Li={name:"vvvfs",version:"0.0.4",description:"\u4E00\u4E2A\u4F7F\u7528IndexDB\u5B9E\u73B0\u7684\u865A\u62DF\u6587\u4EF6\u7CFB\u7EDF",keywords:["Virtual","File","System","IFTC","VV","File","System","vfs","fs"],license:"MIT",author:"IFTC",type:"module",main:"index.js",scripts:{test:'echo "Error: no test specified" && exit 1',build:"node esbuild.config.js"},dependencies:{dexie:"^4.3.0",esbuild:"^0.27.3",mime:"^4.1.0"}};var Wi={"application/prs.cww":["cww"],"application/prs.xsf+xml":["xsf"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["*xfdf"],"application/vnd.age":["age"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.autodesk.fbx":["fbx"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dcmp+xml":["dcmp"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["*fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.slides":["ggs"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.drawing":["gdraw"],"application/vnd.google-apps.form":["gform"],"application/vnd.google-apps.jam":["gjam"],"application/vnd.google-apps.map":["gmap"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.script":["gscript"],"application/vnd.google-apps.site":["gsite"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.gov.sk.xmldatacontainer+xml":["xdcf"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["*mpp","mpt"],"application/vnd.ms-visio.viewer":["vdx"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.nato.bindingdataobject+xml":["bdo"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.procrate.brushset":["brushset"],"application/vnd.procreate.brush":["brush"],"application/vnd.procreate.dream":["drm"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.pwg-xhtml-print+xml":["xhtm"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml","uo"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw","vsdx","vtx"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blender":["blend"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-compressed":["*rar"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-ipynb+json":["ipynb"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["*prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["*sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zip-compressed":["*zip"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["*aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif","btf"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.blockfact.facti":["facti"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-adobe-dng":["dng"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.bary":["bary"],"model/vnd.cld":["cld"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["*mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.pytha.pyox":["pyo","pyox"],"model/vnd.sap.vds":["vds"],"model/vnd.usda":["usda"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.familysearch.gedcom":["ged"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]};Object.freeze(Wi);var qi=Wi;var $i={"application/andrew-inset":["ez"],"application/appinstaller":["appinstaller"],"application/applixware":["aw"],"application/appx":["appx"],"application/appxbundle":["appxbundle"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/automationml-aml+xml":["aml"],"application/automationml-amlx+zip":["amlx"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cpl+xml":["cpl"],"application/cu-seeme":["cu"],"application/cwl":["cwl"],"application/dash+xml":["mpd"],"application/dash-patch+xml":["mpp"],"application/davmount+xml":["davmount"],"application/dicom":["dcm"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdf":["fdf"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["*js"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/media-policy-dataset+xml":["mpf"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["*mp4","*mpg4","mp4s","m4p"],"application/msix":["msix"],"application/msixbundle":["msixbundle"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg","one","onea"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-keys":["asc"],"application/pgp-signature":["sig","*asc"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/sql":["sql"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/watcherinfo+xml":["wif"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xfdf":["xfdf"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"application/zip+dotlottie":["lottie"],"audio/3gpp":["*3gpp"],"audio/aac":["adts","aac"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a","m4b"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avci":["avci"],"image/avcs":["avcs"],"image/avif":["avif"],"image/bmp":["bmp","dib"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/dpx":["dpx"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/ief":["ief"],"image/jaii":["jaii"],"image/jais":["jais"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpg","jpeg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm","jpgm"],"image/jpx":["jpx","jpf"],"image/jxl":["jxl"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/pjpeg":["jfif"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime","mht","mhtml"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/jt":["jt"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/prc":["prc"],"model/step":["step","stp","stpnc","p21","210"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/u3d":["u3d"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/javascript":["js","mjs"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["md","markdown"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/wgsl":["wgsl"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","*jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts","m2t","m2ts","mts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};Object.freeze($i);var Ui=$i;var oe=function(B,v,m,k){if(m==="a"&&!k)throw new TypeError("Private accessor was defined without a getter");if(typeof v=="function"?B!==v||!k:!v.has(B))throw new TypeError("Cannot read private member from an object whose class did not declare it");return m==="m"?k:m==="a"?k.call(B):k?k.value:v.get(B)},Ze,ht,Me,Nn=class{constructor(...v){Ze.set(this,new Map),ht.set(this,new Map),Me.set(this,new Map);for(let m of v)this.define(m)}define(v,m=!1){for(let[k,O]of Object.entries(v)){k=k.toLowerCase(),O=O.map(N=>N.toLowerCase()),oe(this,Me,"f").has(k)||oe(this,Me,"f").set(k,new Set);let z=oe(this,Me,"f").get(k),P=!0;for(let N of O){let H=N.startsWith("*");if(N=H?N.slice(1):N,z==null||z.add(N),P&&oe(this,ht,"f").set(k,N),P=!1,H)continue;let Z=oe(this,Ze,"f").get(N);if(Z&&Z!=k&&!m)throw new Error(`"${k} -> ${N}" conflicts with "${Z} -> ${N}". Pass \`force=true\` to override this definition.`);oe(this,Ze,"f").set(N,k)}}return this}getType(v){var P;if(typeof v!="string")return null;let m=v.replace(new RegExp("^.*[/\\\\]","s"),"").toLowerCase(),k=m.replace(new RegExp("^.*\\.","s"),"").toLowerCase(),O=m.length<v.length;return!(k.length<m.length-1)&&O?null:(P=oe(this,Ze,"f").get(k))!=null?P:null}getExtension(v){var m,k;return typeof v!="string"?null:(v=(m=v==null?void 0:v.split)==null?void 0:m.call(v,";")[0],(k=v&&oe(this,ht,"f").get(v.trim().toLowerCase()))!=null?k:null)}getAllExtensions(v){var m;return typeof v!="string"?null:(m=oe(this,Me,"f").get(v.toLowerCase()))!=null?m:null}_freeze(){this.define=()=>{throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances")},Object.freeze(this);for(let v of oe(this,Me,"f").values())Object.freeze(v);return this}_getTestState(){return{types:oe(this,Ze,"f"),extensions:oe(this,ht,"f")}}};Ze=new WeakMap,ht=new WeakMap,Me=new WeakMap;var Ln=Nn;var Wn=new Ln(Ui,qi)._freeze();var L=class extends Error{constructor(v,m){super(m),this.name="VVVFS"+v+"Error"}},qn=class{constructor(...v){Be(this,"_path");Be(this,"_vvvfs",new Ve);this._path=se(...v)}get path(){return this._path}set path(v){this._path=se(v)}async read(){return await this._vvvfs.read(this._path)}async readText(){return await this._vvvfs.readText(this._path)}async readJSON(){return await this._vvvfs.readJson(this._path)}async write(v){return await this._vvvfs.write(this._path,v)}async writeText(v){return await this._vvvfs.writeText(this._path,v)}async writeJSON(v,m=!0){return await this._vvvfs.writeJson(this._path,v,m)}async createFile(){return await this._vvvfs.createFile(this._path)}async createDir(){return await this._vvvfs.createDir(this._path)}async delete(){return await this._vvvfs.delete(this._path)}async exists(){return await this._vvvfs.exists(this._path)}async isFile(){return await this._vvvfs.isFile(this._path)}async isDir(){return await this._vvvfs.isDir(this._path)}async list(){return await this._vvvfs.list(this._path)}async rename(v){return await this._vvvfs.rename(this._path,v)}async move(v){return await this._vvvfs.move(this._path,v)}async copy(v){return await this._vvvfs.copy(this._path,v)}async search(v){return await this._vvvfs.search(this._path,v)}},Ba=Li.version,Ve=class{constructor(v="vvvfs",m={throwError:!1}){Be(this,"db");Be(this,"options");this.options=m;try{this.db=new Xe(v),this.db.version(1).stores({files:"++id, name, path, type, file, [name+path+type]"})}catch{throw new L("CreateDatabase","\u521B\u5EFA\u6570\u636E\u5E93\u5931\u8D25")}}async init(v){let m=[{name:"root",path:"/",type:"dir",file:new File([],"root")},{name:"boot",path:"/",type:"dir",file:new File([],"boot")},{name:"bin",path:"/",type:"dir",file:new File([],"bin")},{name:"dev",path:"/",type:"dir",file:new File([],"dev")},{name:"etc",path:"/",type:"dir",file:new File([],"etc")},{name:"home",path:"/",type:"dir",file:new File([],"home")},{name:v||"root",path:"/home",type:"dir",file:new File([],"home")},{name:"lib",path:"/",type:"dir",file:new File([],"lib")},{name:"lib64",path:"/",type:"dir",file:new File([],"lib64")},{name:"media",path:"/",type:"dir",file:new File([],"media")},{name:"mnt",path:"/",type:"dir",file:new File([],"mnt")},{name:"opt",path:"/",type:"dir",file:new File([],"opt")},{name:"proc",path:"/",type:"dir",file:new File([],"proc")},{name:"run",path:"/",type:"dir",file:new File([],"run")},{name:"sbin",path:"/",type:"dir",file:new File([],"sbin")},{name:"srv",path:"/",type:"dir",file:new File([],"srv")},{name:"sys",path:"/",type:"dir",file:new File([],"sys")},{name:"tmp",path:"/",type:"dir",file:new File([],"tmp")},{name:"usr",path:"/",type:"dir",file:new File([],"usr")},{name:"var",path:"/",type:"dir",file:new File([],"var")}];try{for(let k of m)await this.db.files.put(k)}catch(k){throw new L("InitFiles","\u521D\u59CB\u5316\u6587\u4EF6\u5931\u8D25"+k)}}async reset(){try{await this.db.delete(),this.db=new Xe(this.db.name),this.db.version(1).stores({files:"++id, name, path, type, file, [name+path+type]"})}catch(v){throw new L("ResetDatabase","\u91CD\u7F6E\u6570\u636E\u5E93\u5931\u8D25"+v)}}async createFile(v){if(await this.exists(v))return!0;try{let{name:m,parent:k}=ie(v);return await this.exists(k)||await this.createDir(k),await this.db.files.add({name:m,path:k,type:"file",file:new File([],m,{type:Wn.getType(v)||"application/octet-stream"})}),!0}catch(m){if(this.options.throwError)throw new L("CreateFile","\u521B\u5EFA\u6587\u4EF6\u5931\u8D25"+m);return!1}}async createDir(v){if(await this.exists(v))return!0;try{let{name:m,parent:k}=ie(v);if(!await this.exists(k))if(k=="/"){if(await this.db.files.add({name:"",path:"/",type:"dir",file:new File([],"")}),m=="")return!0}else await this.createDir(k);return await this.db.files.add({name:m,path:k,type:"dir",file:new File([],m)}),!0}catch(m){if(this.options.throwError)throw new L("CreateDir","\u521B\u5EFA\u76EE\u5F55\u5931\u8D25"+m);return!1}}async exists(v){try{let{name:m,parent:k}=ie(v);return await this.db.files.where({name:m,path:k}).count()>0}catch(m){if(this.options.throwError)throw new L("Exists","\u5224\u65AD\u6587\u4EF6\u662F\u5426\u5B58\u5728\u5931\u8D25"+m);return!1}}async write(v,m){try{if(!await this.exists(v)&&!await this.createFile(v)){if(this.options.throwError)throw new L("Write","\u521B\u5EFA\u6587\u4EF6\u5931\u8D25");return!1}let{name:k,parent:O}=ie(v);if(await this.isDir(O+"/"+k)){if(this.options.throwError)throw new L("Write","\u8DEF\u5F84\u5DF2\u5B58\u5728");return!1}let z=new File([m],k,{type:Wn.getType(v)||"application/octet-stream"}),P=await this.db.files.where({name:k,path:O}).first();if(P)return await this.db.files.put({...P,file:z}),!0;if(this.options.throwError)throw new L("Write","\u6587\u4EF6\u8BB0\u5F55\u672A\u627E\u5230\uFF0C\u65E0\u6CD5\u5199\u5165\u5185\u5BB9");return!1}catch(k){if(this.options.throwError)throw new L("Write","\u5199\u5165\u6587\u4EF6\u5931\u8D25"+k);return!1}}async writeText(v,m){try{let k=new Blob([m],{type:"text/plain"});return await this.write(v,k)}catch(k){if(this.options.throwError)throw new L("Write","\u5199\u5165\u6587\u4EF6\u5931\u8D25"+k);return!1}}async writeJson(v,m,k=!0){try{return await this.writeText(v,JSON.stringify(m,null,k?4:void 0))}catch(O){if(this.options.throwError)throw new L("Write","\u5199\u5165\u6587\u4EF6\u5931\u8D25"+O);return!1}}async read(v){var m;try{if(!await this.exists(v)){if(this.options.throwError)throw new L("Read","\u6587\u4EF6\u4E0D\u5B58\u5728");return null}let{name:k,parent:O}=ie(v);return(m=await this.db.files.where({name:k,path:O}).first())==null?void 0:m.file}catch(k){if(this.options.throwError)throw new L("Read","\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25"+k);return null}}async readText(v){try{let m=await this.read(v);if(m)return await m.text();if(this.options.throwError)throw new L("Read","\u6587\u4EF6\u4E0D\u5B58\u5728");return null}catch(m){if(this.options.throwError)throw new L("Read","\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25"+m);return null}}async readJson(v){try{let m=await this.readText(v);if(m)try{return JSON.parse(m)}catch(k){if(this.options.throwError)throw new L("Read","\u89E3\u6790JSON\u5931\u8D25"+k);return null}else return null}catch(m){if(this.options.throwError)throw new L("Read","\u8BFB\u53D6\u6587\u4EF6\u5931\u8D25"+m);return null}}async isFile(v){try{let{name:m,parent:k}=ie(v);return await this.db.files.where({name:m,path:k,type:"file"}).count()>0}catch(m){if(this.options.throwError)throw new L("IsFile","\u5224\u65AD\u6587\u4EF6\u7C7B\u578B\u5931\u8D25"+m);return!1}}async isDir(v){try{let{name:m,parent:k}=ie(v);return await this.db.files.where({path:k,name:m,type:"dir"}).count()>0}catch(m){if(this.options.throwError)throw new L("IsDir","\u5224\u65AD\u6587\u4EF6\u7C7B\u578B\u5931\u8D25"+m);return!1}}async list(v){try{let{name:m,parent:k}=ie(v);return(await this.db.files.where({path:k}).toArray()).map(O=>O.name).filter(O=>O!="")}catch(m){if(this.options.throwError)throw new L("List","\u5217\u51FA\u76EE\u5F55\u4E0B\u7684\u6587\u4EF6\u5931\u8D25"+m);return[]}}async rename(v,m){try{if(!await this.exists(v)){if(this.options.throwError)throw new L("Rename","\u6587\u4EF6\u4E0D\u5B58\u5728");return!1}let{name:k,parent:O}=ie(v),z=await this.db.files.get({path:v,name:k});return await this.db.files.put({name:m,path:O,type:"file",file:z.file}),!0}catch(k){if(this.options.throwError)throw new L("Rename","\u91CD\u547D\u540D\u6587\u4EF6\u5931\u8D25"+k);return!1}}async delete(v){try{if(!await this.exists(v)){if(this.options.throwError)throw new L("Delete","\u6587\u4EF6\u4E0D\u5B58\u5728");return!1}let{name:m,parent:k}=ie(v);if(await this.isDir(v)){let O=await this.list(v);for(let z of O){if(await this.isDir(se(v,z))){let P=await this.db.files.where({name:m,path:k}).first();await this.db.files.delete(P.id)}await this.delete(se(k,z))}return!0}else{let O=await this.db.files.where({name:m,path:k}).first();return await this.db.files.delete(O.id),!0}}catch(m){if(this.options.throwError)throw new L("Delete","\u5220\u9664\u6587\u4EF6\u5931\u8D25"+m);return!1}}async move(v,m){try{if(await this.exists(m)){if(this.options.throwError)throw new L("Move","\u76EE\u6807\u6587\u4EF6\u5DF2\u5B58\u5728");return!1}if(!await this.exists(v)){if(this.options.throwError)throw new L("Move","\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728");return!1}let{name:k,parent:O}=ie(v),{name:z,parent:P}=ie(m);if(await this.createDir(P),await this.isDir(v)){let N=await this.list(v);for(let H of N)await this.move(v+"/"+H,m+"/"+H)}else{let N=await this.db.files.where({name:k,path:O}).first();await this.db.files.update(N.id,{name:z,path:P})}return await this.delete(v),!0}catch(k){if(this.options.throwError)throw new L("Move","\u79FB\u52A8\u6587\u4EF6\u5931\u8D25"+k);return!1}}async copy(v,m){try{if(await this.exists(m)){if(this.options.throwError)throw new L("Copy","\u76EE\u6807\u6587\u4EF6\u5DF2\u5B58\u5728");return!1}if(!await this.exists(v)){if(this.options.throwError)throw new L("Copy","\u6E90\u6587\u4EF6\u4E0D\u5B58\u5728");return!1}let{name:k,parent:O}=ie(v),{name:z,parent:P}=ie(m);if(await this.createDir(P),await this.isDir(v)){let N=await this.list(v);for(let H of N)await this.move(v+"/"+H,m+"/"+H)}else{let N=await this.db.files.where({name:k,path:O}).first();await this.db.files.update(N.id,{name:z,path:P})}return!0}catch(k){if(this.options.throwError)throw new L("Copy","\u590D\u5236\u6587\u4EF6\u5931\u8D25"+k);return!1}}async search(v,m){try{if(!await this.isDir(v)){if(this.options.throwError)throw new L("Search","\u57FA\u7840\u8DEF\u5F84\u4E0D\u662F\u76EE\u5F55");return null}let k=this,O=await this.list(v);return await z(v,O);async function z(P,N){let H=[];for(let Z of N)Z!=""&&(await k.isDir(se(P,Z))?(Z.includes(m)&&H.push(se(P,Z)+"/"),H.push(...await z(se(P,Z),await k.list(se(P,Z))))):await k.isFile(se(P,Z))&&Z.includes(m)&&H.push(se(P,Z)));return H}}catch(k){if(this.options.throwError)throw new L("Search","\u641C\u7D22\u6587\u4EF6\u5931\u8D25"+k);return null}}};Be(Ve,"version"),Be(Ve,"File",qn);function ie(B){B=se(B);let v=B.split("/"),m=[];for(let z=0;z<v.length;z++){if(v[z].length>255)throw new L("ParsePath","\u6587\u4EF6\u540D\u8FC7\u957F");v[z]&&m.push(v[z])}let k=m.pop()||"",O="/"+m.join("/");if(se(O,k).length>4096)throw new L("ParsePath","\u6587\u4EF6\u8DEF\u5F84\u8FC7\u957F");return{name:k,parent:O}}function se(...B){let v=B.map(P=>String(P)).filter(P=>P.length>0);if(v.length===0)return".";let m=v[0].startsWith("/"),k=v.join("/").split("/"),O=[];for(let P of k)P===""||P==="."||(P===".."?O.length>0&&O[O.length-1]!==".."?O.pop():m||O.push(".."):O.push(P));let z=O.join("/");return m&&(z="/"+z),z.startsWith("/")?z:"/"+z||(m?"/":".")}Object.defineProperty(Ve,"version",{value:Ba,writable:!1,enumerable:!0,configurable:!1});globalThis.VVVFS=Ve;})();