optolith-database-schema 0.20.4 → 0.20.6

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.
@@ -2,6 +2,30 @@
2
2
  * @title Prerequisites
3
3
  */
4
4
  import { Array, EnumCase, IncludeIdentifier, Integer, Object, String, TypeAlias, TypeArgument } from "tsondb/schema/def";
5
+ export declare const RulePrerequisites: TypeAlias<"RulePrerequisites", IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], TypeAlias<"PlainPrerequisites", Array<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").EnumDecl<"PrerequisitesElement", {
6
+ Single: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
7
+ Disjunction: EnumCase<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], TypeAlias<"PrerequisitesDisjunction", Object<{
8
+ list: import("tsondb/schema/def").MemberDecl<Array<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
9
+ display_option: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"DisplayOption", {
10
+ Hide: EnumCase<null>;
11
+ ReplaceWith: EnumCase<IncludeIdentifier<[], TypeAlias<"ReplacementDisplayOption", Object<{
12
+ sentence_type: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"SentenceType", {
13
+ Standalone: EnumCase<null>;
14
+ Connected: EnumCase<null>;
15
+ }, []>>, false>;
16
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ReplacementDisplayOptionTranslation", {
17
+ replacement: import("tsondb/schema/def").MemberDecl<String, true>;
18
+ }>, true>;
19
+ }>, []>>>;
20
+ }, []>>, false>;
21
+ }>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
22
+ Group: EnumCase<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], TypeAlias<"PrerequisiteGroup", Object<{
23
+ list: import("tsondb/schema/def").MemberDecl<Array<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
24
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"PrerequisiteGroupTranslation", {
25
+ text: import("tsondb/schema/def").MemberDecl<String, true>;
26
+ }>, true>;
27
+ }>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
28
+ }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, []>;
5
29
  export declare const DerivedCharacteristicPrerequisites: TypeAlias<"DerivedCharacteristicPrerequisites", IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], TypeAlias<"PlainPrerequisites", Array<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").EnumDecl<"PrerequisitesElement", {
6
30
  Single: EnumCase<TypeArgument<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
7
31
  Disjunction: EnumCase<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], TypeAlias<"PrerequisitesDisjunction", Object<{
@@ -4,7 +4,7 @@
4
4
  import { Array, EnumCase, GenEnum, GenIncludeIdentifier, GenTypeAlias, IncludeIdentifier, Integer, Object, Optional, Param, Required, String, TypeAlias, TypeArgument, } from "tsondb/schema/def";
5
5
  import { NestedTranslationMap } from "./Locale.js";
6
6
  import { DisplayOption } from "./prerequisites/DisplayOption.js";
7
- import { AdvantageDisadvantagePrerequisiteGroup, AnimistPowerPrerequisiteGroup, ArcaneTraditionPrerequisiteGroup, DerivedCharacteristicPrerequisiteGroup, EnhancementPrerequisiteGroup, GeneralPrerequisiteGroup, GeodeRitualPrerequisiteGroup, InfluencePrerequisiteGroup, LanguagePrerequisiteGroup, LiturgyPrerequisiteGroup, PersonalityTraitPrerequisiteGroup, ProfessionPrerequisiteGroup, PublicationPrerequisiteGroup, SpellworkPrerequisiteGroup, } from "./prerequisites/PrerequisiteGroups.js";
7
+ import { AdvantageDisadvantagePrerequisiteGroup, AnimistPowerPrerequisiteGroup, ArcaneTraditionPrerequisiteGroup, DerivedCharacteristicPrerequisiteGroup, EnhancementPrerequisiteGroup, GeneralPrerequisiteGroup, GeodeRitualPrerequisiteGroup, InfluencePrerequisiteGroup, LanguagePrerequisiteGroup, LiturgyPrerequisiteGroup, PersonalityTraitPrerequisiteGroup, ProfessionPrerequisiteGroup, PublicationPrerequisiteGroup, RulePrerequisiteGroup, SpellworkPrerequisiteGroup, } from "./prerequisites/PrerequisiteGroups.js";
8
8
  const PrerequisiteGroup = GenTypeAlias(import.meta.url, {
9
9
  name: "PrerequisiteGroup",
10
10
  comment: "A prerequisite group has no influence on validation logic. It serves as a single unit for displaying purposes, where the source uses a prerequisites item that cannot be represented as a single prerequisite.",
@@ -71,6 +71,10 @@ const PrerequisitesForLevels = GenTypeAlias(import.meta.url, {
71
71
  minItems: 1,
72
72
  }),
73
73
  });
74
+ export const RulePrerequisites = TypeAlias(import.meta.url, {
75
+ name: "RulePrerequisites",
76
+ type: () => GenIncludeIdentifier(PlainPrerequisites, [IncludeIdentifier(RulePrerequisiteGroup)]),
77
+ });
74
78
  export const DerivedCharacteristicPrerequisites = TypeAlias(import.meta.url, {
75
79
  name: "DerivedCharacteristicPrerequisites",
76
80
  type: () => GenIncludeIdentifier(PlainPrerequisites, [
@@ -1,4 +1,24 @@
1
1
  import { Enum, EnumCase, IncludeIdentifier } from "tsondb/schema/def";
2
+ export declare const RulePrerequisiteGroup: Enum<"RulePrerequisiteGroup", {
3
+ Rule: EnumCase<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RulePrerequisite", import("tsondb/schema/def").ObjectType<{
4
+ id: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ExtensionRuleIdentifier", {
5
+ FocusRule: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
6
+ OptionalRule: EnumCase<import("tsondb/schema/def").ReferenceIdentifierType>;
7
+ }, []>>, true>;
8
+ display_option: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"DisplayOption", {
9
+ Hide: EnumCase<null>;
10
+ ReplaceWith: EnumCase<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ReplacementDisplayOption", import("tsondb/schema/def").ObjectType<{
11
+ sentence_type: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"SentenceType", {
12
+ Standalone: EnumCase<null>;
13
+ Connected: EnumCase<null>;
14
+ }, []>>, false>;
15
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ReplacementDisplayOptionTranslation", {
16
+ replacement: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").StringType, true>;
17
+ }>, true>;
18
+ }>, []>>>;
19
+ }, []>>, false>;
20
+ }>, []>>>;
21
+ }, []>;
2
22
  export declare const DerivedCharacteristicPrerequisiteGroup: Enum<"DerivedCharacteristicPrerequisiteGroup", {
3
23
  Rule: EnumCase<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RulePrerequisite", import("tsondb/schema/def").ObjectType<{
4
24
  id: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], Enum<"ExtensionRuleIdentifier", {
@@ -19,6 +19,12 @@ import { SocialStatusPrerequisite } from "./single/SocialStatusPrerequisite.js";
19
19
  import { StatePrerequisite } from "./single/StatePrerequisite.js";
20
20
  import { TextPrerequisite } from "./single/TextPrerequisite.js";
21
21
  import { BlessedTraditionPrerequisite, MagicalTraditionPrerequisite, } from "./single/TraditionPrerequisite.js";
22
+ export const RulePrerequisiteGroup = Enum(import.meta.url, {
23
+ name: "RulePrerequisiteGroup",
24
+ values: () => ({
25
+ Rule: EnumCase({ type: IncludeIdentifier(RulePrerequisite) }),
26
+ }),
27
+ });
22
28
  export const DerivedCharacteristicPrerequisiteGroup = Enum(import.meta.url, {
23
29
  name: "DerivedCharacteristicPrerequisiteGroup",
24
30
  values: () => ({
@@ -3,6 +3,30 @@ export declare const FocusRule: Entity<"FocusRule", {
3
3
  subject: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, false>;
4
4
  level: import("tsondb/schema/def").MemberDecl<Integer, true>;
5
5
  isMissingImplementation: import("tsondb/schema/def").MemberDecl<Boolean, true>;
6
+ prerequisites: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RulePrerequisites", IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PlainPrerequisites", import("tsondb/schema/def").ArrayType<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").EnumDecl<"PrerequisitesElement", {
7
+ Single: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
8
+ Disjunction: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PrerequisitesDisjunction", Object<{
9
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
10
+ display_option: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"DisplayOption", {
11
+ Hide: import("tsondb/schema/def").EnumCaseDecl<null>;
12
+ ReplaceWith: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ReplacementDisplayOption", Object<{
13
+ sentence_type: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"SentenceType", {
14
+ Standalone: import("tsondb/schema/def").EnumCaseDecl<null>;
15
+ Connected: import("tsondb/schema/def").EnumCaseDecl<null>;
16
+ }, []>>, false>;
17
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ReplacementDisplayOptionTranslation", {
18
+ replacement: import("tsondb/schema/def").MemberDecl<String, true>;
19
+ }>, true>;
20
+ }>, []>>>;
21
+ }, []>>, false>;
22
+ }>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
23
+ Group: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PrerequisiteGroup", Object<{
24
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
25
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"PrerequisiteGroupTranslation", {
26
+ text: import("tsondb/schema/def").MemberDecl<String, true>;
27
+ }>, true>;
28
+ }>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
29
+ }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, []>>, false>;
6
30
  src: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRefs", import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRef", Object<{
7
31
  id: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
8
32
  occurrences: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
@@ -1,5 +1,6 @@
1
1
  import { Boolean, Entity, IncludeIdentifier, Integer, Object, Optional, Required, String, } from "tsondb/schema/def";
2
2
  import { SubjectIdentifier } from "../_Identifier.js";
3
+ import { RulePrerequisites } from "../_Prerequisite.js";
3
4
  import { NestedTranslationMap } from "../Locale.js";
4
5
  import { Errata } from "../source/_Erratum.js";
5
6
  import { src } from "../source/_PublicationRef.js";
@@ -19,6 +20,9 @@ export const FocusRule = Entity(import.meta.url, {
19
20
  comment: "Has the focus rule not been implemented in Optolith yet? This is also true if the focus rule does not (currently) apply to any Optolith feature.",
20
21
  type: Boolean(),
21
22
  }),
23
+ prerequisites: Optional({
24
+ type: IncludeIdentifier(RulePrerequisites),
25
+ }),
22
26
  src,
23
27
  translations: NestedTranslationMap(Required, "FocusRule", Object({
24
28
  name: Required({
@@ -1,6 +1,30 @@
1
1
  import { Boolean, Entity, IncludeIdentifier, Object, String } from "tsondb/schema/def";
2
2
  export declare const OptionalRule: Entity<"OptionalRule", {
3
3
  isMissingImplementation: import("tsondb/schema/def").MemberDecl<Boolean, true>;
4
+ prerequisites: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"RulePrerequisites", IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PlainPrerequisites", import("tsondb/schema/def").ArrayType<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").EnumDecl<"PrerequisitesElement", {
5
+ Single: import("tsondb/schema/def").EnumCaseDecl<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>;
6
+ Disjunction: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PrerequisitesDisjunction", Object<{
7
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
8
+ display_option: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"DisplayOption", {
9
+ Hide: import("tsondb/schema/def").EnumCaseDecl<null>;
10
+ ReplaceWith: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"ReplacementDisplayOption", Object<{
11
+ sentence_type: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").EnumDecl<"SentenceType", {
12
+ Standalone: import("tsondb/schema/def").EnumCaseDecl<null>;
13
+ Connected: import("tsondb/schema/def").EnumCaseDecl<null>;
14
+ }, []>>, false>;
15
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"ReplacementDisplayOptionTranslation", {
16
+ replacement: import("tsondb/schema/def").MemberDecl<String, true>;
17
+ }>, true>;
18
+ }>, []>>>;
19
+ }, []>>, false>;
20
+ }>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
21
+ Group: import("tsondb/schema/def").EnumCaseDecl<IncludeIdentifier<import("tsondb/schema/def").TypeParameter<string, import("tsondb/schema/def").Type>[], import("tsondb/schema/def").TypeAliasDecl<"PrerequisiteGroup", Object<{
22
+ list: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ArrayType<import("tsondb/schema/def").TypeArgumentType<import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>>>, true>;
23
+ translations: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<"PrerequisiteGroupTranslation", {
24
+ text: import("tsondb/schema/def").MemberDecl<String, true>;
25
+ }>, true>;
26
+ }>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>;
27
+ }, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>>, [T: import("tsondb/schema/def").TypeParameter<"T", import("tsondb/schema/def").Type>]>>, []>>, false>;
4
28
  src: import("tsondb/schema/def").MemberDecl<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRefs", import("tsondb/schema/def").ArrayType<IncludeIdentifier<[], import("tsondb/schema/def").TypeAliasDecl<"PublicationRef", Object<{
5
29
  id: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").ReferenceIdentifierType, true>;
6
30
  occurrences: import("tsondb/schema/def").MemberDecl<import("tsondb/schema/def").NestedEntityMapType<string, {
@@ -1,4 +1,5 @@
1
1
  import { Boolean, Entity, IncludeIdentifier, Object, Optional, Required, String, } from "tsondb/schema/def";
2
+ import { RulePrerequisites } from "../_Prerequisite.js";
2
3
  import { NestedTranslationMap } from "../Locale.js";
3
4
  import { Errata } from "../source/_Erratum.js";
4
5
  import { src } from "../source/_PublicationRef.js";
@@ -10,6 +11,9 @@ export const OptionalRule = Entity(import.meta.url, {
10
11
  comment: "Has the optional rule not been implemented in Optolith yet? This is also true if the optional rule does not (currently) apply to any Optolith feature.",
11
12
  type: Boolean(),
12
13
  }),
14
+ prerequisites: Optional({
15
+ type: IncludeIdentifier(RulePrerequisites),
16
+ }),
13
17
  src,
14
18
  translations: NestedTranslationMap(Required, "OptionalRule", Object({
15
19
  name: Required({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "optolith-database-schema",
3
- "version": "0.20.4",
3
+ "version": "0.20.6",
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",
@@ -38,7 +38,7 @@
38
38
  "license": "MPL-2.0",
39
39
  "dependencies": {
40
40
  "@optolith/helpers": "^0.2.2",
41
- "tsondb": "^0.12.0",
41
+ "tsondb": "^0.12.2",
42
42
  "yaml": "^2.8.1"
43
43
  },
44
44
  "devDependencies": {