coh-content-db 2.0.0-rc.7 → 2.0.0-rc.9

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.
@@ -97,19 +97,19 @@ function compareSex(a, b) {
97
97
  }
98
98
 
99
99
  var __defProp$a = Object.defineProperty;
100
- var __typeError$6 = (msg) => {
100
+ var __typeError$7 = (msg) => {
101
101
  throw TypeError(msg);
102
102
  };
103
103
  var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
104
104
  var __publicField$a = (obj, key, value) => __defNormalProp$a(obj, typeof key !== "symbol" ? key + "" : key, value);
105
- var __accessCheck$6 = (obj, member, msg) => member.has(obj) || __typeError$6("Cannot " + msg);
106
- var __privateGet$6 = (obj, member, getter) => (__accessCheck$6(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
107
- var __privateAdd$6 = (obj, member, value) => member.has(obj) ? __typeError$6("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
108
- var __privateSet$5 = (obj, member, value, setter) => (__accessCheck$6(obj, member, "write to private field"), member.set(obj, value), value);
105
+ var __accessCheck$7 = (obj, member, msg) => member.has(obj) || __typeError$7("Cannot " + msg);
106
+ var __privateGet$6 = (obj, member, getter) => (__accessCheck$7(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
107
+ var __privateAdd$7 = (obj, member, value) => member.has(obj) ? __typeError$7("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
108
+ var __privateSet$5 = (obj, member, value, setter) => (__accessCheck$7(obj, member, "write to private field"), member.set(obj, value), value);
109
109
  var _items$1;
110
110
  class AlignmentList {
111
111
  constructor(items) {
112
- __privateAdd$6(this, _items$1);
112
+ __privateAdd$7(this, _items$1);
113
113
  __publicField$a(this, "hero");
114
114
  __publicField$a(this, "villain");
115
115
  __publicField$a(this, "praetorian");
@@ -154,14 +154,14 @@ class AlignmentList {
154
154
  }
155
155
  _items$1 = new WeakMap();
156
156
 
157
- var __typeError$5 = (msg) => {
157
+ var __typeError$6 = (msg) => {
158
158
  throw TypeError(msg);
159
159
  };
160
- var __accessCheck$5 = (obj, member, msg) => member.has(obj) || __typeError$5("Cannot " + msg);
161
- var __privateGet$5 = (obj, member, getter) => (__accessCheck$5(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
162
- var __privateAdd$5 = (obj, member, value) => member.has(obj) ? __typeError$5("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
163
- var __privateSet$4 = (obj, member, value, setter) => (__accessCheck$5(obj, member, "write to private field"), member.set(obj, value), value);
164
- var __privateMethod$2 = (obj, member, method) => (__accessCheck$5(obj, member, "access private method"), method);
160
+ var __accessCheck$6 = (obj, member, msg) => member.has(obj) || __typeError$6("Cannot " + msg);
161
+ var __privateGet$5 = (obj, member, getter) => (__accessCheck$6(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
162
+ var __privateAdd$6 = (obj, member, value) => member.has(obj) ? __typeError$6("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
163
+ var __privateSet$4 = (obj, member, value, setter) => (__accessCheck$6(obj, member, "write to private field"), member.set(obj, value), value);
164
+ var __privateMethod$2 = (obj, member, method) => (__accessCheck$6(obj, member, "access private method"), method);
165
165
  var _sortedValues, _Alternates_instances, compareAlternates_fn;
166
166
  class Alternates {
167
167
  /**
@@ -169,8 +169,8 @@ class Alternates {
169
169
  * @param value List of alternates, or a single value.
170
170
  */
171
171
  constructor(value) {
172
- __privateAdd$5(this, _Alternates_instances);
173
- __privateAdd$5(this, _sortedValues, []);
172
+ __privateAdd$6(this, _Alternates_instances);
173
+ __privateAdd$6(this, _sortedValues, []);
174
174
  if (Array.isArray(value)) {
175
175
  __privateSet$4(this, _sortedValues, value.sort());
176
176
  __privateGet$5(this, _sortedValues).sort((a, b) => __privateMethod$2(this, _Alternates_instances, compareAlternates_fn).call(this, a, b));
@@ -218,20 +218,20 @@ compareAlternates_fn = function(a, b) {
218
218
  return String(a.value).localeCompare(String(b.value));
219
219
  };
220
220
 
221
- var __typeError$4 = (msg) => {
221
+ var __typeError$5 = (msg) => {
222
222
  throw TypeError(msg);
223
223
  };
224
- var __accessCheck$4 = (obj, member, msg) => member.has(obj) || __typeError$4("Cannot " + msg);
225
- var __privateGet$4 = (obj, member, getter) => (__accessCheck$4(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
226
- var __privateAdd$4 = (obj, member, value) => member.has(obj) ? __typeError$4("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
227
- var __privateSet$3 = (obj, member, value, setter) => (__accessCheck$4(obj, member, "write to private field"), member.set(obj, value), value);
228
- var __privateMethod$1 = (obj, member, method) => (__accessCheck$4(obj, member, "access private method"), method);
224
+ var __accessCheck$5 = (obj, member, msg) => member.has(obj) || __typeError$5("Cannot " + msg);
225
+ var __privateGet$4 = (obj, member, getter) => (__accessCheck$5(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
226
+ var __privateAdd$5 = (obj, member, value) => member.has(obj) ? __typeError$5("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
227
+ var __privateSet$3 = (obj, member, value, setter) => (__accessCheck$5(obj, member, "write to private field"), member.set(obj, value), value);
228
+ var __privateMethod$1 = (obj, member, method) => (__accessCheck$5(obj, member, "access private method"), method);
229
229
  var _value, _Key_instances, validateKey_fn;
230
230
  const INVALID_KEY_PATTERN = /[^a-z0-9-]/;
231
231
  class Key {
232
232
  constructor(value) {
233
- __privateAdd$4(this, _Key_instances);
234
- __privateAdd$4(this, _value);
233
+ __privateAdd$5(this, _Key_instances);
234
+ __privateAdd$5(this, _value);
235
235
  __privateMethod$1(this, _Key_instances, validateKey_fn).call(this, value);
236
236
  __privateSet$3(this, _value, value);
237
237
  }
@@ -362,19 +362,19 @@ class BadgeRequirement {
362
362
  }
363
363
 
364
364
  var __defProp$7 = Object.defineProperty;
365
- var __typeError$3 = (msg) => {
365
+ var __typeError$4 = (msg) => {
366
366
  throw TypeError(msg);
367
367
  };
368
368
  var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
369
369
  var __publicField$7 = (obj, key, value) => __defNormalProp$7(obj, typeof key !== "symbol" ? key + "" : key, value);
370
- var __accessCheck$3 = (obj, member, msg) => member.has(obj) || __typeError$3("Cannot " + msg);
371
- var __privateGet$3 = (obj, member, getter) => (__accessCheck$3(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
372
- var __privateAdd$3 = (obj, member, value) => member.has(obj) ? __typeError$3("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
373
- var __privateSet$2 = (obj, member, value, setter) => (__accessCheck$3(obj, member, "write to private field"), member.set(obj, value), value);
370
+ var __accessCheck$4 = (obj, member, msg) => member.has(obj) || __typeError$4("Cannot " + msg);
371
+ var __privateGet$3 = (obj, member, getter) => (__accessCheck$4(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
372
+ var __privateAdd$4 = (obj, member, value) => member.has(obj) ? __typeError$4("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
373
+ var __privateSet$2 = (obj, member, value, setter) => (__accessCheck$4(obj, member, "write to private field"), member.set(obj, value), value);
374
374
  var _items;
375
375
  class MoralityList {
376
376
  constructor(items) {
377
- __privateAdd$3(this, _items);
377
+ __privateAdd$4(this, _items);
378
378
  __publicField$7(this, "hero");
379
379
  __publicField$7(this, "vigilante");
380
380
  __publicField$7(this, "villain");
@@ -463,19 +463,19 @@ class MoralityList {
463
463
  _items = new WeakMap();
464
464
 
465
465
  var __defProp$6 = Object.defineProperty;
466
- var __typeError$2 = (msg) => {
466
+ var __typeError$3 = (msg) => {
467
467
  throw TypeError(msg);
468
468
  };
469
469
  var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
470
470
  var __publicField$6 = (obj, key, value) => __defNormalProp$6(obj, typeof key !== "symbol" ? key + "" : key, value);
471
- var __accessCheck$2 = (obj, member, msg) => member.has(obj) || __typeError$2("Cannot " + msg);
472
- var __privateGet$2 = (obj, member, getter) => (__accessCheck$2(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
473
- var __privateAdd$2 = (obj, member, value) => member.has(obj) ? __typeError$2("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
471
+ var __accessCheck$3 = (obj, member, msg) => member.has(obj) || __typeError$3("Cannot " + msg);
472
+ var __privateGet$2 = (obj, member, getter) => (__accessCheck$3(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
473
+ var __privateAdd$3 = (obj, member, value) => member.has(obj) ? __typeError$3("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
474
474
  var _requirementsIndex, _zoneKeys;
475
475
  class Badge {
476
476
  constructor(badgeData) {
477
- __privateAdd$2(this, _requirementsIndex, {});
478
- __privateAdd$2(this, _zoneKeys, /* @__PURE__ */ new Set());
477
+ __privateAdd$3(this, _requirementsIndex, {});
478
+ __privateAdd$3(this, _zoneKeys, /* @__PURE__ */ new Set());
479
479
  /**
480
480
  * The database key for this badge.
481
481
  */
@@ -592,32 +592,68 @@ function compareByZoneKey(a, b) {
592
592
  return aZone.localeCompare(bZone);
593
593
  }
594
594
 
595
+ var __defProp$5 = Object.defineProperty;
596
+ var __typeError$2 = (msg) => {
597
+ throw TypeError(msg);
598
+ };
599
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
600
+ var __publicField$5 = (obj, key, value) => __defNormalProp$5(obj, typeof key !== "symbol" ? key + "" : key, value);
601
+ var __accessCheck$2 = (obj, member, msg) => member.has(obj) || __typeError$2("Cannot " + msg);
602
+ var __privateGet$1 = (obj, member, getter) => (__accessCheck$2(obj, member, "read from private field"), member.get(obj));
603
+ var __privateAdd$2 = (obj, member, value) => member.has(obj) ? __typeError$2("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
604
+ var __privateSet$1 = (obj, member, value, setter) => (__accessCheck$2(obj, member, "write to private field"), member.set(obj, value), value);
605
+ var _keyField;
606
+ class AbstractIndex {
607
+ constructor(keyField) {
608
+ __privateAdd$2(this, _keyField);
609
+ __publicField$5(this, "_values", []);
610
+ __publicField$5(this, "_hashTable", {});
611
+ __privateSet$1(this, _keyField, keyField);
612
+ }
613
+ /**
614
+ * Return all indexed values
615
+ */
616
+ get values() {
617
+ return this._values;
618
+ }
619
+ /**
620
+ * Load the given list of values into the index, replacing any existing data.
621
+ * @param values List of values.
622
+ */
623
+ load(values) {
624
+ this._values = values ?? [];
625
+ this._hashTable = {};
626
+ for (const value of this.values) {
627
+ const key = value[__privateGet$1(this, _keyField)];
628
+ if (this._hashTable[key] !== void 0) throw new Error(`Duplicate key [${key}]`);
629
+ this._hashTable[key] = value;
630
+ }
631
+ }
632
+ /**
633
+ * Get a value from the index
634
+ * @param key Key string
635
+ */
636
+ get(key) {
637
+ if (!key) return void 0;
638
+ return this._hashTable[key];
639
+ }
640
+ }
641
+ _keyField = new WeakMap();
642
+
595
643
  var __typeError$1 = (msg) => {
596
644
  throw TypeError(msg);
597
645
  };
598
646
  var __accessCheck$1 = (obj, member, msg) => member.has(obj) || __typeError$1("Cannot " + msg);
599
- var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
600
647
  var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
601
- var __privateSet$1 = (obj, member, value, setter) => (__accessCheck$1(obj, member, "write to private field"), member.set(obj, value), value);
602
648
  var __privateMethod = (obj, member, method) => (__accessCheck$1(obj, member, "access private method"), method);
603
- var _badges, _badgeIndex$1, _BadgeIndex_instances, satisfiesQueryPredicate_fn, satisfiesFilterPredicate_fn, sort_fn;
604
- class BadgeIndex {
605
- constructor(badges) {
649
+ var _BadgeIndex_instances, satisfiesQueryPredicate_fn, satisfiesFilterPredicate_fn, sort_fn;
650
+ class BadgeIndex extends AbstractIndex {
651
+ constructor() {
652
+ super("key");
606
653
  __privateAdd$1(this, _BadgeIndex_instances);
607
- __privateAdd$1(this, _badges, []);
608
- __privateAdd$1(this, _badgeIndex$1, {});
609
- __privateSet$1(this, _badges, badges);
610
- for (const badge of badges) {
611
- if (__privateGet$1(this, _badgeIndex$1)[badge.key] !== void 0) throw new Error(`Duplicate badge key [${badge.key}]`);
612
- __privateGet$1(this, _badgeIndex$1)[badge.key] = badge;
613
- }
614
- }
615
- getBadge(key) {
616
- if (!key) return void 0;
617
- return __privateGet$1(this, _badgeIndex$1)[key];
618
654
  }
619
- searchBadges(options) {
620
- const filtered = options?.query || options?.filter ? __privateGet$1(this, _badges).filter((badge) => __privateMethod(this, _BadgeIndex_instances, satisfiesQueryPredicate_fn).call(this, badge, options?.query) && __privateMethod(this, _BadgeIndex_instances, satisfiesFilterPredicate_fn).call(this, badge, options?.filter)) : __privateGet$1(this, _badges);
655
+ search(options) {
656
+ const filtered = options?.query || options?.filter ? this._values.filter((badge) => __privateMethod(this, _BadgeIndex_instances, satisfiesQueryPredicate_fn).call(this, badge, options?.query) && __privateMethod(this, _BadgeIndex_instances, satisfiesFilterPredicate_fn).call(this, badge, options?.filter)) : this._values;
621
657
  const totalPages = options?.pageSize ? Math.ceil(filtered.length / options?.pageSize) : 1;
622
658
  const page = Math.max(1, Math.min(totalPages, options?.page ?? 1));
623
659
  const paged = options?.pageSize ? filtered.slice((page - 1) * options.pageSize, page * options?.pageSize) : filtered;
@@ -631,8 +667,6 @@ class BadgeIndex {
631
667
  };
632
668
  }
633
669
  }
634
- _badges = new WeakMap();
635
- _badgeIndex$1 = new WeakMap();
636
670
  _BadgeIndex_instances = new WeakSet();
637
671
  satisfiesQueryPredicate_fn = function(badge, query) {
638
672
  const queryString = query?.str?.toLowerCase() ?? "";
@@ -649,42 +683,47 @@ sort_fn = function(badges, sort) {
649
683
  return sort.dir === "desc" ? badges.reverse() : badges;
650
684
  };
651
685
 
652
- var __defProp$5 = Object.defineProperty;
653
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
654
- var __publicField$5 = (obj, key, value) => __defNormalProp$5(obj, typeof key !== "symbol" ? key + "" : key, value);
655
- class BundleMetadata {
656
- constructor(bundle) {
686
+ var __defProp$4 = Object.defineProperty;
687
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
688
+ var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
689
+ class BundleHeader {
690
+ constructor(data) {
657
691
  /**
658
692
  * Name of the content bundle.
659
693
  */
660
- __publicField$5(this, "name");
694
+ __publicField$4(this, "name");
661
695
  /**
662
696
  * Description of the fork.
663
697
  */
664
- __publicField$5(this, "description");
698
+ __publicField$4(this, "description");
665
699
  /**
666
- * Repository where the db content package is maintained.
700
+ * Url for the repository where the bundle is maintained.
667
701
  */
668
- __publicField$5(this, "repository");
702
+ __publicField$4(this, "repositoryUrl");
703
+ /**
704
+ * Url for the location of the changelog.
705
+ */
706
+ __publicField$4(this, "changelogUrl");
669
707
  /**
670
708
  * List of external links. Wiki, forums, etc.
671
709
  */
672
- __publicField$5(this, "links");
710
+ __publicField$4(this, "links");
673
711
  /**
674
- * Change log for this data package.
712
+ * The current version of the data package.
675
713
  */
676
- __publicField$5(this, "changelog");
677
- this.name = bundle.name;
678
- this.description = bundle.description;
679
- this.repository = bundle.repository;
680
- this.links = bundle.links ?? [];
681
- this.changelog = bundle.changelog ?? [];
714
+ __publicField$4(this, "version");
715
+ this.name = data?.name;
716
+ this.description = data?.description;
717
+ this.repositoryUrl = data?.repositoryUrl;
718
+ this.changelogUrl = data?.changelogUrl;
719
+ this.links = data?.links ?? [];
720
+ this.version = data?.version;
682
721
  }
683
722
  }
684
723
 
685
- var __defProp$4 = Object.defineProperty;
686
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
687
- var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
724
+ var __defProp$3 = Object.defineProperty;
725
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
726
+ var __publicField$3 = (obj, key, value) => __defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
688
727
  class Zone {
689
728
  constructor(data) {
690
729
  /**
@@ -692,24 +731,24 @@ class Zone {
692
731
  *
693
732
  * Keys must be unique and can only contain lowercase letters, numbers and hyphens (`-`).
694
733
  */
695
- __publicField$4(this, "key");
734
+ __publicField$3(this, "key");
696
735
  /**
697
736
  * The name of the zone as it appears in-game.
698
737
  */
699
- __publicField$4(this, "name");
738
+ __publicField$3(this, "name");
700
739
  /**
701
740
  * List of external links. Wiki, forums, etc.
702
741
  */
703
- __publicField$4(this, "links");
742
+ __publicField$3(this, "links");
704
743
  this.key = new Key(data.key).value;
705
744
  this.name = data.name;
706
745
  this.links = data.links ?? [];
707
746
  }
708
747
  }
709
748
 
710
- var __defProp$3 = Object.defineProperty;
711
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
712
- var __publicField$3 = (obj, key, value) => __defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
749
+ var __defProp$2 = Object.defineProperty;
750
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
751
+ var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
713
752
  class Contact {
714
753
  constructor(data) {
715
754
  /**
@@ -717,35 +756,35 @@ class Contact {
717
756
  *
718
757
  * Keys must be unique and can only contain lowercase letters, numbers and hyphens (`-`).
719
758
  */
720
- __publicField$3(this, "key");
759
+ __publicField$2(this, "key");
721
760
  /**
722
761
  * The name of this contact.
723
762
  */
724
- __publicField$3(this, "name");
763
+ __publicField$2(this, "name");
725
764
  /**
726
765
  * The contact's title.
727
766
  */
728
- __publicField$3(this, "title");
767
+ __publicField$2(this, "title");
729
768
  /**
730
769
  * The character moralities that this contact will interact with.
731
770
  */
732
- __publicField$3(this, "morality");
771
+ __publicField$2(this, "morality");
733
772
  /**
734
773
  * The location of this contact.
735
774
  */
736
- __publicField$3(this, "location");
775
+ __publicField$2(this, "location");
737
776
  /**
738
777
  * The level range this contact will offer missions for.
739
778
  */
740
- __publicField$3(this, "levelRange");
779
+ __publicField$2(this, "levelRange");
741
780
  /**
742
781
  * Freeform notes or tips about the contact.
743
782
  */
744
- __publicField$3(this, "notes");
783
+ __publicField$2(this, "notes");
745
784
  /**
746
785
  * List of external links. Wiki, forums, etc.
747
786
  */
748
- __publicField$3(this, "links");
787
+ __publicField$2(this, "links");
749
788
  this.key = new Key(data.key).value;
750
789
  this.name = data.name;
751
790
  this.title = data.title;
@@ -757,9 +796,9 @@ class Contact {
757
796
  }
758
797
  }
759
798
 
760
- var __defProp$2 = Object.defineProperty;
761
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
762
- var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
799
+ var __defProp$1 = Object.defineProperty;
800
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
801
+ var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
763
802
  class Mission {
764
803
  constructor(data) {
765
804
  /**
@@ -767,41 +806,41 @@ class Mission {
767
806
  *
768
807
  * Keys must be unique and can only contain lowercase letters, numbers and hyphens (`-`).
769
808
  */
770
- __publicField$2(this, "key");
809
+ __publicField$1(this, "key");
771
810
  /**
772
811
  * The name of the mission as it appears from the contact.
773
812
  *
774
813
  * The name may be different when viewed in Ouroboros as a Flashback.
775
814
  */
776
- __publicField$2(this, "name");
815
+ __publicField$1(this, "name");
777
816
  /**
778
817
  * The type of mission... Story arc, task force, trial, etc.
779
818
  */
780
- __publicField$2(this, "type");
819
+ __publicField$1(this, "type");
781
820
  /**
782
821
  * The character moralities that may accept the mission.
783
822
  */
784
- __publicField$2(this, "morality");
823
+ __publicField$1(this, "morality");
785
824
  /**
786
825
  * The keys of any contacts that provide this mission.
787
826
  */
788
- __publicField$2(this, "contactKeys");
827
+ __publicField$1(this, "contactKeys");
789
828
  /**
790
829
  * The level range this mission is available for.
791
830
  */
792
- __publicField$2(this, "levelRange");
831
+ __publicField$1(this, "levelRange");
793
832
  /**
794
833
  * Freeform notes or tips about the mission.
795
834
  */
796
- __publicField$2(this, "notes");
835
+ __publicField$1(this, "notes");
797
836
  /**
798
837
  * List of external links. Wiki, forums, etc.
799
838
  */
800
- __publicField$2(this, "links");
839
+ __publicField$1(this, "links");
801
840
  /**
802
841
  * If the mission is available in Ouroboros as a Flashback.
803
842
  */
804
- __publicField$2(this, "flashback");
843
+ __publicField$1(this, "flashback");
805
844
  this.key = new Key(data.key).value;
806
845
  this.name = data.name;
807
846
  this.type = data.type;
@@ -824,105 +863,115 @@ function createFlashback(data) {
824
863
  };
825
864
  }
826
865
 
827
- var __defProp$1 = Object.defineProperty;
828
866
  var __typeError = (msg) => {
829
867
  throw TypeError(msg);
830
868
  };
831
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
832
- var __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
833
869
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
834
870
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
835
871
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
836
872
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
837
- var _archetypeIndex, _zoneIndex, _contactIndex, _missionIndex, _badgeIndex;
873
+ var _archetypeIndex, _zoneIndex, _contactIndex, _missionIndex, _badgeIndex, _header, _servers;
838
874
  class CohContentDatabase {
875
+ constructor() {
876
+ __privateAdd(this, _archetypeIndex, new AbstractIndex("key"));
877
+ __privateAdd(this, _zoneIndex, new AbstractIndex("key"));
878
+ __privateAdd(this, _contactIndex, new AbstractIndex("key"));
879
+ __privateAdd(this, _missionIndex, new AbstractIndex("key"));
880
+ __privateAdd(this, _badgeIndex, new BadgeIndex());
881
+ __privateAdd(this, _header);
882
+ __privateAdd(this, _servers);
883
+ }
839
884
  /**
840
- * Initialize the database with a content bundle.
841
- * @param bundle The data to load.
885
+ * Load the given content bundle, resetting the db if a bundle is already loaded.
886
+ * @param bundle The bundle to load.
842
887
  */
843
- constructor(bundle) {
844
- __privateAdd(this, _archetypeIndex, {});
845
- __privateAdd(this, _zoneIndex, {});
846
- __privateAdd(this, _contactIndex, {});
847
- __privateAdd(this, _missionIndex, {});
848
- __privateAdd(this, _badgeIndex);
849
- /**
850
- * Metadata about the content bundle.
851
- */
852
- __publicField$1(this, "metadata");
853
- /**
854
- * List of the game server names.
855
- *
856
- * Torchbearer, Excelsior, etc.
857
- */
858
- __publicField$1(this, "servers");
859
- /**
860
- * List of archetypes.
861
- */
862
- __publicField$1(this, "archetypes");
863
- /**
864
- * List of game zones.
865
- */
866
- __publicField$1(this, "zones");
867
- /**
868
- * List of contacts.
869
- */
870
- __publicField$1(this, "contacts");
871
- /**
872
- * List of missions.
873
- */
874
- __publicField$1(this, "missions");
875
- /**
876
- * List of badges.
877
- */
878
- __publicField$1(this, "badges");
879
- this.metadata = new BundleMetadata(bundle);
880
- this.servers = bundle.servers ?? [];
881
- this.archetypes = bundle.archetypes?.map((data) => {
882
- if (__privateGet(this, _archetypeIndex)[data.key] !== void 0) throw new Error(`Duplicate archetype key '${data.key}'`);
883
- const archetype = new Archetype(data);
884
- __privateGet(this, _archetypeIndex)[archetype.key] = archetype;
885
- return archetype;
886
- }) ?? [];
887
- this.zones = bundle.zones?.map((data) => {
888
- if (__privateGet(this, _zoneIndex)[data.key] !== void 0) throw new Error(`Duplicate zone key '${data.key}'`);
889
- const zone = new Zone(data);
890
- __privateGet(this, _zoneIndex)[zone.key] = zone;
891
- return zone;
892
- }) ?? [];
893
- this.contacts = bundle.contacts?.map((data) => {
894
- if (__privateGet(this, _contactIndex)[data.key] !== void 0) throw new Error(`Duplicate contact key '${data.key}'`);
895
- const contact = new Contact(data);
896
- __privateGet(this, _contactIndex)[contact.key] = contact;
897
- return contact;
898
- }) ?? [];
899
- this.missions = bundle.missions?.map((data) => {
900
- if (__privateGet(this, _missionIndex)[data.key] !== void 0) throw new Error(`Duplicate mission key '${data.key}'`);
901
- const mission = new Mission(data);
902
- __privateGet(this, _missionIndex)[mission.key] = mission;
903
- return mission;
904
- }) ?? [];
905
- this.badges = bundle.badges?.map((data) => new Badge(data)) ?? [];
906
- __privateSet(this, _badgeIndex, new BadgeIndex(this.badges));
888
+ load(bundle) {
889
+ __privateSet(this, _header, new BundleHeader(bundle.header));
890
+ __privateSet(this, _servers, bundle.servers ?? []);
891
+ __privateGet(this, _archetypeIndex).load(bundle.archetypes?.map((x) => new Archetype(x)));
892
+ __privateGet(this, _zoneIndex).load(bundle.zones?.map((x) => new Zone(x)));
893
+ __privateGet(this, _contactIndex).load(bundle.contacts?.map((x) => new Contact(x)));
894
+ __privateGet(this, _missionIndex).load(bundle.missions?.map((x) => new Mission(x)));
895
+ __privateGet(this, _badgeIndex).load(bundle.badges?.map((x) => new Badge(x)));
896
+ }
897
+ /**
898
+ * Header information about the content bundle.
899
+ */
900
+ get header() {
901
+ return __privateGet(this, _header);
902
+ }
903
+ /**
904
+ * List of the game server names.
905
+ *
906
+ * Torchbearer, Excelsior, etc.
907
+ */
908
+ get servers() {
909
+ return __privateGet(this, _servers) ?? [];
907
910
  }
911
+ /**
912
+ * List of archetypes.
913
+ */
914
+ get archetypes() {
915
+ return __privateGet(this, _archetypeIndex).values;
916
+ }
917
+ /**
918
+ * Get archetype by key.
919
+ * @param key The key.
920
+ */
908
921
  getArchetype(key) {
909
- if (!key) return void 0;
910
- return __privateGet(this, _archetypeIndex)[key];
922
+ return __privateGet(this, _archetypeIndex).get(key);
911
923
  }
924
+ /**
925
+ * List of game zones.
926
+ */
927
+ get zones() {
928
+ return __privateGet(this, _zoneIndex).values;
929
+ }
930
+ /**
931
+ * Get zone by key.
932
+ * @param key The key.
933
+ */
912
934
  getZone(key) {
913
- if (!key) return void 0;
914
- return __privateGet(this, _zoneIndex)[key];
935
+ return __privateGet(this, _zoneIndex).get(key);
915
936
  }
937
+ /**
938
+ * List of contacts.
939
+ */
940
+ get contacts() {
941
+ return __privateGet(this, _contactIndex).values;
942
+ }
943
+ /**
944
+ * Get contact by key.
945
+ * @param key The key.
946
+ */
916
947
  getContact(key) {
917
- if (!key) return void 0;
918
- return __privateGet(this, _contactIndex)[key];
948
+ return __privateGet(this, _contactIndex).get(key);
919
949
  }
950
+ /**
951
+ * List of missions.
952
+ */
953
+ get missions() {
954
+ return __privateGet(this, _missionIndex).values;
955
+ }
956
+ /**
957
+ * Get mission by key.
958
+ * @param key The key.
959
+ */
920
960
  getMission(key) {
921
- if (!key) return void 0;
922
- return __privateGet(this, _missionIndex)[key];
961
+ return __privateGet(this, _missionIndex).get(key);
923
962
  }
963
+ /**
964
+ * List of badges.
965
+ */
966
+ get badges() {
967
+ return __privateGet(this, _badgeIndex).values;
968
+ }
969
+ /**
970
+ * Get badge by key.
971
+ * @param key The key.
972
+ */
924
973
  getBadge(key) {
925
- return __privateGet(this, _badgeIndex).getBadge(key);
974
+ return __privateGet(this, _badgeIndex).get(key);
926
975
  }
927
976
  /**
928
977
  * Search, sort and filter the badge list.
@@ -931,7 +980,7 @@ class CohContentDatabase {
931
980
  * @param options {@link BadgeSearchOptions}
932
981
  */
933
982
  searchBadges(options) {
934
- return __privateGet(this, _badgeIndex).searchBadges(options);
983
+ return __privateGet(this, _badgeIndex).search(options);
935
984
  }
936
985
  }
937
986
  _archetypeIndex = new WeakMap();
@@ -939,6 +988,8 @@ _zoneIndex = new WeakMap();
939
988
  _contactIndex = new WeakMap();
940
989
  _missionIndex = new WeakMap();
941
990
  _badgeIndex = new WeakMap();
991
+ _header = new WeakMap();
992
+ _servers = new WeakMap();
942
993
 
943
994
  var __defProp = Object.defineProperty;
944
995
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -968,33 +1019,5 @@ class Location {
968
1019
  }
969
1020
  }
970
1021
 
971
- const CHANGELOG = [
972
- {
973
- version: "2.0.0",
974
- date: /* @__PURE__ */ new Date("2025-03-12"),
975
- description: `* Replaced redundant interfaces with their concrete equivalents.
976
- * Server groups are now referred to as 'forks'.
977
- * Replaced enums with union types and changed values to \`kebab-case\`.
978
- * \`IServerGroupData\` is now \`ContentBundle\` and each database instance is now designed to accept only a single bundle.
979
- * \`GameMap\` is now \`Zone\`.
980
- * Removed the \`serverGroup\` property from entities to simplify the object tree given that only a single context can exist per db now.
981
- * Added a simple indexing and search function for badge names, text and acquisition info.
982
- * Zone and badge references now follow a standard Markdown link format with a \`badge://\` or \`map://\` protocol.
983
- * Badge partials are now known as badge requirements.
984
- * Removed the \`VidiotMap\` API as it was never used or fleshed out properly.
985
- * Added formal support for Missions and Contacts in badge requirements.
986
- * Move exploration badge locations into badge requirement list.
987
- * Standardized pluralization of some field names (name, icon).
988
- * Combined \`settitle\` ids into a single tuple field.
989
- * Change from GNU to The Unlicense.
990
- * Removed all third-party dependencies.
991
- * Moved from webpack to rollup for packaging.
992
- * Add eslint for linting.
993
- * Add jest for unit tests.
994
- * Added GitHub Actions for CI.
995
- `
996
- }
997
- ];
998
-
999
- export { ALIGNMENT, AlignmentList, Alternates, Archetype, BADGE_REQUIREMENT_TYPE, BADGE_TYPE, Badge, BadgeIndex, BadgeRequirement, BundleMetadata, CHANGELOG, CohContentDatabase, Contact, ENHANCEMENT_CATEGORY, Key, Location, MISSION_TYPE, MORALITY, Mission, MoralityList, SEX, Zone, badgeLink, badgeUri, coalesceToArray, compareAlignment, compareByDefaultName, compareByZoneKey, compareSex, contactLink, contactUri, missionLink, missionUri, zoneLink, zoneUri };
1022
+ export { ALIGNMENT, AlignmentList, Alternates, Archetype, BADGE_REQUIREMENT_TYPE, BADGE_TYPE, Badge, BadgeIndex, BadgeRequirement, BundleHeader, CohContentDatabase, Contact, ENHANCEMENT_CATEGORY, Key, Location, MISSION_TYPE, MORALITY, Mission, MoralityList, SEX, Zone, badgeLink, badgeUri, coalesceToArray, compareAlignment, compareByDefaultName, compareByZoneKey, compareSex, contactLink, contactUri, missionLink, missionUri, zoneLink, zoneUri };
1000
1023
  //# sourceMappingURL=coh-content-db.mjs.map