@optolith/database-schema 0.78.0 → 0.79.0

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.
Files changed (123) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/gen/types.d.ts +161 -0
  3. package/lib/types/Advantage.d.ts +29 -0
  4. package/lib/types/Advantage.js +2 -1
  5. package/lib/types/Disadvantage.d.ts +29 -0
  6. package/lib/types/Disadvantage.js +2 -1
  7. package/lib/types/_ActivatableSelectOptions.d.ts +930 -1
  8. package/lib/types/_ActivatableSelectOptions.js +138 -117
  9. package/lib/types/equipment/item/EquipmentCategory.d.ts +15 -0
  10. package/lib/types/equipment/item/EquipmentCategory.js +5 -0
  11. package/lib/types/equipment/item/IlluminationLightSource.d.ts +9 -0
  12. package/lib/types/equipment/item/IlluminationLightSource.js +1 -1
  13. package/lib/types/equipment/item/Item.d.ts +9 -0
  14. package/lib/types/equipment/item/Item.js +6 -0
  15. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.d.ts +29 -0
  16. package/lib/types/specialAbility/AdvancedCombatSpecialAbility.js +2 -1
  17. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.d.ts +29 -0
  18. package/lib/types/specialAbility/AdvancedKarmaSpecialAbility.js +2 -1
  19. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.d.ts +29 -0
  20. package/lib/types/specialAbility/AdvancedMagicalSpecialAbility.js +2 -1
  21. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.d.ts +29 -0
  22. package/lib/types/specialAbility/AdvancedSkillSpecialAbility.js +2 -1
  23. package/lib/types/specialAbility/AncestorGlyph.d.ts +29 -0
  24. package/lib/types/specialAbility/AncestorGlyph.js +2 -1
  25. package/lib/types/specialAbility/BlessedTradition.d.ts +29 -0
  26. package/lib/types/specialAbility/BlessedTradition.js +2 -1
  27. package/lib/types/specialAbility/BrawlingSpecialAbility.d.ts +29 -0
  28. package/lib/types/specialAbility/BrawlingSpecialAbility.js +2 -1
  29. package/lib/types/specialAbility/CeremonialItemSpecialAbility.d.ts +29 -0
  30. package/lib/types/specialAbility/CeremonialItemSpecialAbility.js +2 -1
  31. package/lib/types/specialAbility/CombatSpecialAbility.d.ts +29 -0
  32. package/lib/types/specialAbility/CombatSpecialAbility.js +2 -1
  33. package/lib/types/specialAbility/CombatStyleSpecialAbility.d.ts +29 -0
  34. package/lib/types/specialAbility/CombatStyleSpecialAbility.js +3 -2
  35. package/lib/types/specialAbility/CommandSpecialAbility.d.ts +29 -0
  36. package/lib/types/specialAbility/CommandSpecialAbility.js +2 -1
  37. package/lib/types/specialAbility/FamiliarSpecialAbility.d.ts +29 -0
  38. package/lib/types/specialAbility/FamiliarSpecialAbility.js +2 -1
  39. package/lib/types/specialAbility/FatePointSexSpecialAbility.d.ts +29 -0
  40. package/lib/types/specialAbility/FatePointSexSpecialAbility.js +2 -1
  41. package/lib/types/specialAbility/FatePointSpecialAbility.d.ts +29 -0
  42. package/lib/types/specialAbility/FatePointSpecialAbility.js +2 -1
  43. package/lib/types/specialAbility/GeneralSpecialAbility.d.ts +29 -0
  44. package/lib/types/specialAbility/GeneralSpecialAbility.js +2 -1
  45. package/lib/types/specialAbility/KarmaSpecialAbility.d.ts +29 -0
  46. package/lib/types/specialAbility/KarmaSpecialAbility.js +2 -1
  47. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.d.ts +29 -0
  48. package/lib/types/specialAbility/LiturgicalStyleSpecialAbility.js +2 -1
  49. package/lib/types/specialAbility/LycantropicGift.d.ts +29 -0
  50. package/lib/types/specialAbility/LycantropicGift.js +2 -1
  51. package/lib/types/specialAbility/MagicStyleSpecialAbility.d.ts +29 -0
  52. package/lib/types/specialAbility/MagicStyleSpecialAbility.js +2 -1
  53. package/lib/types/specialAbility/MagicalSpecialAbility.d.ts +29 -0
  54. package/lib/types/specialAbility/MagicalSpecialAbility.js +2 -1
  55. package/lib/types/specialAbility/MagicalTradition.d.ts +29 -0
  56. package/lib/types/specialAbility/MagicalTradition.js +2 -1
  57. package/lib/types/specialAbility/PactGift.d.ts +29 -0
  58. package/lib/types/specialAbility/PactGift.js +2 -1
  59. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.d.ts +29 -0
  60. package/lib/types/specialAbility/ProtectiveWardingCircleSpecialAbility.js +2 -1
  61. package/lib/types/specialAbility/Sermon.d.ts +29 -0
  62. package/lib/types/specialAbility/Sermon.js +2 -1
  63. package/lib/types/specialAbility/SexSpecialAbility.d.ts +29 -0
  64. package/lib/types/specialAbility/SexSpecialAbility.js +2 -1
  65. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.d.ts +29 -0
  66. package/lib/types/specialAbility/SikaryanDrainSpecialAbility.js +2 -1
  67. package/lib/types/specialAbility/SkillStyleSpecialAbility.d.ts +29 -0
  68. package/lib/types/specialAbility/SkillStyleSpecialAbility.js +2 -1
  69. package/lib/types/specialAbility/VampiricGift.d.ts +29 -0
  70. package/lib/types/specialAbility/VampiricGift.js +2 -1
  71. package/lib/types/specialAbility/Vision.d.ts +29 -0
  72. package/lib/types/specialAbility/Vision.js +2 -1
  73. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.d.ts +1 -1493
  74. package/lib/types/traditionArtifacts/ArcaneOrbEnchantment.js +2 -34
  75. package/lib/types/traditionArtifacts/AttireEnchantment.d.ts +1 -1493
  76. package/lib/types/traditionArtifacts/AttireEnchantment.js +2 -34
  77. package/lib/types/traditionArtifacts/Beutelzauber.d.ts +1 -1493
  78. package/lib/types/traditionArtifacts/Beutelzauber.js +2 -34
  79. package/lib/types/traditionArtifacts/BowlEnchantment.d.ts +1 -1493
  80. package/lib/types/traditionArtifacts/BowlEnchantment.js +2 -34
  81. package/lib/types/traditionArtifacts/CauldronEnchantment.d.ts +1 -1493
  82. package/lib/types/traditionArtifacts/CauldronEnchantment.js +5 -36
  83. package/lib/types/traditionArtifacts/ChronicleEnchantment.d.ts +1 -1493
  84. package/lib/types/traditionArtifacts/ChronicleEnchantment.js +2 -34
  85. package/lib/types/traditionArtifacts/DaggerRitual.d.ts +1 -1499
  86. package/lib/types/traditionArtifacts/DaggerRitual.js +5 -34
  87. package/lib/types/traditionArtifacts/FoolsHatEnchantment.d.ts +1 -1493
  88. package/lib/types/traditionArtifacts/FoolsHatEnchantment.js +2 -34
  89. package/lib/types/traditionArtifacts/Haubenzauber.d.ts +1 -1493
  90. package/lib/types/traditionArtifacts/Haubenzauber.js +2 -34
  91. package/lib/types/traditionArtifacts/Hauerkettenzauber.d.ts +1 -464
  92. package/lib/types/traditionArtifacts/Hauerkettenzauber.js +2 -31
  93. package/lib/types/traditionArtifacts/InstrumentEnchantment.d.ts +1 -1493
  94. package/lib/types/traditionArtifacts/InstrumentEnchantment.js +2 -34
  95. package/lib/types/traditionArtifacts/Keulenzauber.d.ts +1 -464
  96. package/lib/types/traditionArtifacts/Keulenzauber.js +2 -31
  97. package/lib/types/traditionArtifacts/Krallenkettenzauber.d.ts +1 -1493
  98. package/lib/types/traditionArtifacts/Krallenkettenzauber.js +2 -34
  99. package/lib/types/traditionArtifacts/Kristallkugelzauber.d.ts +1 -1493
  100. package/lib/types/traditionArtifacts/Kristallkugelzauber.js +2 -34
  101. package/lib/types/traditionArtifacts/OrbEnchantment.d.ts +1 -1493
  102. package/lib/types/traditionArtifacts/OrbEnchantment.js +2 -34
  103. package/lib/types/traditionArtifacts/RingEnchantment.d.ts +1 -1493
  104. package/lib/types/traditionArtifacts/RingEnchantment.js +2 -34
  105. package/lib/types/traditionArtifacts/Schweinetrommelzauber.d.ts +1 -464
  106. package/lib/types/traditionArtifacts/Schweinetrommelzauber.js +2 -31
  107. package/lib/types/traditionArtifacts/SickleRitual.d.ts +1 -1493
  108. package/lib/types/traditionArtifacts/SickleRitual.js +2 -34
  109. package/lib/types/traditionArtifacts/SpellSwordEnchantment.d.ts +1 -1493
  110. package/lib/types/traditionArtifacts/SpellSwordEnchantment.js +2 -34
  111. package/lib/types/traditionArtifacts/StaffEnchantment.d.ts +1 -1493
  112. package/lib/types/traditionArtifacts/StaffEnchantment.js +2 -34
  113. package/lib/types/traditionArtifacts/ToyEnchantment.d.ts +1 -1493
  114. package/lib/types/traditionArtifacts/ToyEnchantment.js +2 -34
  115. package/lib/types/traditionArtifacts/Trinkhornzauber.d.ts +1 -1493
  116. package/lib/types/traditionArtifacts/Trinkhornzauber.js +2 -34
  117. package/lib/types/traditionArtifacts/WandEnchantment.d.ts +1 -1455
  118. package/lib/types/traditionArtifacts/WandEnchantment.js +3 -33
  119. package/lib/types/traditionArtifacts/WeaponEnchantment.d.ts +1 -1493
  120. package/lib/types/traditionArtifacts/WeaponEnchantment.js +2 -34
  121. package/lib/types/traditionArtifacts/_shared.d.ts +10 -0
  122. package/lib/types/traditionArtifacts/_shared.js +40 -3
  123. package/package.json +1 -1
@@ -1,37 +1,5 @@
1
- import * as DB from "tsondb/schema/dsl";
2
- import { levels, maximum } from "../_Activatable.js";
3
- import { ap_value } from "../_ActivatableAdventurePointsValue.js";
4
- import { nameBuilderRules } from "../_ActivatableNames.js";
5
- import { cost, property, volume } from "../_ActivatableNonMundane.js";
6
- import { explicit_select_options, select_options } from "../_ActivatableSelectOptions.js";
7
- import { GeneralPrerequisites } from "../_Prerequisite.js";
8
- import { src } from "../source/_PublicationRef.js";
9
- import { translations } from "./_shared.js";
10
- export const WeaponEnchantment = DB.Entity(import.meta.url, {
1
+ import { full } from "./_shared.js";
2
+ export const WeaponEnchantment = full({
11
3
  name: "WeaponEnchantment",
12
4
  namePlural: "WeaponEnchantments",
13
- type: () => DB.Object({
14
- levels,
15
- nameBuilderRules,
16
- select_options,
17
- explicit_select_options,
18
- maximum,
19
- prerequisites: DB.Optional({
20
- type: DB.IncludeIdentifier(GeneralPrerequisites),
21
- }),
22
- volume,
23
- cost,
24
- property: property(),
25
- ap_value,
26
- src,
27
- translations: translations("WeaponEnchantment"),
28
- }),
29
- instanceDisplayName: {},
30
- uniqueConstraints: [
31
- {
32
- entityMapKeyPath: "translations",
33
- keyPathInEntityMap: "name_in_library",
34
- keyPathInEntityMapFallback: "name",
35
- },
36
- ],
37
5
  });
@@ -1,4 +1,14 @@
1
1
  import * as DB from "tsondb/schema/dsl";
2
+ import type { TraditionArtifactEnchantmentIdentifier } from "../_IdentifierGroup.ts";
3
+ export declare const full: <T extends keyof (typeof TraditionArtifactEnchantmentIdentifier)["type"]["value"]["values"]>(options: {
4
+ name: T;
5
+ namePlural: string;
6
+ displayName?: string;
7
+ displayNamePlural?: string;
8
+ cost?: () => DB.MemberDecl;
9
+ brew?: () => DB.MemberDecl;
10
+ volume?: false;
11
+ }) => DB.Entity<T, Record<string, DB.MemberDecl<DB.Type, boolean>>, undefined>;
2
12
  export declare const translations: <T extends string>(entity: T) => DB.MemberDecl<DB.NestedEntityMap<`${T}Translation`, {
3
13
  name: DB.MemberDecl<DB.String, true>;
4
14
  name_in_library: DB.MemberDecl<DB.String, false>;
@@ -1,9 +1,46 @@
1
+ import { omitUndefinedKeys } from "@elyukai/utils/object";
1
2
  import * as DB from "tsondb/schema/dsl";
2
3
  import { NestedTranslationMap } from "../Locale.js";
3
- import { effect, name, name_in_library } from "../_Activatable.js";
4
- import { ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
5
- import { aeCost, bindingCost, cost_note, volume_l10n } from "../_ActivatableNonMundane.js";
4
+ import { effect, levels, maximum, name, name_in_library } from "../_Activatable.js";
5
+ import { ap_value, ap_value_append, ap_value_l10n } from "../_ActivatableAdventurePointsValue.js";
6
+ import { nameBuilderRules } from "../_ActivatableNames.js";
7
+ import { aeCost, bindingCost, cost, cost_note, property, volume, volume_l10n, } from "../_ActivatableNonMundane.js";
8
+ import { explicit_select_options, select_options, verifySelectOptionRules, } from "../_ActivatableSelectOptions.js";
9
+ import { GeneralPrerequisites } from "../_Prerequisite.js";
6
10
  import { Errata } from "../source/_Erratum.js";
11
+ import { src } from "../source/_PublicationRef.js";
12
+ export const full = (options) => DB.Entity(import.meta.url, {
13
+ name: options.name,
14
+ namePlural: options.namePlural,
15
+ displayName: options.displayName,
16
+ displayNamePlural: options.displayNamePlural,
17
+ type: () => DB.Object(omitUndefinedKeys({
18
+ levels,
19
+ nameBuilderRules,
20
+ select_options,
21
+ explicit_select_options,
22
+ maximum,
23
+ prerequisites: DB.Optional({
24
+ type: DB.IncludeIdentifier(GeneralPrerequisites),
25
+ }),
26
+ volume: options.volume === false ? undefined : volume,
27
+ brew: options.brew?.(),
28
+ cost: options.cost?.() ?? cost,
29
+ property: property(),
30
+ ap_value,
31
+ src,
32
+ translations: translations(options.name),
33
+ })),
34
+ instanceDisplayName: {},
35
+ uniqueConstraints: [
36
+ {
37
+ entityMapKeyPath: "translations",
38
+ keyPathInEntityMap: "name_in_library",
39
+ keyPathInEntityMapFallback: "name",
40
+ },
41
+ ],
42
+ customConstraints: deps => verifySelectOptionRules(options.name, deps),
43
+ });
7
44
  export const translations = (entity) => NestedTranslationMap(DB.Required, entity, DB.Object({
8
45
  name,
9
46
  name_in_library,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optolith/database-schema",
3
- "version": "0.78.0",
3
+ "version": "0.79.0",
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",