@optolith/database-schema 0.88.0 → 0.90.1
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/CHANGELOG.md +23 -0
- package/gen/types.d.ts +463 -311
- package/lib/cache/activatableSelectOptions.js +21 -19
- package/lib/cache/ancestorBloodAdvantages.js +4 -1
- package/lib/cache/magicalAndBlessedAdvantagesAndDisadvantages.js +21 -22
- package/lib/cache/newApplicationsAndUses.js +4 -1
- package/lib/cache/tradeSecrets.js +1 -1
- package/lib/main.js +1 -0
- package/lib/test.js +1 -0
- package/lib/types/AnimalDisease.js +1 -1
- package/lib/types/Attribute.js +1 -1
- package/lib/types/Culture.d.ts +9 -4
- package/lib/types/Culture.js +24 -1
- package/lib/types/DerivedCharacteristic.js +3 -1
- package/lib/types/Disease.js +1 -1
- package/lib/types/Lessons.js +1 -1
- package/lib/types/Locale.js +1 -0
- package/lib/types/PatronCategory.js +1 -1
- package/lib/types/PersonalityTrait.js +1 -1
- package/lib/types/Profession.d.ts +16 -8
- package/lib/types/Race.d.ts +16 -8
- package/lib/types/TargetCategory.js +1 -1
- package/lib/types/_ActivatableNonMundane.js +1 -1
- package/lib/types/_ActivatableSelectOptionCategory.js +1 -1
- package/lib/types/_ActivatableSelectOptions.js +1 -1
- package/lib/types/_ActivatableSkill.d.ts +1 -1
- package/lib/types/_ActivatableSkill.js +1 -1
- package/lib/types/_ActivatableSkillApplicationsAndUses.js +1 -1
- package/lib/types/_ActivatableSkillCastingTime.js +2 -2
- package/lib/types/_ActivatableSkillDuration.js +2 -2
- package/lib/types/_ActivatableSkillTargetCategory.js +1 -1
- package/lib/types/_ArcaneTradition.js +1 -1
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.d.ts +2 -1
- package/lib/types/_CommonnessRatedAdvantageDisadvantage.js +2 -2
- package/lib/types/_DiseasePoison.js +1 -1
- package/lib/types/_Enhancements.d.ts +1 -1
- package/lib/types/_Enhancements.js +1 -1
- package/lib/types/_Identifier.d.ts +1 -0
- package/lib/types/_Identifier.js +2 -0
- package/lib/types/_IdentifierGroup.d.ts +23 -0
- package/lib/types/_IdentifierGroup.js +9 -1
- package/lib/types/_Prerequisite.d.ts +1 -1
- package/lib/types/_Prerequisite.js +1 -1
- package/lib/types/_ResponsiveText.js +2 -2
- package/lib/types/equipment/item/Elixir.js +1 -1
- package/lib/types/equipment/item/HerbalAid.js +2 -2
- package/lib/types/equipment/item/HerbalPreservation.js +3 -3
- package/lib/types/equipment/item/Plant.js +2 -2
- package/lib/types/equipment/item/Poison.js +1 -1
- package/lib/types/equipment/item/_Item.js +1 -1
- package/lib/types/equipment/item/sub/BotanicRegion.js +1 -1
- package/lib/types/equipment/item/sub/SubBiome.js +1 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/magicalActions/AnimistPower_Tribe.js +1 -1
- package/lib/types/magicalActions/MagicalDance.d.ts +2 -2
- package/lib/types/magicalActions/MagicalMelody.d.ts +2 -2
- package/lib/types/magicalActions/_MusicTradition.d.ts +2 -2
- package/lib/types/magicalActions/_MusicTradition.js +2 -2
- package/lib/types/prerequisites/PrerequisiteGroups.js +7 -9
- package/lib/types/prerequisites/single/AnySpecialAbilityOfGroupPrerequisite.js +4 -6
- package/lib/types/source/Publication.js +1 -1
- package/lib/types/specialAbility/BlessedTradition.d.ts +1 -0
- package/lib/types/specialAbility/BlessedTradition.js +5 -1
- package/lib/types/specialAbility/sub/BlessedTraditionGroup.d.ts +7 -0
- package/lib/types/specialAbility/sub/BlessedTraditionGroup.js +25 -0
- package/lib/types/specialAbility/sub/MagicalTraditionSubgroup.js +1 -1
- package/lib/types/traditionArtifacts/_shared.js +1 -1
- package/package.json +10 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { SkillIdentifier } from "./_Identifier.js";
|
|
4
3
|
import { NewSkillApplicationOrUseParentIdentifier } from "./_IdentifierGroup.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
5
|
export const NewSkillApplication = DB.Entity(import.meta.url, {
|
|
6
6
|
name: "NewSkillApplication",
|
|
7
7
|
namePlural: "NewSkillApplications",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
|
-
import { SlowSkillCastingTimeUnit } from "./SkillModificationLevel.js";
|
|
4
2
|
import { SkillModificationLevelIdentifier } from "./_Identifier.js";
|
|
5
3
|
import { ResponsiveTextOptional } from "./_ResponsiveText.js";
|
|
4
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
5
|
+
import { SlowSkillCastingTimeUnit } from "./SkillModificationLevel.js";
|
|
6
6
|
export const CastingTime = DB.GenEnum(import.meta.url, {
|
|
7
7
|
name: "CastingTime",
|
|
8
8
|
parameters: [DB.Param("NonModifiable")],
|
|
@@ -134,7 +134,7 @@ const CustomDurationUnit = DB.TypeAlias(import.meta.url, {
|
|
|
134
134
|
comment: "A translation for a numeric value of the custom duration unit, e.g. ‘3 days’. The translation string can and should make use of the `$value` and `$style` variables. The `$style` variable can be either `interval` or `default`.",
|
|
135
135
|
type: DB.String({
|
|
136
136
|
minLength: 1,
|
|
137
|
-
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}
|
|
137
|
+
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}/u,
|
|
138
138
|
}),
|
|
139
139
|
}),
|
|
140
140
|
full: DB.Required({
|
|
@@ -151,7 +151,7 @@ const CustomDurationUnit = DB.TypeAlias(import.meta.url, {
|
|
|
151
151
|
comment: "A translation for a numeric value of the custom duration unit for use in small spaces, e.g. ‘3 d.’. The translation string can and should make use of the `$value` and `$style` variables. The `$style` variable can be either `interval` or `default`.",
|
|
152
152
|
type: DB.String({
|
|
153
153
|
minLength: 1,
|
|
154
|
-
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}
|
|
154
|
+
pattern: /^\.input \{\$value :number\}[\n ]\.input \{\$style :string\}/u,
|
|
155
155
|
}),
|
|
156
156
|
}),
|
|
157
157
|
compressed: DB.Required({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { TargetCategoryIdentifier } from "./_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
4
4
|
export const AffectedTargetCategories = DB.TypeAlias(import.meta.url, {
|
|
5
5
|
name: "AffectedTargetCategories",
|
|
6
6
|
comment: `The target category – the kind of creature or object – the skill affects.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
3
2
|
import { ArcaneTraditionPrerequisites } from "./_Prerequisite.js";
|
|
3
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
4
4
|
export const ArcaneTraditionType = (translationName) => () => DB.Object({
|
|
5
5
|
prerequisites: DB.Required({
|
|
6
6
|
type: DB.IncludeIdentifier(ArcaneTraditionPrerequisites),
|
|
@@ -8,7 +8,8 @@ export declare const CommonnessRatedAdvantageDisadvantage: DB.TypeAlias<"Commonn
|
|
|
8
8
|
max: DB.MemberDecl<DB.Integer, true>;
|
|
9
9
|
}>>;
|
|
10
10
|
}, []>>, false>;
|
|
11
|
-
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"
|
|
11
|
+
options: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
12
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
12
13
|
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
13
14
|
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
14
15
|
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
+
import { CommonnessSelectOptionIdentifier } from "./_IdentifierGroup.js";
|
|
2
3
|
import { NestedTranslationMap } from "./Locale.js";
|
|
3
|
-
import { RequirableSelectOptionIdentifier } from "./_IdentifierGroup.js";
|
|
4
4
|
export const CommonnessRatedAdvantageDisadvantage = DB.GenTypeAlias(import.meta.url, {
|
|
5
5
|
name: "CommonnessRatedAdvantageDisadvantage",
|
|
6
6
|
comment: "Reference to a commonness-rated advantage or disadvantage. Commonness-rating terms used in the source books are strongly recommended, common, uncommon, suggested and unsuitable.",
|
|
@@ -16,7 +16,7 @@ export const CommonnessRatedAdvantageDisadvantage = DB.GenTypeAlias(import.meta.
|
|
|
16
16
|
}),
|
|
17
17
|
options: DB.Optional({
|
|
18
18
|
comment: "The options the commonness rating applies to.",
|
|
19
|
-
type: DB.Array(DB.IncludeIdentifier(
|
|
19
|
+
type: DB.Array(DB.IncludeIdentifier(CommonnessSelectOptionIdentifier), { minItems: 1 }),
|
|
20
20
|
}),
|
|
21
21
|
translations: NestedTranslationMap(DB.Optional, "CommonnessRatedAdvantageDisadvantage", DB.Object({
|
|
22
22
|
options: DB.Optional({
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { isNotNullish, nullableToArray } from "@elyukai/utils/nullable";
|
|
5
5
|
import * as DB from "tsondb/schema/dsl";
|
|
6
|
-
import { NestedTranslationMap } from "./Locale.js";
|
|
7
6
|
import { AlternativeName } from "./_AlternativeNames.js";
|
|
8
7
|
import { DerivedCharacteristicIdentifier } from "./_Identifier.js";
|
|
8
|
+
import { NestedTranslationMap } from "./Locale.js";
|
|
9
9
|
import { Errata } from "./source/_Erratum.js";
|
|
10
10
|
export const level = DB.Required({
|
|
11
11
|
comment: "The disease’s level.",
|
|
@@ -27,6 +27,7 @@ export declare const BannzeichenOptionIdentifier: () => R;
|
|
|
27
27
|
export declare const BeutelzauberIdentifier: () => R;
|
|
28
28
|
export declare const BiomeIdentifier: () => R;
|
|
29
29
|
export declare const BlessedTraditionIdentifier: () => R;
|
|
30
|
+
export declare const BlessedTraditionGroupIdentifier: () => R;
|
|
30
31
|
export declare const BlessingIdentifier: () => R;
|
|
31
32
|
export declare const BookIdentifier: () => R;
|
|
32
33
|
export declare const BowlEnchantmentIdentifier: () => R;
|
package/lib/types/_Identifier.js
CHANGED
|
@@ -128,6 +128,7 @@ import { Sermon } from "./specialAbility/Sermon.js";
|
|
|
128
128
|
import { SexSpecialAbility } from "./specialAbility/SexSpecialAbility.js";
|
|
129
129
|
import { SikaryanDrainSpecialAbility } from "./specialAbility/SikaryanDrainSpecialAbility.js";
|
|
130
130
|
import { SkillStyleSpecialAbility } from "./specialAbility/SkillStyleSpecialAbility.js";
|
|
131
|
+
import { BlessedTraditionGroup } from "./specialAbility/sub/BlessedTraditionGroup.js";
|
|
131
132
|
import { CeremonialItemSpecialAbilityGroup } from "./specialAbility/sub/CeremonialItemSpecialAbilityGroup.js";
|
|
132
133
|
import { Language, LanguageSpecialization } from "./specialAbility/sub/Language.js";
|
|
133
134
|
import { MagicalTraditionSubgroup } from "./specialAbility/sub/MagicalTraditionSubgroup.js";
|
|
@@ -194,6 +195,7 @@ export const BannzeichenOptionIdentifier = () => R(BannzeichenOption);
|
|
|
194
195
|
export const BeutelzauberIdentifier = () => R(Beutelzauber);
|
|
195
196
|
export const BiomeIdentifier = () => R(Biome);
|
|
196
197
|
export const BlessedTraditionIdentifier = () => R(BlessedTradition);
|
|
198
|
+
export const BlessedTraditionGroupIdentifier = () => R(BlessedTraditionGroup);
|
|
197
199
|
export const BlessingIdentifier = () => R(Blessing);
|
|
198
200
|
export const BookIdentifier = () => R(Book);
|
|
199
201
|
export const BowlEnchantmentIdentifier = () => R(BowlEnchantment);
|
|
@@ -402,6 +402,29 @@ export declare const RequirableSelectOptionIdentifier: DB.Enum<"RequirableSelect
|
|
|
402
402
|
ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
403
403
|
Element: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
404
404
|
}, []>;
|
|
405
|
+
export declare const CommonnessSelectOptionIdentifier: DB.Enum<"CommonnessSelectOptionIdentifier", {
|
|
406
|
+
SkillGroup: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
407
|
+
General: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
408
|
+
Race: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
409
|
+
Skill: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
410
|
+
SkillApplication: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
411
|
+
CloseCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
412
|
+
RangedCombatTechnique: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
413
|
+
Property: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
414
|
+
Aspect: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
415
|
+
Disease: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
416
|
+
Poison: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
417
|
+
Language: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
418
|
+
AnimalShape: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
419
|
+
LiturgicalChant: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
420
|
+
Ceremony: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
421
|
+
Spell: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
422
|
+
Ritual: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
423
|
+
TradeSecret: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
424
|
+
ArcaneBardTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
425
|
+
ArcaneDancerTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
426
|
+
Element: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
427
|
+
}, []>;
|
|
405
428
|
export declare const CoreRuleDerivableContentIdentifier: DB.Enum<"CoreRuleDerivableContentIdentifier", {
|
|
406
429
|
MagicalTradition: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
407
430
|
FamiliarSpecialAbility: DB.EnumCase<DB.ReferenceIdentifier>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { sortObjectKeys } from "@elyukai/utils/object";
|
|
2
2
|
import * as DB from "tsondb/schema/dsl";
|
|
3
|
-
import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BannzeichenIdentifier, BeutelzauberIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EnhancementIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, GoblinRitualIdentifier, HaubenzauberIdentifier, HauerkettenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KeulenzauberIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, NewspaperIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, SchweinetrommelzauberIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, WorkingSupernaturalCreatureIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
|
|
3
|
+
import { AdvancedCombatSpecialAbilityIdentifier, AdvancedKarmaSpecialAbilityIdentifier, AdvancedMagicalSpecialAbilityIdentifier, AdvancedSkillSpecialAbilityIdentifier, AdvantageIdentifier, AmmunitionIdentifier, AncestorGlyphIdentifier, AnimalCareIdentifier, AnimalIdentifier, AnimalShapeIdentifier, AnimalShapeSizeIdentifier, AnimistPowerIdentifier, ArcaneBardTraditionIdentifier, ArcaneDancerTraditionIdentifier, ArcaneOrbEnchantmentIdentifier, ArmorIdentifier, AspectIdentifier, AttireEnchantmentIdentifier, AttributeIdentifier, BandageOrRemedyIdentifier, BannzeichenIdentifier, BeutelzauberIdentifier, BlessedTraditionIdentifier, BlessingIdentifier, BookIdentifier, BowlEnchantmentIdentifier, BrawlingSpecialAbilityIdentifier, CantripIdentifier, CauldronEnchantmentIdentifier, CeremonialItemIdentifier, CeremonialItemSpecialAbilityIdentifier, CeremonyIdentifier, ChronicleEnchantmentIdentifier, CloseCombatTechniqueIdentifier, ClothesIdentifier, ClothingPackageIdentifier, CombatSpecialAbilityIdentifier, CombatStyleSpecialAbilityIdentifier, CommandSpecialAbilityIdentifier, ContainerIdentifier, CultureIdentifier, CurseIdentifier, DaggerRitualIdentifier, DisadvantageIdentifier, DiseaseIdentifier, DominationRitualIdentifier, ElementIdentifier, ElixirIdentifier, ElvenMagicalSongIdentifier, EnhancementIdentifier, EquipmentOfBlessedOnesIdentifier, FamiliarSpecialAbilityIdentifier, FatePointSexSpecialAbilityIdentifier, FatePointSpecialAbilityIdentifier, FocusRuleIdentifier, FoolsHatEnchantmentIdentifier, GemOrPreciousStoneIdentifier, GeneralIdentifier, GeneralSpecialAbilityIdentifier, GeodeRitualIdentifier, GoblinRitualIdentifier, HaubenzauberIdentifier, HauerkettenzauberIdentifier, IlluminationLightSourceIdentifier, IlluminationRefillOrSupplyIdentifier, InstrumentEnchantmentIdentifier, JesterTrickIdentifier, JewelryIdentifier, KarmaSpecialAbilityIdentifier, KeulenzauberIdentifier, KrallenkettenzauberIdentifier, KristallkugelzauberIdentifier, LaboratoryIdentifier, LanguageIdentifier, LiebesspielzeugIdentifier, LiturgicalChantIdentifier, LiturgicalStyleSpecialAbilityIdentifier, LuxuryGoodIdentifier, LycantropicGiftIdentifier, MagicalArtifactIdentifier, MagicalDanceIdentifier, MagicalMelodyIdentifier, MagicalRuneIdentifier, MagicalSignIdentifier, MagicalSpecialAbilityIdentifier, MagicalTraditionIdentifier, MagicStyleSpecialAbilityIdentifier, MusicalInstrumentIdentifier, NewspaperIdentifier, OptionalRuleIdentifier, OrbEnchantmentIdentifier, OrienteeringAidIdentifier, PactGiftIdentifier, PatronIdentifier, PoisonIdentifier, PropertyIdentifier, ProtectiveWardingCircleSpecialAbilityIdentifier, RaceIdentifier, RangedCombatTechniqueIdentifier, RingEnchantmentIdentifier, RitualIdentifier, RopeOrChainIdentifier, SchweinetrommelzauberIdentifier, ScriptIdentifier, SermonIdentifier, SexPracticeIdentifier, SexSpecialAbilityIdentifier, SickleRitualIdentifier, SikaryanDrainSpecialAbilityIdentifier, SkillApplicationIdentifier, SkillGroupIdentifier, SkillIdentifier, SkillStyleSpecialAbilityIdentifier, SpellIdentifier, SpellSwordEnchantmentIdentifier, StaffEnchantmentIdentifier, StationeryIdentifier, TargetCategoryIdentifier, ThievesToolIdentifier, ToolOfTheTradeIdentifier, ToyEnchantmentIdentifier, TradeSecretIdentifier, TravelGearOrToolIdentifier, TrinkhornzauberIdentifier, VampiricGiftIdentifier, VehicleIdentifier, VisionIdentifier, WandEnchantmentIdentifier, WeaponAccessoryIdentifier, WeaponEnchantmentIdentifier, WeaponIdentifier, WorkingSupernaturalCreatureIdentifier, ZibiljaRitualIdentifier, } from "./_Identifier.js";
|
|
4
4
|
export const ActivatableIdentifier = DB.Enum(import.meta.url, {
|
|
5
5
|
name: "ActivatableIdentifier",
|
|
6
6
|
values: () => ({
|
|
@@ -286,6 +286,14 @@ export const RequirableSelectOptionIdentifier = DB.Enum(import.meta.url, {
|
|
|
286
286
|
Element: DB.EnumCase({ type: ElementIdentifier() }),
|
|
287
287
|
}),
|
|
288
288
|
});
|
|
289
|
+
export const CommonnessSelectOptionIdentifier = DB.Enum(import.meta.url, {
|
|
290
|
+
name: "CommonnessSelectOptionIdentifier",
|
|
291
|
+
comment: "A skill group can be chosen as an option for commonness-rated advantages and disadvantages, but it refers to all skills within that group, rather than being a select option itself.",
|
|
292
|
+
values: () => ({
|
|
293
|
+
...RequirableSelectOptionIdentifier.type.value.values,
|
|
294
|
+
SkillGroup: DB.EnumCase({ type: SkillGroupIdentifier() }),
|
|
295
|
+
}),
|
|
296
|
+
});
|
|
289
297
|
export const CoreRuleDerivableContentIdentifier = DB.Enum(import.meta.url, {
|
|
290
298
|
name: "CoreRuleDerivableContentIdentifier",
|
|
291
299
|
values: () => ({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @
|
|
2
|
+
* @module Prerequisites
|
|
3
3
|
*/
|
|
4
4
|
import * as DB from "tsondb/schema/dsl";
|
|
5
5
|
export declare const RulePrerequisites: DB.TypeAlias<"RulePrerequisites", DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.TypeAlias<"PlainPrerequisites", DB.Array<DB.IncludeIdentifier<DB.Param<string, DB.Type>[], DB.Enum<"PrerequisitesElement", {
|
|
@@ -36,11 +36,11 @@ export const ResponsiveTextReplace = DB.TypeAlias(import.meta.url, {
|
|
|
36
36
|
type: () => DB.Object({
|
|
37
37
|
full: DB.Required({
|
|
38
38
|
comment: "The full replacement string. It must contain `$1`, which is going to be replaced with the generated string, so additional information can be provided without duplicating concrete numeric values.",
|
|
39
|
-
type: DB.String({ minLength: 1, pattern: /\$1/ }),
|
|
39
|
+
type: DB.String({ minLength: 1, pattern: /\$1/u }),
|
|
40
40
|
}),
|
|
41
41
|
compressed: DB.Required({
|
|
42
42
|
comment: "A compressed replacement string for use in small areas (e.g. on character sheet). It must contain `$1`, which is going to be replaced with the generated string, so additional information can be provided without duplicating concrete numeric values.",
|
|
43
|
-
type: DB.String({ minLength: 1, pattern: /\$1/ }),
|
|
43
|
+
type: DB.String({ minLength: 1, pattern: /\$1/u }),
|
|
44
44
|
}),
|
|
45
45
|
}),
|
|
46
46
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../../Locale.js";
|
|
3
2
|
import { AlternativeName } from "../../_AlternativeNames.js";
|
|
3
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
4
4
|
import { Errata } from "../../source/_Erratum.js";
|
|
5
5
|
import { src } from "../../source/_PublicationRef.js";
|
|
6
6
|
import { EffectType, LaboratoryLevel, RecipeTradeSecret } from "./_Herbary.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { src } from "../../source/_PublicationRef.js";
|
|
3
|
-
import { NestedTranslationMap } from "../../Locale.js";
|
|
4
2
|
import { WeaponIdentifier, ArmorIdentifier } from "../../_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
4
|
+
import { src } from "../../source/_PublicationRef.js";
|
|
5
5
|
import { EffectType, RecipeTradeSecret } from "./_Herbary.js";
|
|
6
6
|
import { HerbalPreservationLongevity } from "./HerbalPreservation.js";
|
|
7
7
|
export const HerbalAid = DB.Entity(import.meta.url, {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../../Locale.js";
|
|
3
2
|
import { DurationUnit } from "../../_ActivatableSkillDuration.js";
|
|
4
|
-
import { ResponsiveTextReplace } from "../../_ResponsiveText.js";
|
|
5
3
|
import { Dice } from "../../_Dice.js";
|
|
6
4
|
import { MathOperation } from "../../_MathExpression.js";
|
|
7
|
-
import {
|
|
5
|
+
import { ResponsiveTextReplace } from "../../_ResponsiveText.js";
|
|
6
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
8
7
|
import { src } from "../../source/_PublicationRef.js";
|
|
8
|
+
import { EffectType } from "./_Herbary.js";
|
|
9
9
|
export const HerbalPreservation = DB.Entity(import.meta.url, {
|
|
10
10
|
name: "HerbalPreservation",
|
|
11
11
|
namePlural: "HerbalPreservations",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { src } from "../../source/_PublicationRef.js";
|
|
3
|
-
import { NestedTranslationMap } from "../../Locale.js";
|
|
4
2
|
import { AlternativeName } from "../../_AlternativeNames.js";
|
|
5
3
|
import { BiomeIdentifier, SubBiomeIdentifier, BotanicRegionIdentifier, HerbalAidIdentifier, HerbalPreservationIdentifier, ElixirIdentifier, PoisonIdentifier, } from "../../_Identifier.js";
|
|
6
4
|
import { ResponsiveTextOptional, ResponsiveTextReplace } from "../../_ResponsiveText.js";
|
|
5
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
6
|
+
import { src } from "../../source/_PublicationRef.js";
|
|
7
7
|
import { EffectType, PlantRarity } from "./_Herbary.js";
|
|
8
8
|
export const Plant = DB.Entity(import.meta.url, {
|
|
9
9
|
name: "Plant",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../../Locale.js";
|
|
3
2
|
import { AlternativeName } from "../../_AlternativeNames.js";
|
|
4
3
|
import { Dice } from "../../_Dice.js";
|
|
5
4
|
import { Reduceable, Resistance } from "../../_DiseasePoison.js";
|
|
6
5
|
import { DiseaseIdentifier } from "../../_Identifier.js";
|
|
7
6
|
import { MathOperation } from "../../_MathExpression.js";
|
|
7
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
8
8
|
import { Errata } from "../../source/_Erratum.js";
|
|
9
9
|
import { src } from "../../source/_PublicationRef.js";
|
|
10
10
|
import { EffectType, LaboratoryLevel, RecipeComplexity, RecipeTradeSecret } from "./_Herbary.js";
|
|
@@ -109,7 +109,7 @@ export const Cost = DB.Enum(import.meta.url, {
|
|
|
109
109
|
});
|
|
110
110
|
const wrap_in_text = DB.Required({
|
|
111
111
|
comment: "The cost get wrapped by this text using a placeholder in the text.",
|
|
112
|
-
type: DB.String({ minLength: 1, pattern: /\{0\}/ }),
|
|
112
|
+
type: DB.String({ minLength: 1, pattern: /\{0\}/u }),
|
|
113
113
|
});
|
|
114
114
|
const InvaluableCost = DB.TypeAlias(import.meta.url, {
|
|
115
115
|
name: "InvaluableCost",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../../../Locale.js";
|
|
3
2
|
import { SubBiomeIdentifier } from "../../../_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "../../../Locale.js";
|
|
4
4
|
export const BotanicRegion = DB.Entity(import.meta.url, {
|
|
5
5
|
name: "BotanicRegion",
|
|
6
6
|
namePlural: "BotanicRegions",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../../../Locale.js";
|
|
3
2
|
import { BiomeIdentifier } from "../../../_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "../../../Locale.js";
|
|
4
4
|
import { BotanicRegion } from "./BotanicRegion.js";
|
|
5
5
|
export const SubBiome = DB.Entity(import.meta.url, {
|
|
6
6
|
name: "SubBiome",
|
package/lib/types/index.d.ts
CHANGED
|
@@ -132,6 +132,7 @@ export { Sermon } from "./specialAbility/Sermon.js";
|
|
|
132
132
|
export { SexSpecialAbility } from "./specialAbility/SexSpecialAbility.js";
|
|
133
133
|
export { SikaryanDrainSpecialAbility } from "./specialAbility/SikaryanDrainSpecialAbility.js";
|
|
134
134
|
export { SkillStyleSpecialAbility } from "./specialAbility/SkillStyleSpecialAbility.js";
|
|
135
|
+
export { BlessedTraditionGroup } from "./specialAbility/sub/BlessedTraditionGroup.ts";
|
|
135
136
|
export { CeremonialItemSpecialAbilityGroup } from "./specialAbility/sub/CeremonialItemSpecialAbilityGroup.js";
|
|
136
137
|
export { Language } from "./specialAbility/sub/Language.js";
|
|
137
138
|
export { MagicalTraditionSubgroup } from "./specialAbility/sub/MagicalTraditionSubgroup.ts";
|
package/lib/types/index.js
CHANGED
|
@@ -132,6 +132,7 @@ export { Sermon } from "./specialAbility/Sermon.js";
|
|
|
132
132
|
export { SexSpecialAbility } from "./specialAbility/SexSpecialAbility.js";
|
|
133
133
|
export { SikaryanDrainSpecialAbility } from "./specialAbility/SikaryanDrainSpecialAbility.js";
|
|
134
134
|
export { SkillStyleSpecialAbility } from "./specialAbility/SkillStyleSpecialAbility.js";
|
|
135
|
+
export { BlessedTraditionGroup } from "./specialAbility/sub/BlessedTraditionGroup.js";
|
|
135
136
|
export { CeremonialItemSpecialAbilityGroup } from "./specialAbility/sub/CeremonialItemSpecialAbilityGroup.js";
|
|
136
137
|
export { Language } from "./specialAbility/sub/Language.js";
|
|
137
138
|
export { MagicalTraditionSubgroup } from "./specialAbility/sub/MagicalTraditionSubgroup.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../Locale.js";
|
|
3
2
|
import { TribePrerequisites } from "../_Prerequisite.js";
|
|
3
|
+
import { NestedTranslationMap } from "../Locale.js";
|
|
4
4
|
export const Tribe = DB.Entity(import.meta.url, {
|
|
5
5
|
name: "Tribe",
|
|
6
6
|
namePlural: "Tribes",
|
|
@@ -43,9 +43,9 @@ export declare const MagicalDance: DB.Entity<"MagicalDance", {
|
|
|
43
43
|
}, []>>, true>;
|
|
44
44
|
}>, []>>, true>;
|
|
45
45
|
property: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
46
|
-
music_tradition: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias
|
|
46
|
+
music_tradition: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<`${string}Reference`, DB.Object<{
|
|
47
47
|
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
48
|
-
translations: DB.MemberDecl<DB.NestedEntityMap<`${string}
|
|
48
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<`${string}ReferenceTranslationTranslation`, {
|
|
49
49
|
name: DB.MemberDecl<DB.String, true>;
|
|
50
50
|
}>, true>;
|
|
51
51
|
}>, []>>>, true>;
|
|
@@ -63,9 +63,9 @@ export declare const MagicalMelody: DB.Entity<"MagicalMelody", {
|
|
|
63
63
|
}, []>>, true>;
|
|
64
64
|
}>, []>>, true>;
|
|
65
65
|
property: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
66
|
-
music_tradition: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias
|
|
66
|
+
music_tradition: DB.MemberDecl<DB.Array<DB.IncludeIdentifier<[], DB.TypeAlias<`${string}Reference`, DB.Object<{
|
|
67
67
|
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
68
|
-
translations: DB.MemberDecl<DB.NestedEntityMap<`${string}
|
|
68
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<`${string}ReferenceTranslationTranslation`, {
|
|
69
69
|
name: DB.MemberDecl<DB.String, true>;
|
|
70
70
|
}>, true>;
|
|
71
71
|
}>, []>>>, true>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
export declare const MusicTraditionReference: (traditionIdentifier: DB.ReferenceIdentifier) => DB.TypeAlias
|
|
2
|
+
export declare const MusicTraditionReference: (traditionIdentifier: DB.ReferenceIdentifier) => DB.TypeAlias<`${string}Reference`, DB.Object<{
|
|
3
3
|
id: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
4
|
-
translations: DB.MemberDecl<DB.NestedEntityMap<`${string}
|
|
4
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<`${string}ReferenceTranslationTranslation`, {
|
|
5
5
|
name: DB.MemberDecl<DB.String, true>;
|
|
6
6
|
}>, true>;
|
|
7
7
|
}>, []>;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
2
|
import { NestedTranslationMap } from "../Locale.js";
|
|
3
3
|
export const MusicTraditionReference = (traditionIdentifier) => DB.TypeAlias(import.meta.url, {
|
|
4
|
-
name: traditionIdentifier.entity.name
|
|
4
|
+
name: `${traditionIdentifier.entity.name}Reference`,
|
|
5
5
|
comment: "A reference to a music tradition with the music-tradition-specific name of the entry.",
|
|
6
6
|
type: () => DB.Object({
|
|
7
7
|
id: DB.Required({
|
|
8
8
|
comment: "The music tradition’s identifier.",
|
|
9
9
|
type: traditionIdentifier,
|
|
10
10
|
}),
|
|
11
|
-
translations: NestedTranslationMap(DB.Required, traditionIdentifier.entity.name
|
|
11
|
+
translations: NestedTranslationMap(DB.Required, `${traditionIdentifier.entity.name}ReferenceTranslation`, DB.Object({
|
|
12
12
|
name: DB.Required({
|
|
13
13
|
comment: "The music-tradition-specific name of the entry.",
|
|
14
14
|
type: DB.String({ minLength: 1 }),
|
|
@@ -94,15 +94,13 @@ export const ProfessionPrerequisiteGroup = DB.Enum(import.meta.url, {
|
|
|
94
94
|
});
|
|
95
95
|
export const AdvantageDisadvantagePrerequisiteGroup = DB.Enum(import.meta.url, {
|
|
96
96
|
name: "AdvantageDisadvantagePrerequisiteGroup",
|
|
97
|
-
values: () => {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
};
|
|
105
|
-
},
|
|
97
|
+
values: () => ({
|
|
98
|
+
CommonSuggestedByRCP: DB.EnumCase({ type: null }),
|
|
99
|
+
NoOtherAncestorBloodAdvantage: DB.EnumCase({
|
|
100
|
+
type: AncestorBloodPrerequisite,
|
|
101
|
+
}),
|
|
102
|
+
...GeneralPrerequisiteGroup.type.value.values,
|
|
103
|
+
}),
|
|
106
104
|
});
|
|
107
105
|
export const ArcaneTraditionPrerequisiteGroup = DB.Enum(import.meta.url, {
|
|
108
106
|
name: "ArcaneTraditionPrerequisiteGroup",
|
|
@@ -14,10 +14,8 @@ export const AnySpecialAbilityOfGroupPrerequisite = DB.TypeAlias(import.meta.url
|
|
|
14
14
|
});
|
|
15
15
|
const SpecialAbilityGroup = DB.Enum(import.meta.url, {
|
|
16
16
|
name: "SpecialAbilityGroup",
|
|
17
|
-
values: () => (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
])),
|
|
22
|
-
}),
|
|
17
|
+
values: () => Object.fromEntries(Object.keys(SpecialAbilityIdentifier.type.value.values).map(entity => [
|
|
18
|
+
entity,
|
|
19
|
+
DB.EnumCase({ type: null }),
|
|
20
|
+
])),
|
|
23
21
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../Locale.js";
|
|
3
2
|
import { PublicationPrerequisites } from "../_Prerequisite.js";
|
|
3
|
+
import { NestedTranslationMap } from "../Locale.js";
|
|
4
4
|
export const Publication = DB.Entity(import.meta.url, {
|
|
5
5
|
name: "Publication",
|
|
6
6
|
namePlural: "Publications",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
2
|
export declare const BlessedTradition: DB.Entity<"BlessedTradition", {
|
|
3
|
+
group: DB.MemberDecl<DB.ReferenceIdentifier, true>;
|
|
3
4
|
select_options: DB.MemberDecl<DB.IncludeIdentifier<[], DB.TypeAlias<"SelectOptions", DB.Object<{
|
|
4
5
|
derived: DB.MemberDecl<DB.IncludeIdentifier<[], DB.Enum<"SelectOptionCategory", {
|
|
5
6
|
Blessings: DB.EnumCase<null>;
|
|
@@ -4,7 +4,7 @@ import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventu
|
|
|
4
4
|
import { activatableDisplayNameCustomizer } from "../_ActivatableNames.js";
|
|
5
5
|
import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
|
|
6
6
|
import { skill_applications, skill_uses } from "../_ActivatableSkillApplicationsAndUses.js";
|
|
7
|
-
import { AspectIdentifier, AttributeIdentifier, BlessingIdentifier, GeneralIdentifier, SkillIdentifier, } from "../_Identifier.js";
|
|
7
|
+
import { AspectIdentifier, AttributeIdentifier, BlessedTraditionGroupIdentifier, BlessingIdentifier, GeneralIdentifier, SkillIdentifier, } from "../_Identifier.js";
|
|
8
8
|
import { CombatTechniqueIdentifier } from "../_IdentifierGroup.js";
|
|
9
9
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
10
10
|
import { NestedTranslationMap } from "../Locale.js";
|
|
@@ -15,6 +15,10 @@ export const BlessedTradition = DB.Entity(import.meta.url, {
|
|
|
15
15
|
name: "BlessedTradition",
|
|
16
16
|
namePlural: "BlessedTraditions",
|
|
17
17
|
type: () => DB.Object({
|
|
18
|
+
group: DB.Required({
|
|
19
|
+
comment: "The group of traditions this tradition belongs to.",
|
|
20
|
+
type: BlessedTraditionGroupIdentifier(),
|
|
21
|
+
}),
|
|
18
22
|
select_options,
|
|
19
23
|
explicit_select_options,
|
|
20
24
|
skill_applications,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as DB from "tsondb/schema/dsl";
|
|
2
|
+
export declare const BlessedTraditionGroup: DB.Entity<"BlessedTraditionGroup", {
|
|
3
|
+
translations: DB.MemberDecl<DB.NestedEntityMap<"BlessedTraditionGroupTranslation", {
|
|
4
|
+
name: DB.MemberDecl<DB.String, true>;
|
|
5
|
+
nameInCulture: DB.MemberDecl<DB.String, true>;
|
|
6
|
+
}>, true>;
|
|
7
|
+
}, undefined>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as DB from "tsondb/schema/dsl";
|
|
2
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
3
|
+
export const BlessedTraditionGroup = DB.Entity(import.meta.url, {
|
|
4
|
+
name: "BlessedTraditionGroup",
|
|
5
|
+
namePlural: "BlessedTraditionGroup",
|
|
6
|
+
type: () => DB.Object({
|
|
7
|
+
translations: NestedTranslationMap(DB.Required, "BlessedTraditionGroup", DB.Object({
|
|
8
|
+
name: DB.Required({
|
|
9
|
+
comment: "The name of the group.",
|
|
10
|
+
type: DB.String({ minLength: 1 }),
|
|
11
|
+
}),
|
|
12
|
+
nameInCulture: DB.Required({
|
|
13
|
+
comment: "The text to use when all Blessed Ones of this group are recommended for a culture.",
|
|
14
|
+
type: DB.String({ minLength: 1 }),
|
|
15
|
+
}),
|
|
16
|
+
})),
|
|
17
|
+
}),
|
|
18
|
+
instanceDisplayName: {},
|
|
19
|
+
uniqueConstraints: [
|
|
20
|
+
{
|
|
21
|
+
entityMapKeyPath: "translations",
|
|
22
|
+
keyPathInEntityMap: "name",
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as DB from "tsondb/schema/dsl";
|
|
2
|
-
import { NestedTranslationMap } from "../../Locale.js";
|
|
3
2
|
import { MagicalTraditionIdentifier } from "../../_Identifier.js";
|
|
3
|
+
import { NestedTranslationMap } from "../../Locale.js";
|
|
4
4
|
export const MagicalTraditionSubgroup = DB.Entity(import.meta.url, {
|
|
5
5
|
name: "MagicalTraditionSubgroup",
|
|
6
6
|
namePlural: "MagicalTraditionSubgroups",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { omitUndefinedKeys } from "@elyukai/utils/object";
|
|
2
2
|
import * as DB from "tsondb/schema/dsl";
|
|
3
|
-
import { NestedTranslationMap } from "../Locale.js";
|
|
4
3
|
import { effect, levels, maximum, name, name_in_library } from "../_Activatable.js";
|
|
5
4
|
import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
|
|
6
5
|
import { nameBuilderRules } from "../_ActivatableNames.js";
|
|
7
6
|
import { aeCost, bindingCost, cost, cost_note, property, volume, volume_l10n, } from "../_ActivatableNonMundane.js";
|
|
8
7
|
import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
|
|
9
8
|
import { GeneralPrerequisites } from "../_Prerequisite.js";
|
|
9
|
+
import { NestedTranslationMap } from "../Locale.js";
|
|
10
10
|
import { Errata } from "../source/_Erratum.js";
|
|
11
11
|
import { src } from "../source/_PublicationRef.js";
|
|
12
12
|
export const full = (options) => DB.Entity(import.meta.url, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optolith/database-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.90.1",
|
|
4
4
|
"description": "Definitions and utilities for the flat-file database of Optolith, a character creation tool for the Pen and Paper RPG “The Dark Eye 5”, and its external integrations into other software.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tde",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"generate": "tsondb generate",
|
|
30
30
|
"generate:watch": "nodemon --watch lib --exec \"tsondb generate\" --ext js",
|
|
31
31
|
"test": "node ./lib/test.js",
|
|
32
|
-
"lint": "
|
|
33
|
-
"format": "
|
|
34
|
-
"format:check": "
|
|
32
|
+
"lint": "oxlint",
|
|
33
|
+
"format": "oxfmt \"{src,test}/**/*.{ts,tsx}\"",
|
|
34
|
+
"format:check": "oxfmt \"{src,test}/**/*.{ts,tsx}\" --check",
|
|
35
35
|
"release": "commit-and-tag-version",
|
|
36
36
|
"release:sign": "commit-and-tag-version --sign --signoff"
|
|
37
37
|
},
|
|
@@ -39,20 +39,18 @@
|
|
|
39
39
|
"license": "MPL-2.0",
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@elyukai/utils": "^0.3.6",
|
|
42
|
-
"tsondb": "^0.21.5"
|
|
43
|
-
"yaml": "^2.9.1"
|
|
42
|
+
"tsondb": "^0.21.5"
|
|
44
43
|
},
|
|
45
44
|
"devDependencies": {
|
|
46
|
-
"@
|
|
45
|
+
"@elyukai/oxc-config": "^0.1.0",
|
|
47
46
|
"@types/node": "^26.6.4",
|
|
48
47
|
"commit-and-tag-version": "^13.2.1",
|
|
49
|
-
"eslint": "^10.12.0",
|
|
50
|
-
"globals": "^17.13.0",
|
|
51
48
|
"nodemon": "^3.1.14",
|
|
52
|
-
"
|
|
49
|
+
"oxfmt": "^0.72.0",
|
|
50
|
+
"oxlint": "^1.87.0",
|
|
51
|
+
"oxlint-tsgolint": "^7.0.2003",
|
|
53
52
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
54
|
-
"typescript-7": "npm:typescript@^7.0.2"
|
|
55
|
-
"typescript-eslint": "^8.71.0"
|
|
53
|
+
"typescript-7": "npm:typescript@^7.0.2"
|
|
56
54
|
},
|
|
57
55
|
"repository": "github:Optolith/database-schema",
|
|
58
56
|
"bugs": {
|