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