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.
- package/.github/workflows/build.yml +1 -1
- package/.github/workflows/pull-request.yml +1 -1
- package/.github/workflows/release.yml +1 -1
- package/CHANGELOG.md +38 -0
- package/README.md +24 -7
- package/dist/coh-content-db.d.ts +108 -64
- package/dist/coh-content-db.js +232 -210
- package/dist/coh-content-db.js.map +1 -1
- package/dist/coh-content-db.mjs +232 -209
- package/dist/coh-content-db.mjs.map +1 -1
- package/package.json +1 -1
- package/src/main/api/{content-bundle.ts → bundle-data.ts} +5 -27
- package/src/main/api/bundle-header-data.ts +37 -0
- package/src/main/db/abstract-index.ts +41 -0
- package/src/main/db/badge-index.ts +7 -18
- package/src/main/db/bundle-header.ts +44 -0
- package/src/main/db/coh-content-database.ts +81 -72
- package/src/main/index.ts +3 -4
- package/src/test/api/bundle-data.fixture.ts +6 -0
- package/src/test/api/bundle-header-data.fixture.ts +6 -0
- package/src/test/db/abstract-index.test.ts +86 -0
- package/src/test/db/badge-index.test.ts +149 -122
- package/src/test/db/bundle-header.test.ts +76 -0
- package/src/test/db/coh-content-database.test.ts +164 -79
- package/src/test/integration.test.ts +16 -0
- package/src/main/api/change.ts +0 -17
- package/src/main/changelog.ts +0 -29
- package/src/main/db/bundle-metadata.ts +0 -39
- package/src/test/api/content-bundle.fixture.ts +0 -6
- package/src/test/api/content-bundle.test.ts +0 -14
- package/src/test/changelog.test.ts +0 -36
- package/src/test/db/bundle-metadata.test.ts +0 -67
- package/src/test/index.test.ts +0 -14
package/dist/coh-content-db.mjs
CHANGED
|
@@ -97,19 +97,19 @@ function compareSex(a, b) {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
var __defProp$a = Object.defineProperty;
|
|
100
|
-
var __typeError$
|
|
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$
|
|
106
|
-
var __privateGet$6 = (obj, member, getter) => (__accessCheck$
|
|
107
|
-
var __privateAdd$
|
|
108
|
-
var __privateSet$5 = (obj, member, value, setter) => (__accessCheck$
|
|
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$
|
|
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$
|
|
157
|
+
var __typeError$6 = (msg) => {
|
|
158
158
|
throw TypeError(msg);
|
|
159
159
|
};
|
|
160
|
-
var __accessCheck$
|
|
161
|
-
var __privateGet$5 = (obj, member, getter) => (__accessCheck$
|
|
162
|
-
var __privateAdd$
|
|
163
|
-
var __privateSet$4 = (obj, member, value, setter) => (__accessCheck$
|
|
164
|
-
var __privateMethod$2 = (obj, member, method) => (__accessCheck$
|
|
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$
|
|
173
|
-
__privateAdd$
|
|
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$
|
|
221
|
+
var __typeError$5 = (msg) => {
|
|
222
222
|
throw TypeError(msg);
|
|
223
223
|
};
|
|
224
|
-
var __accessCheck$
|
|
225
|
-
var __privateGet$4 = (obj, member, getter) => (__accessCheck$
|
|
226
|
-
var __privateAdd$
|
|
227
|
-
var __privateSet$3 = (obj, member, value, setter) => (__accessCheck$
|
|
228
|
-
var __privateMethod$1 = (obj, member, method) => (__accessCheck$
|
|
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$
|
|
234
|
-
__privateAdd$
|
|
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$
|
|
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$
|
|
371
|
-
var __privateGet$3 = (obj, member, getter) => (__accessCheck$
|
|
372
|
-
var __privateAdd$
|
|
373
|
-
var __privateSet$2 = (obj, member, value, setter) => (__accessCheck$
|
|
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$
|
|
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$
|
|
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$
|
|
472
|
-
var __privateGet$2 = (obj, member, getter) => (__accessCheck$
|
|
473
|
-
var __privateAdd$
|
|
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$
|
|
478
|
-
__privateAdd$
|
|
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
|
|
604
|
-
class BadgeIndex {
|
|
605
|
-
constructor(
|
|
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
|
-
|
|
620
|
-
const filtered = options?.query || options?.filter ?
|
|
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$
|
|
653
|
-
var __defNormalProp$
|
|
654
|
-
var __publicField$
|
|
655
|
-
class
|
|
656
|
-
constructor(
|
|
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$
|
|
694
|
+
__publicField$4(this, "name");
|
|
661
695
|
/**
|
|
662
696
|
* Description of the fork.
|
|
663
697
|
*/
|
|
664
|
-
__publicField$
|
|
698
|
+
__publicField$4(this, "description");
|
|
665
699
|
/**
|
|
666
|
-
*
|
|
700
|
+
* Url for the repository where the bundle is maintained.
|
|
667
701
|
*/
|
|
668
|
-
__publicField$
|
|
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$
|
|
710
|
+
__publicField$4(this, "links");
|
|
673
711
|
/**
|
|
674
|
-
*
|
|
712
|
+
* The current version of the data package.
|
|
675
713
|
*/
|
|
676
|
-
__publicField$
|
|
677
|
-
this.name =
|
|
678
|
-
this.description =
|
|
679
|
-
this.
|
|
680
|
-
this.
|
|
681
|
-
this.
|
|
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$
|
|
686
|
-
var __defNormalProp$
|
|
687
|
-
var __publicField$
|
|
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$
|
|
734
|
+
__publicField$3(this, "key");
|
|
696
735
|
/**
|
|
697
736
|
* The name of the zone as it appears in-game.
|
|
698
737
|
*/
|
|
699
|
-
__publicField$
|
|
738
|
+
__publicField$3(this, "name");
|
|
700
739
|
/**
|
|
701
740
|
* List of external links. Wiki, forums, etc.
|
|
702
741
|
*/
|
|
703
|
-
__publicField$
|
|
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$
|
|
711
|
-
var __defNormalProp$
|
|
712
|
-
var __publicField$
|
|
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$
|
|
759
|
+
__publicField$2(this, "key");
|
|
721
760
|
/**
|
|
722
761
|
* The name of this contact.
|
|
723
762
|
*/
|
|
724
|
-
__publicField$
|
|
763
|
+
__publicField$2(this, "name");
|
|
725
764
|
/**
|
|
726
765
|
* The contact's title.
|
|
727
766
|
*/
|
|
728
|
-
__publicField$
|
|
767
|
+
__publicField$2(this, "title");
|
|
729
768
|
/**
|
|
730
769
|
* The character moralities that this contact will interact with.
|
|
731
770
|
*/
|
|
732
|
-
__publicField$
|
|
771
|
+
__publicField$2(this, "morality");
|
|
733
772
|
/**
|
|
734
773
|
* The location of this contact.
|
|
735
774
|
*/
|
|
736
|
-
__publicField$
|
|
775
|
+
__publicField$2(this, "location");
|
|
737
776
|
/**
|
|
738
777
|
* The level range this contact will offer missions for.
|
|
739
778
|
*/
|
|
740
|
-
__publicField$
|
|
779
|
+
__publicField$2(this, "levelRange");
|
|
741
780
|
/**
|
|
742
781
|
* Freeform notes or tips about the contact.
|
|
743
782
|
*/
|
|
744
|
-
__publicField$
|
|
783
|
+
__publicField$2(this, "notes");
|
|
745
784
|
/**
|
|
746
785
|
* List of external links. Wiki, forums, etc.
|
|
747
786
|
*/
|
|
748
|
-
__publicField$
|
|
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$
|
|
761
|
-
var __defNormalProp$
|
|
762
|
-
var __publicField$
|
|
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$
|
|
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$
|
|
815
|
+
__publicField$1(this, "name");
|
|
777
816
|
/**
|
|
778
817
|
* The type of mission... Story arc, task force, trial, etc.
|
|
779
818
|
*/
|
|
780
|
-
__publicField$
|
|
819
|
+
__publicField$1(this, "type");
|
|
781
820
|
/**
|
|
782
821
|
* The character moralities that may accept the mission.
|
|
783
822
|
*/
|
|
784
|
-
__publicField$
|
|
823
|
+
__publicField$1(this, "morality");
|
|
785
824
|
/**
|
|
786
825
|
* The keys of any contacts that provide this mission.
|
|
787
826
|
*/
|
|
788
|
-
__publicField$
|
|
827
|
+
__publicField$1(this, "contactKeys");
|
|
789
828
|
/**
|
|
790
829
|
* The level range this mission is available for.
|
|
791
830
|
*/
|
|
792
|
-
__publicField$
|
|
831
|
+
__publicField$1(this, "levelRange");
|
|
793
832
|
/**
|
|
794
833
|
* Freeform notes or tips about the mission.
|
|
795
834
|
*/
|
|
796
|
-
__publicField$
|
|
835
|
+
__publicField$1(this, "notes");
|
|
797
836
|
/**
|
|
798
837
|
* List of external links. Wiki, forums, etc.
|
|
799
838
|
*/
|
|
800
|
-
__publicField$
|
|
839
|
+
__publicField$1(this, "links");
|
|
801
840
|
/**
|
|
802
841
|
* If the mission is available in Ouroboros as a Flashback.
|
|
803
842
|
*/
|
|
804
|
-
__publicField$
|
|
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
|
-
*
|
|
841
|
-
* @param bundle The
|
|
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
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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).
|
|
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).
|
|
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
|
-
|
|
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
|