@league-of-foundry-developers/foundry-vtt-types 12.331.3-beta → 12.331.4-beta

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 (559) hide show
  1. package/README.md +17 -18
  2. package/package.json +74 -32
  3. package/src/configuration/configuration.d.mts +316 -0
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +357 -0
  6. package/src/configuration/index.d.mts +5 -0
  7. package/src/foundry/client/apps/app.d.mts +129 -122
  8. package/src/foundry/client/apps/av/av-config.d.mts +12 -7
  9. package/src/foundry/client/apps/av/cameras.d.mts +12 -7
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +59 -0
  11. package/src/foundry/client/apps/dice/index.d.mts +1 -0
  12. package/src/foundry/client/apps/form.d.mts +114 -86
  13. package/src/foundry/client/apps/forms/actor.d.mts +21 -11
  14. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +12 -7
  15. package/src/foundry/client/apps/forms/adventure-importer.d.mts +14 -6
  16. package/src/foundry/client/apps/forms/base-sheet.d.mts +16 -8
  17. package/src/foundry/client/apps/forms/card-config.d.mts +16 -8
  18. package/src/foundry/client/apps/forms/cards-config.d.mts +15 -14
  19. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  20. package/src/foundry/client/apps/forms/combatant-config.d.mts +3 -3
  21. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  22. package/src/foundry/client/apps/forms/effect-config.d.mts +7 -7
  23. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  24. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  25. package/src/foundry/client/apps/forms/grid-config.d.mts +12 -13
  26. package/src/foundry/client/apps/forms/image-popout.d.mts +29 -23
  27. package/src/foundry/client/apps/forms/item.d.mts +9 -9
  28. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +16 -14
  29. package/src/foundry/client/apps/forms/journal-sheet.d.mts +48 -38
  30. package/src/foundry/client/apps/forms/macro-config.d.mts +7 -7
  31. package/src/foundry/client/apps/forms/measure-template.d.mts +10 -12
  32. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  33. package/src/foundry/client/apps/forms/playlist-config.d.mts +8 -10
  34. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +7 -7
  35. package/src/foundry/client/apps/forms/roll-table-config.d.mts +11 -10
  36. package/src/foundry/client/apps/forms/scene-config.d.mts +40 -41
  37. package/src/foundry/client/apps/forms/sheet-config.d.mts +9 -21
  38. package/src/foundry/client/apps/forms/user-config.d.mts +13 -12
  39. package/src/foundry/client/apps/hud/chatbubble.d.mts +18 -6
  40. package/src/foundry/client/apps/hud/container.d.mts +4 -4
  41. package/src/foundry/client/apps/hud/controls.d.mts +126 -81
  42. package/src/foundry/client/apps/hud/hotbar.d.mts +17 -12
  43. package/src/foundry/client/apps/hud/hud.d.mts +5 -5
  44. package/src/foundry/client/apps/hud/menu.d.mts +10 -3
  45. package/src/foundry/client/apps/hud/navigation.d.mts +14 -9
  46. package/src/foundry/client/apps/hud/pause.d.mts +9 -4
  47. package/src/foundry/client/apps/hud/players.d.mts +14 -9
  48. package/src/foundry/client/apps/i18n.d.mts +31 -27
  49. package/src/foundry/client/apps/index.d.mts +1 -0
  50. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  51. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +5 -5
  52. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  53. package/src/foundry/client/apps/placeables/note-config.d.mts +28 -18
  54. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  55. package/src/foundry/client/apps/placeables/tile-hud.d.mts +10 -5
  56. package/src/foundry/client/apps/placeables/token-config.d.mts +91 -58
  57. package/src/foundry/client/apps/placeables/token-hud.d.mts +12 -7
  58. package/src/foundry/client/apps/placeables/wall-config.d.mts +21 -17
  59. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  60. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +15 -13
  62. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  63. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +3 -2
  64. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  65. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  66. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +34 -29
  67. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +2 -2
  68. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +13 -10
  69. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +50 -35
  70. package/src/foundry/client/apps/sidebar/document-directory.d.mts +52 -38
  71. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +4 -4
  72. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  73. package/src/foundry/client/apps/sidebar/sidebar.d.mts +9 -4
  74. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +11 -2
  75. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +11 -2
  76. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +39 -27
  77. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +21 -12
  78. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +30 -15
  79. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +11 -2
  80. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +11 -2
  81. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +14 -5
  82. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +30 -22
  83. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +11 -2
  84. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +14 -5
  85. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +23 -5
  86. package/src/foundry/client/apps/templates.d.mts +1 -1
  87. package/src/foundry/client/av/client.d.mts +1 -1
  88. package/src/foundry/client/av/clients/simplepeer.d.mts +11 -1
  89. package/src/foundry/client/av/master.d.mts +2 -2
  90. package/src/foundry/client/av/settings.d.mts +17 -15
  91. package/src/foundry/client/config.d.mts +444 -312
  92. package/src/foundry/client/core/document-index.d.mts +11 -3
  93. package/src/foundry/client/core/hooks.d.mts +2 -4
  94. package/src/foundry/client/core/image.d.mts +14 -13
  95. package/src/foundry/client/core/issues.d.mts +9 -4
  96. package/src/foundry/client/core/keybindings.d.mts +5 -5
  97. package/src/foundry/client/core/nue.d.mts +1 -1
  98. package/src/foundry/client/core/packages.d.mts +397 -61
  99. package/src/foundry/client/core/settings.d.mts +62 -38
  100. package/src/foundry/client/core/socket.d.mts +2 -2
  101. package/src/foundry/client/core/sorting.d.mts +6 -6
  102. package/src/foundry/client/core/time.d.mts +6 -3
  103. package/src/foundry/client/core/tooltip.d.mts +2 -2
  104. package/src/foundry/client/core/tour.d.mts +59 -50
  105. package/src/foundry/client/core/tours.d.mts +1 -1
  106. package/src/foundry/client/core/utils.d.mts +33 -10
  107. package/src/foundry/client/core/video.d.mts +1 -1
  108. package/src/foundry/client/core/workers.d.mts +24 -17
  109. package/src/foundry/client/data/abstract/canvas-document.d.mts +21 -16
  110. package/src/foundry/client/data/abstract/client-document.d.mts +153 -183
  111. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +23 -39
  112. package/src/foundry/client/data/abstract/document-collection.d.mts +96 -68
  113. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -55
  114. package/src/foundry/client/data/collections/actors.d.mts +30 -28
  115. package/src/foundry/client/data/collections/cards.d.mts +16 -3
  116. package/src/foundry/client/data/collections/combats.d.mts +18 -5
  117. package/src/foundry/client/data/collections/compendium-collection.d.mts +81 -99
  118. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  119. package/src/foundry/client/data/collections/compendium-packs.d.mts +5 -5
  120. package/src/foundry/client/data/collections/fog.d.mts +16 -3
  121. package/src/foundry/client/data/collections/folder.d.mts +20 -6
  122. package/src/foundry/client/data/collections/items.d.mts +17 -4
  123. package/src/foundry/client/data/collections/journal.d.mts +22 -7
  124. package/src/foundry/client/data/collections/macros.d.mts +21 -19
  125. package/src/foundry/client/data/collections/messages.d.mts +19 -6
  126. package/src/foundry/client/data/collections/playlists.d.mts +17 -5
  127. package/src/foundry/client/data/collections/scenes.d.mts +24 -27
  128. package/src/foundry/client/data/collections/settings.d.mts +16 -3
  129. package/src/foundry/client/data/collections/tables.d.mts +18 -5
  130. package/src/foundry/client/data/collections/users.d.mts +19 -7
  131. package/src/foundry/client/data/documents/active-effect.d.mts +677 -85
  132. package/src/foundry/client/data/documents/actor-delta.d.mts +670 -27
  133. package/src/foundry/client/data/documents/actor.d.mts +718 -64
  134. package/src/foundry/client/data/documents/adventure.d.mts +480 -46
  135. package/src/foundry/client/data/documents/ambient-light.d.mts +423 -19
  136. package/src/foundry/client/data/documents/ambient-sound.d.mts +473 -14
  137. package/src/foundry/client/data/documents/card.d.mts +567 -36
  138. package/src/foundry/client/data/documents/cards.d.mts +744 -87
  139. package/src/foundry/client/data/documents/chat-message.d.mts +574 -42
  140. package/src/foundry/client/data/documents/combat.d.mts +699 -69
  141. package/src/foundry/client/data/documents/combatant.d.mts +504 -24
  142. package/src/foundry/client/data/documents/drawing.d.mts +540 -14
  143. package/src/foundry/client/data/documents/fog-exploration.d.mts +416 -21
  144. package/src/foundry/client/data/documents/folder.d.mts +468 -35
  145. package/src/foundry/client/data/documents/index.d.mts +2 -0
  146. package/src/foundry/client/data/documents/item.d.mts +677 -20
  147. package/src/foundry/client/data/documents/journal-entry-page.d.mts +585 -19
  148. package/src/foundry/client/data/documents/journal-entry.d.mts +619 -18
  149. package/src/foundry/client/data/documents/macro.d.mts +528 -25
  150. package/src/foundry/client/data/documents/measured-template.d.mts +478 -14
  151. package/src/foundry/client/data/documents/note.d.mts +491 -15
  152. package/src/foundry/client/data/documents/playlist-sound.d.mts +426 -24
  153. package/src/foundry/client/data/documents/playlist.d.mts +665 -74
  154. package/src/foundry/client/data/documents/region-behavior.d.mts +507 -0
  155. package/src/foundry/client/data/documents/region.d.mts +784 -0
  156. package/src/foundry/client/data/documents/scene.d.mts +983 -147
  157. package/src/foundry/client/data/documents/setting.d.mts +395 -13
  158. package/src/foundry/client/data/documents/table-result.d.mts +476 -14
  159. package/src/foundry/client/data/documents/table.d.mts +661 -78
  160. package/src/foundry/client/data/documents/tile.d.mts +499 -14
  161. package/src/foundry/client/data/documents/token.d.mts +1111 -94
  162. package/src/foundry/client/data/documents/user.d.mts +493 -25
  163. package/src/foundry/client/data/documents/wall.d.mts +548 -14
  164. package/src/foundry/client/game.d.mts +60 -92
  165. package/src/foundry/client/head.d.mts +9 -9
  166. package/src/foundry/client/hooks.d.mts +257 -237
  167. package/src/foundry/client/pixi/board.d.mts +106 -94
  168. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +97 -25
  169. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +37 -19
  170. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +7 -10
  171. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +25 -15
  172. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +16 -6
  173. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +113 -54
  174. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +69 -26
  175. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +20 -2
  176. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +164 -99
  177. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +61 -22
  178. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +120 -53
  179. package/src/foundry/client/pixi/core/interaction/ping.d.mts +62 -31
  180. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +23 -10
  181. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +91 -34
  182. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +76 -30
  183. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +35 -5
  184. package/src/foundry/client/pixi/core/interaction/targets.d.mts +21 -18
  185. package/src/foundry/client/pixi/core/loader.d.mts +86 -76
  186. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +42 -17
  187. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +92 -64
  188. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +28 -10
  189. package/src/foundry/client/pixi/core/shapes/ray.d.mts +47 -23
  190. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +170 -75
  191. package/src/foundry/client/pixi/extensions/circle.d.mts +128 -125
  192. package/src/foundry/client/pixi/extensions/graphics.d.mts +3 -1
  193. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +5 -4
  194. package/src/foundry/client/pixi/extensions/polygon.d.mts +154 -134
  195. package/src/foundry/client/pixi/extensions/rectangle.d.mts +242 -259
  196. package/src/foundry/client/pixi/groups/effects.d.mts +75 -24
  197. package/src/foundry/client/pixi/groups/environment.d.mts +68 -19
  198. package/src/foundry/client/pixi/groups/hidden.d.mts +27 -11
  199. package/src/foundry/client/pixi/groups/interface.d.mts +62 -38
  200. package/src/foundry/client/pixi/groups/overlay.d.mts +19 -7
  201. package/src/foundry/client/pixi/groups/primary.d.mts +66 -44
  202. package/src/foundry/client/pixi/groups/rendered.d.mts +19 -7
  203. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +11 -15
  204. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +29 -28
  205. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +306 -272
  206. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +18 -9
  207. package/src/foundry/client/pixi/layers/controls/door.d.mts +32 -11
  208. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -77
  209. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  210. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +9 -12
  211. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +9 -10
  212. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +8 -8
  213. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +22 -22
  214. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +106 -86
  215. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +14 -5
  216. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  217. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +137 -65
  218. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +14 -4
  219. package/src/foundry/client/pixi/layers/grid/layer.d.mts +92 -92
  220. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +37 -16
  221. package/src/foundry/client/pixi/layers/masks/depth.d.mts +12 -7
  222. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +19 -12
  223. package/src/foundry/client/pixi/layers/masks/vision.d.mts +104 -18
  224. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +16 -15
  225. package/src/foundry/client/pixi/layers/placeables/index.d.mts +1 -0
  226. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +12 -14
  227. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +49 -32
  228. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +113 -0
  229. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -67
  230. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +11 -15
  231. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +30 -21
  232. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +66 -52
  233. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +54 -57
  234. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +62 -27
  235. package/src/foundry/client/pixi/perception/detection-mode.d.mts +121 -47
  236. package/src/foundry/client/pixi/perception/fog.d.mts +38 -15
  237. package/src/foundry/client/pixi/perception/perception-manager.d.mts +136 -136
  238. package/src/foundry/client/pixi/perception/vision-mode.d.mts +91 -64
  239. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +44 -16
  240. package/src/foundry/client/pixi/placeable.d.mts +238 -137
  241. package/src/foundry/client/pixi/placeables/drawing.d.mts +255 -133
  242. package/src/foundry/client/pixi/placeables/index.d.mts +1 -0
  243. package/src/foundry/client/pixi/placeables/light.d.mts +199 -64
  244. package/src/foundry/client/pixi/placeables/note.d.mts +145 -54
  245. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +30 -8
  246. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +41 -11
  247. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +59 -18
  248. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +120 -37
  249. package/src/foundry/client/pixi/placeables/region.d.mts +280 -0
  250. package/src/foundry/client/pixi/placeables/sound.d.mts +205 -66
  251. package/src/foundry/client/pixi/placeables/template.d.mts +181 -100
  252. package/src/foundry/client/pixi/placeables/tile.d.mts +206 -140
  253. package/src/foundry/client/pixi/placeables/token.d.mts +916 -449
  254. package/src/foundry/client/pixi/placeables/wall.d.mts +249 -129
  255. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +72 -33
  256. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +10 -9
  257. package/src/foundry/client/pixi/webgl/helpers/{framebugger-snapshot.d.mts → framebuffer-snapshot.d.mts} +10 -9
  258. package/src/foundry/client/pixi/webgl/helpers/index.d.mts +1 -1
  259. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +38 -23
  260. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +82 -53
  261. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +12 -12
  262. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +45 -28
  263. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +12 -11
  264. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +12 -10
  265. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +22 -20
  266. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +36 -32
  267. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +10 -9
  268. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +12 -11
  269. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +10 -9
  270. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +12 -11
  271. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +67 -60
  272. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +24 -17
  273. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +13 -10
  274. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +10 -9
  275. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +11 -10
  276. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +20 -14
  277. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +12 -11
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +10 -9
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +33 -33
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +10 -9
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +10 -9
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +19 -17
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +10 -9
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +10 -9
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +10 -9
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +10 -9
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +19 -17
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +19 -17
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +10 -9
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +10 -8
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +19 -17
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +10 -9
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +10 -9
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +10 -9
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +19 -17
  296. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +10 -9
  297. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +10 -9
  298. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +10 -9
  299. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +19 -17
  300. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +20 -17
  301. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +10 -9
  302. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +19 -17
  303. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +10 -9
  304. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +19 -17
  305. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +19 -17
  306. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +19 -17
  307. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +10 -9
  308. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +71 -29
  309. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +54 -10
  310. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +69 -9
  311. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +24 -25
  312. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +10 -9
  313. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +38 -29
  314. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +21 -17
  315. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +10 -9
  316. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +20 -18
  317. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +11 -2
  318. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +28 -2
  319. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +10 -9
  320. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +11 -9
  321. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +10 -9
  322. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +10 -9
  323. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +19 -17
  324. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +10 -9
  325. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +40 -36
  326. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +27 -33
  327. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +17 -16
  328. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +19 -18
  329. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +15 -14
  330. package/src/foundry/client/pixi/workers/texture-worker.d.mts +33 -53
  331. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  332. package/src/foundry/client/ui/context.d.mts +48 -40
  333. package/src/foundry/client/ui/dialog.d.mts +137 -126
  334. package/src/foundry/client/ui/drag.d.mts +1 -1
  335. package/src/foundry/client/ui/dragdrop.d.mts +34 -28
  336. package/src/foundry/client/ui/editor.d.mts +29 -21
  337. package/src/foundry/client/ui/filepicker.d.mts +43 -38
  338. package/src/foundry/client/ui/filter.d.mts +62 -50
  339. package/src/foundry/client/ui/forms.d.mts +22 -22
  340. package/src/foundry/client/ui/notifications.d.mts +10 -3
  341. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  342. package/src/foundry/client/ui/secrets.d.mts +42 -27
  343. package/src/foundry/client/ui/tabs.d.mts +40 -33
  344. package/src/foundry/client-esm/applications/_module.d.mts +3 -3
  345. package/src/foundry/client-esm/applications/_types.d.mts +0 -2
  346. package/src/foundry/client-esm/applications/api/_module.d.mts +2 -2
  347. package/src/foundry/client-esm/applications/api/application.d.mts +36 -19
  348. package/src/foundry/client-esm/applications/api/dialog.d.mts +20 -22
  349. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +26 -12
  350. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +142 -126
  351. package/src/foundry/client-esm/applications/apps/_module.d.mts +2 -2
  352. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +10 -10
  353. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +3 -3
  354. package/src/foundry/client-esm/applications/dice/_module.d.mts +2 -2
  355. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +14 -2
  356. package/src/foundry/client-esm/applications/elements/_module.d.mts +2 -2
  357. package/src/foundry/client-esm/applications/elements/document-tags.d.mts +2 -0
  358. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  359. package/src/foundry/client-esm/applications/elements/multi-select.d.mts +15 -5
  360. package/src/foundry/client-esm/applications/elements/string-tags.d.mts +1 -1
  361. package/src/foundry/client-esm/applications/forms/fields.d.mts +1 -1
  362. package/src/foundry/client-esm/applications/sheets/_module.d.mts +2 -2
  363. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +10 -8
  365. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +9 -7
  366. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +30 -5
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +36 -5
  369. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +8 -7
  370. package/src/foundry/client-esm/applications/ui/_module.d.mts +2 -2
  371. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +45 -3
  372. package/src/foundry/client-esm/audio/_module.d.mts +2 -3
  373. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  374. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  375. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  376. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  377. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  378. package/src/foundry/client-esm/audio/sound.d.mts +230 -126
  379. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  380. package/src/foundry/client-esm/canvas/_module.d.mts +2 -2
  381. package/src/foundry/client-esm/canvas/edges/_module.d.mts +2 -2
  382. package/src/foundry/client-esm/canvas/edges/collision.d.mts +69 -18
  383. package/src/foundry/client-esm/canvas/edges/edge.d.mts +110 -41
  384. package/src/foundry/client-esm/canvas/edges/edges.d.mts +10 -0
  385. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +56 -26
  386. package/src/foundry/client-esm/canvas/regions/_module.d.mts +6 -11
  387. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +38 -0
  388. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +72 -0
  389. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +130 -0
  390. package/src/foundry/client-esm/canvas/regions/shape.d.mts +129 -0
  391. package/src/foundry/client-esm/canvas/scene-manager.d.mts +13 -3
  392. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  393. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  394. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +121 -23
  395. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  396. package/src/foundry/client-esm/canvas/sources/_module.d.mts +2 -2
  397. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +84 -40
  398. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +103 -39
  399. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +89 -15
  400. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +71 -27
  401. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +49 -20
  402. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +57 -16
  403. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +31 -4
  404. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +45 -12
  405. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +98 -52
  406. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +180 -69
  407. package/src/foundry/client-esm/canvas/tokens/_module.d.mts +2 -3
  408. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +175 -2
  409. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +141 -2
  410. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +284 -2
  411. package/src/foundry/client-esm/client.d.mts +47 -54
  412. package/src/foundry/client-esm/data/_module.d.mts +2 -2
  413. package/src/foundry/client-esm/data/client-backend.d.mts +22 -23
  414. package/src/foundry/client-esm/data/region-behaviors/_module.d.mts +11 -14
  415. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +57 -0
  416. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +59 -0
  417. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +64 -0
  418. package/src/foundry/client-esm/data/region-behaviors/execute-macro.d.mts +27 -0
  419. package/src/foundry/client-esm/data/region-behaviors/execute-script.d.mts +23 -0
  420. package/src/foundry/client-esm/data/region-behaviors/pause-game.d.mts +23 -0
  421. package/src/foundry/client-esm/data/region-behaviors/suppress-weather.d.mts +17 -0
  422. package/src/foundry/client-esm/data/region-behaviors/teleport-token.d.mts +32 -0
  423. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +31 -0
  424. package/src/foundry/client-esm/dice/_module.d.mts +2 -3
  425. package/src/foundry/client-esm/dice/parser.d.mts +11 -25
  426. package/src/foundry/client-esm/dice/roll.d.mts +115 -89
  427. package/src/foundry/client-esm/dice/terms/_module.d.mts +2 -3
  428. package/src/foundry/client-esm/dice/terms/coin.d.mts +8 -5
  429. package/src/foundry/client-esm/dice/terms/dice.d.mts +93 -63
  430. package/src/foundry/client-esm/dice/terms/die.d.mts +11 -4
  431. package/src/foundry/client-esm/dice/terms/fate.d.mts +9 -2
  432. package/src/foundry/client-esm/dice/terms/function.d.mts +18 -18
  433. package/src/foundry/client-esm/dice/terms/numeric.d.mts +3 -5
  434. package/src/foundry/client-esm/dice/terms/operator.d.mts +2 -2
  435. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +9 -10
  436. package/src/foundry/client-esm/dice/terms/pool.d.mts +25 -31
  437. package/src/foundry/client-esm/dice/terms/string.d.mts +4 -4
  438. package/src/foundry/client-esm/dice/terms/term.d.mts +18 -4
  439. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  440. package/src/foundry/client-esm/helpers/_module.d.mts +2 -2
  441. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  442. package/src/foundry/client-esm/helpers/compendium-art.d.mts +56 -4
  443. package/src/foundry/common/abstract/_types.d.mts +60 -54
  444. package/src/foundry/common/abstract/backend.d.mts +51 -45
  445. package/src/foundry/common/abstract/data.d.mts +132 -154
  446. package/src/foundry/common/abstract/document.d.mts +1306 -438
  447. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  448. package/src/foundry/common/abstract/embedded-collection.d.mts +37 -7
  449. package/src/foundry/common/abstract/module.d.mts +3 -2
  450. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  451. package/src/foundry/common/abstract/socket.d.mts +1 -1
  452. package/src/foundry/common/abstract/type-data.d.mts +58 -55
  453. package/src/foundry/common/config.d.mts +5 -3
  454. package/src/foundry/common/constants.d.mts +261 -231
  455. package/src/foundry/common/data/data.d.mts +200 -94
  456. package/src/foundry/common/data/fields.d.mts +700 -644
  457. package/src/foundry/common/data/module.d.mts +2 -2
  458. package/src/foundry/common/data/validation-failure.d.mts +12 -9
  459. package/src/foundry/common/documents/_module.d.mts +4 -2
  460. package/src/foundry/common/documents/_types.d.mts +22 -50
  461. package/src/foundry/common/documents/active-effect.d.mts +280 -179
  462. package/src/foundry/common/documents/actor-delta.d.mts +318 -69
  463. package/src/foundry/common/documents/actor.d.mts +305 -117
  464. package/src/foundry/common/documents/adventure.d.mts +266 -141
  465. package/src/foundry/common/documents/ambient-light.d.mts +268 -75
  466. package/src/foundry/common/documents/ambient-sound.d.mts +268 -109
  467. package/src/foundry/common/documents/card.d.mts +267 -174
  468. package/src/foundry/common/documents/cards.d.mts +299 -126
  469. package/src/foundry/common/documents/chat-message.d.mts +276 -158
  470. package/src/foundry/common/documents/combat.d.mts +300 -89
  471. package/src/foundry/common/documents/combatant.d.mts +275 -88
  472. package/src/foundry/common/documents/drawing.d.mts +286 -206
  473. package/src/foundry/common/documents/fog-exploration.d.mts +258 -70
  474. package/src/foundry/common/documents/folder.d.mts +252 -81
  475. package/src/foundry/common/documents/item.d.mts +305 -99
  476. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -189
  477. package/src/foundry/common/documents/journal-entry.d.mts +294 -68
  478. package/src/foundry/common/documents/macro.d.mts +254 -132
  479. package/src/foundry/common/documents/measured-template.d.mts +293 -139
  480. package/src/foundry/common/documents/note.d.mts +274 -149
  481. package/src/foundry/common/documents/playlist-sound.d.mts +260 -94
  482. package/src/foundry/common/documents/playlist.d.mts +279 -120
  483. package/src/foundry/common/documents/region-behavior.d.mts +329 -0
  484. package/src/foundry/common/documents/region.d.mts +327 -0
  485. package/src/foundry/common/documents/roll-table.d.mts +286 -102
  486. package/src/foundry/common/documents/scene.d.mts +276 -336
  487. package/src/foundry/common/documents/setting.d.mts +229 -54
  488. package/src/foundry/common/documents/table-result.d.mts +267 -94
  489. package/src/foundry/common/documents/tile.d.mts +301 -170
  490. package/src/foundry/common/documents/token.d.mts +351 -445
  491. package/src/foundry/common/documents/user.d.mts +256 -144
  492. package/src/foundry/common/documents/wall.d.mts +273 -156
  493. package/src/foundry/common/grid/_module.d.mts +3 -3
  494. package/src/foundry/common/grid/base.d.mts +66 -49
  495. package/src/foundry/common/grid/gridless.d.mts +2 -2
  496. package/src/foundry/common/grid/hexagonal.d.mts +35 -28
  497. package/src/foundry/common/grid/square.d.mts +3 -3
  498. package/src/foundry/common/packages/base-module.d.mts +6 -24
  499. package/src/foundry/common/packages/base-package.d.mts +23 -21
  500. package/src/foundry/common/packages/base-system.d.mts +6 -63
  501. package/src/foundry/common/packages/base-world.d.mts +8 -61
  502. package/src/foundry/common/packages/module.d.mts +7 -7
  503. package/src/foundry/common/packages/sub-types.d.mts +2 -2
  504. package/src/foundry/common/primitives/array.d.mts +4 -4
  505. package/src/foundry/common/primitives/math.d.mts +7 -1
  506. package/src/foundry/common/primitives/number.d.mts +2 -2
  507. package/src/foundry/common/primitives/set.d.mts +17 -14
  508. package/src/foundry/common/primitives/string.d.mts +1 -1
  509. package/src/foundry/common/prosemirror/_module.d.mts +15 -15
  510. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +1 -1
  511. package/src/foundry/common/prosemirror/dom-parser.d.mts +2 -1
  512. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  513. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +2 -2
  514. package/src/foundry/common/prosemirror/image-plugin.d.mts +1 -1
  515. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  516. package/src/foundry/common/prosemirror/paste-transformer.d.mts +1 -1
  517. package/src/foundry/common/prosemirror/plugin.d.mts +2 -2
  518. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  519. package/src/foundry/common/prosemirror/schema/lists.d.mts +2 -0
  520. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  521. package/src/foundry/common/types.d.mts +3 -3
  522. package/src/foundry/common/utils/bitmask.d.mts +23 -11
  523. package/src/foundry/common/utils/collection.d.mts +61 -38
  524. package/src/foundry/common/utils/color.d.mts +20 -2
  525. package/src/foundry/common/utils/event-emitter.d.mts +32 -17
  526. package/src/foundry/common/utils/helpers.d.mts +36 -26
  527. package/src/foundry/common/utils/http.d.mts +2 -2
  528. package/src/foundry/common/utils/module.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/foundry/index.d.mts +0 -1
  532. package/src/foundry/{clipper → public/scripts/clipper}/clipper.d.mts +58 -16
  533. package/src/foundry/public/scripts/index.d.mts +1 -0
  534. package/src/foundry/public/scripts/workers/image-compressor.d.mts +23 -0
  535. package/src/foundry/public/scripts/workers/index.d.mts +1 -0
  536. package/{index-lenient.d.mts → src/index-lenient.d.mts} +2 -0
  537. package/src/index.d.mts +6 -0
  538. package/src/tsconfig.json +15 -0
  539. package/src/types/augments/particles.d.mts +29 -0
  540. package/src/types/augments/pixi.d.mts +1024 -21
  541. package/src/types/augments/smooth.d.mts +31 -0
  542. package/src/types/augments/tinyMCE.d.mts +1 -1
  543. package/src/types/config.d.mts +20 -312
  544. package/src/types/documentConfiguration.d.mts +286 -542
  545. package/src/types/index.d.mts +1 -1
  546. package/src/types/lib.d.mts +12 -0
  547. package/src/types/workers/image-compressor.d.mts +176 -0
  548. package/src/utils/index.d.mts +1279 -0
  549. package/tsconfig.json +29 -0
  550. package/tsconfig.main.json +8 -0
  551. package/tsconfig.miscellaneous.json +16 -0
  552. package/index.d.mts +0 -5
  553. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  554. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -43
  555. package/src/foundry/common/documents/module.d.mts +0 -35
  556. package/src/foundry/common/primitives/regex.d.mts +0 -12
  557. package/src/types/helperTypes.d.mts +0 -583
  558. package/src/types/utils.d.mts +0 -539
  559. /package/src/foundry/{clipper → public/scripts/clipper}/index.d.mts +0 -0
@@ -1,25 +1,13 @@
1
- import type { CONST, documents } from "../foundry/client-esm/client.d.mts";
1
+ // This file pertains to setting up documents, including defaults. For this reason there's a lot of references to `SomeDocument` instead of `SomeDocument.implementation`.
2
+ /* eslint-disable @typescript-eslint/no-restricted-types, no-restricted-syntax */
3
+
4
+ import type { documents } from "../foundry/client-esm/client.d.mts";
2
5
  import type { Document } from "../foundry/common/abstract/module.d.mts";
3
- import type BaseActor from "../foundry/common/documents/actor.d.mts";
4
- import type BaseChatMessage from "../foundry/common/documents/chat-message.d.mts";
5
- import type BaseCombat from "../foundry/common/documents/combat.d.mts";
6
- import type BaseCombatant from "../foundry/common/documents/combatant.d.mts";
7
- import type BaseDrawing from "../foundry/common/documents/drawing.d.mts";
8
- import type BaseFogExploration from "../foundry/common/documents/fog-exploration.d.mts";
9
- import type BaseMeasuredTemplate from "../foundry/common/documents/measured-template.d.mts";
10
- import type BaseSetting from "../foundry/common/documents/setting.d.mts";
11
- import type BaseTableResult from "../foundry/common/documents/table-result.d.mts";
12
- import type BaseToken from "../foundry/common/documents/token.d.mts";
13
- import type BaseUser from "../foundry/common/documents/user.d.mts";
14
- import type BaseWall from "../foundry/common/documents/wall.d.mts";
15
- import type { ConformRecord, InterfaceToObject, MakeConform, MustConform } from "./helperTypes.d.mts";
16
- import type { Merge } from "./utils.d.mts";
6
+ import type { InterfaceToObject, MakeConform, MustConform, FixedInstanceType } from "fvtt-types/utils";
17
7
 
18
8
  type DocumentConform<T> = MakeConform<T, Document.AnyConstructor>;
19
9
 
20
- // This interface holds all documents without configuration.
21
- // It is structured this way to create a place for errors to show up if the type complexity grows too great.
22
- interface _DefaultDocuments {
10
+ interface DefaultDocumentClasses {
23
11
  ActiveEffect: typeof ActiveEffect;
24
12
  ActorDelta: typeof ActorDelta;
25
13
  Actor: typeof Actor;
@@ -37,570 +25,326 @@ interface _DefaultDocuments {
37
25
  Macro: typeof Macro;
38
26
  PlaylistSound: typeof PlaylistSound;
39
27
  Playlist: typeof Playlist;
28
+ RegionBehavior: typeof RegionBehavior;
40
29
  RollTable: typeof RollTable;
41
30
  Scene: typeof Scene;
42
31
  Setting: typeof Setting;
43
32
  TableResult: typeof TableResult;
44
33
  User: typeof User;
45
-
46
- // Placeables have corresponding document classes.
47
34
  AmbientLight: typeof AmbientLightDocument;
48
35
  AmbientSound: typeof AmbientSoundDocument;
49
36
  Drawing: typeof DrawingDocument;
50
37
  MeasuredTemplate: typeof MeasuredTemplateDocument;
38
+ Region: typeof RegionDocument;
51
39
  Note: typeof NoteDocument;
52
40
  Tile: typeof TileDocument;
53
41
  Token: typeof TokenDocument;
54
42
  Wall: typeof WallDocument;
55
43
  }
56
44
 
57
- type TestDefaultDocumentsValid = MustConform<
58
- InterfaceToObject<_DefaultDocuments>,
59
- Record<string, Document.AnyConstructor>
60
- >;
45
+ interface DefaultDocumentInstance {
46
+ ActiveEffect: ActiveEffect;
47
+ ActorDelta: ActorDelta;
48
+ Actor: Actor;
49
+ Adventure: Adventure;
50
+ Card: Card;
51
+ Cards: Cards;
52
+ ChatMessage: ChatMessage;
53
+ Combat: Combat;
54
+ Combatant: Combatant;
55
+ FogExploration: FogExploration;
56
+ Folder: Folder;
57
+ Item: Item;
58
+ JournalEntryPage: JournalEntryPage;
59
+ JournalEntry: JournalEntry;
60
+ Macro: Macro;
61
+ PlaylistSound: PlaylistSound;
62
+ Playlist: Playlist;
63
+ RegionBehavior: RegionBehavior;
64
+ RollTable: RollTable;
65
+ Scene: Scene;
66
+ Setting: Setting;
67
+ TableResult: TableResult;
68
+ User: User;
69
+ AmbientLight: AmbientLightDocument;
70
+ AmbientSound: AmbientSoundDocument;
71
+ Drawing: DrawingDocument;
72
+ MeasuredTemplate: MeasuredTemplateDocument;
73
+ Note: NoteDocument;
74
+ Region: RegionDocument;
75
+ Tile: TileDocument;
76
+ Token: TokenDocument;
77
+ Wall: WallDocument;
78
+ }
61
79
 
62
- type ConformedDefault = ConformRecord<_DefaultDocuments, Document.AnyConstructor>;
80
+ type ResolvedDefaultDocuments = {
81
+ [Type in Document.Type]: DefaultDocumentClasses[Type];
82
+ };
63
83
 
64
- export interface DefaultDocuments extends ConformedDefault {}
84
+ type TestDefaultDocumentsValid = MustConform<ResolvedDefaultDocuments, Record<string, Document.AnyConstructor>>;
65
85
 
66
86
  // Note(LukeAbby): This helper type is structured this way to make it as simple as possible for TypeScript to figure out that it's always a Document.
67
87
  // This also uses `ConcreteDocumentType extends keyof DocumentClassConfig` instead of `GetKey` or equivalent for the critical purposes of stymying circular errors.
68
88
  // See https://gist.github.com/LukeAbby/f9561689e5cad8a4b1e9cb92a8c63982 for more information.
69
- type ConfiguredDocument<ConcreteDocumentType extends Document.Type> =
89
+ type GetDocumentClass<ConcreteDocumentType extends Document.Type> =
70
90
  ConcreteDocumentType extends keyof DocumentClassConfig
71
91
  ? DocumentClassConfig[ConcreteDocumentType]
72
- : DefaultDocuments[ConcreteDocumentType];
92
+ : DefaultDocumentClasses[ConcreteDocumentType];
93
+
94
+ type GetDocumentInstance<ConcreteDocumentType extends Document.Type> =
95
+ ConcreteDocumentType extends keyof DocumentClassConfig
96
+ ? FixedInstanceType<DocumentClassConfig[ConcreteDocumentType]>
97
+ : DefaultDocumentInstance[ConcreteDocumentType];
73
98
 
74
99
  // This interface exists as a way to catch circular errors easier.
75
100
  // This makes it more verbose than it might seem it has to be but it's important to stay this way.
76
- interface _ConfiguredDocuments {
77
- ActiveEffect: ConfiguredDocument<"ActiveEffect">;
78
- ActorDelta: ConfiguredDocument<"ActorDelta">;
79
- Actor: ConfiguredDocument<"Actor">;
80
- Adventure: ConfiguredDocument<"Adventure">;
81
- Card: ConfiguredDocument<"Card">;
82
- Cards: ConfiguredDocument<"Cards">;
83
- ChatMessage: ConfiguredDocument<"ChatMessage">;
84
- Combat: ConfiguredDocument<"Combat">;
85
- Combatant: ConfiguredDocument<"Combatant">;
86
- FogExploration: ConfiguredDocument<"FogExploration">;
87
- Folder: ConfiguredDocument<"Folder">;
88
- Item: ConfiguredDocument<"Item">;
89
- JournalEntryPage: ConfiguredDocument<"JournalEntryPage">;
90
- JournalEntry: ConfiguredDocument<"JournalEntry">;
91
- Macro: ConfiguredDocument<"Macro">;
92
- PlaylistSound: ConfiguredDocument<"PlaylistSound">;
93
- Playlist: ConfiguredDocument<"Playlist">;
94
- RollTable: ConfiguredDocument<"RollTable">;
95
- Scene: ConfiguredDocument<"Scene">;
96
- Setting: ConfiguredDocument<"Setting">;
97
- TableResult: ConfiguredDocument<"TableResult">;
98
- User: ConfiguredDocument<"User">;
101
+ interface _ConfiguredDocumentClass {
102
+ ActiveEffect: GetDocumentClass<"ActiveEffect">;
103
+ ActorDelta: GetDocumentClass<"ActorDelta">;
104
+ Actor: GetDocumentClass<"Actor">;
105
+ Adventure: GetDocumentClass<"Adventure">;
106
+ Card: GetDocumentClass<"Card">;
107
+ Cards: GetDocumentClass<"Cards">;
108
+ ChatMessage: GetDocumentClass<"ChatMessage">;
109
+ Combat: GetDocumentClass<"Combat">;
110
+ Combatant: GetDocumentClass<"Combatant">;
111
+ FogExploration: GetDocumentClass<"FogExploration">;
112
+ Folder: GetDocumentClass<"Folder">;
113
+ Item: GetDocumentClass<"Item">;
114
+ JournalEntryPage: GetDocumentClass<"JournalEntryPage">;
115
+ JournalEntry: GetDocumentClass<"JournalEntry">;
116
+ Macro: GetDocumentClass<"Macro">;
117
+ PlaylistSound: GetDocumentClass<"PlaylistSound">;
118
+ Playlist: GetDocumentClass<"Playlist">;
119
+ RegionBehavior: GetDocumentClass<"RegionBehavior">;
120
+ Region: GetDocumentClass<"Region">;
121
+ RollTable: GetDocumentClass<"RollTable">;
122
+ Scene: GetDocumentClass<"Scene">;
123
+ Setting: GetDocumentClass<"Setting">;
124
+ TableResult: GetDocumentClass<"TableResult">;
125
+ User: GetDocumentClass<"User">;
99
126
 
100
- AmbientLight: ConfiguredDocument<"AmbientLight">;
101
- AmbientSound: ConfiguredDocument<"AmbientSound">;
102
- Drawing: ConfiguredDocument<"Drawing">;
103
- MeasuredTemplate: ConfiguredDocument<"MeasuredTemplate">;
104
- Note: ConfiguredDocument<"Note">;
105
- Tile: ConfiguredDocument<"Tile">;
106
- Token: ConfiguredDocument<"Token">;
107
- Wall: ConfiguredDocument<"Wall">;
127
+ AmbientLight: GetDocumentClass<"AmbientLight">;
128
+ AmbientSound: GetDocumentClass<"AmbientSound">;
129
+ Drawing: GetDocumentClass<"Drawing">;
130
+ MeasuredTemplate: GetDocumentClass<"MeasuredTemplate">;
131
+ Note: GetDocumentClass<"Note">;
132
+ Tile: GetDocumentClass<"Tile">;
133
+ Token: GetDocumentClass<"Token">;
134
+ Wall: GetDocumentClass<"Wall">;
108
135
  }
109
136
 
110
- type TestConfiguredDocumentsValid = MustConform<
111
- InterfaceToObject<_ConfiguredDocuments>,
112
- Record<string, Document.AnyConstructor>
113
- >;
137
+ interface _ConfiguredDocumentInstance {
138
+ ActiveEffect: GetDocumentInstance<"ActiveEffect">;
139
+ ActorDelta: GetDocumentInstance<"ActorDelta">;
140
+ Actor: GetDocumentInstance<"Actor">;
141
+ Adventure: GetDocumentInstance<"Adventure">;
142
+ Card: GetDocumentInstance<"Card">;
143
+ Cards: GetDocumentInstance<"Cards">;
144
+ ChatMessage: GetDocumentInstance<"ChatMessage">;
145
+ Combat: GetDocumentInstance<"Combat">;
146
+ Combatant: GetDocumentInstance<"Combatant">;
147
+ FogExploration: GetDocumentInstance<"FogExploration">;
148
+ Folder: GetDocumentInstance<"Folder">;
149
+ Item: GetDocumentInstance<"Item">;
150
+ JournalEntryPage: GetDocumentInstance<"JournalEntryPage">;
151
+ JournalEntry: GetDocumentInstance<"JournalEntry">;
152
+ Macro: GetDocumentInstance<"Macro">;
153
+ PlaylistSound: GetDocumentInstance<"PlaylistSound">;
154
+ Playlist: GetDocumentInstance<"Playlist">;
155
+ RegionBehavior: GetDocumentInstance<"RegionBehavior">;
156
+ Region: GetDocumentInstance<"Region">;
157
+ RollTable: GetDocumentInstance<"RollTable">;
158
+ Scene: GetDocumentInstance<"Scene">;
159
+ Setting: GetDocumentInstance<"Setting">;
160
+ TableResult: GetDocumentInstance<"TableResult">;
161
+ User: GetDocumentInstance<"User">;
114
162
 
115
- type ConformedConfigured = ConformRecord<_ConfiguredDocuments, Document.AnyConstructor>;
163
+ AmbientLight: GetDocumentInstance<"AmbientLight">;
164
+ AmbientSound: GetDocumentInstance<"AmbientSound">;
165
+ Drawing: GetDocumentInstance<"Drawing">;
166
+ MeasuredTemplate: GetDocumentInstance<"MeasuredTemplate">;
167
+ Note: GetDocumentInstance<"Note">;
168
+ Tile: GetDocumentInstance<"Tile">;
169
+ Token: GetDocumentInstance<"Token">;
170
+ Wall: GetDocumentInstance<"Wall">;
171
+ }
116
172
 
117
- export interface ConfiguredDocuments extends ConformedConfigured {}
173
+ type TestConfiguredClassesValid = MustConform<
174
+ InterfaceToObject<_ConfiguredDocumentClass>,
175
+ Record<string, Document.AnyConstructor>
176
+ >;
118
177
 
119
- interface _ConfiguredMetadata<ThisType extends Document.Internal.Instance.Any> {
120
- ActiveEffect: Merge<
121
- Document.Metadata.Default,
122
- {
123
- name: "ActiveEffect";
124
- collection: "effects";
125
- hasTypeData: true;
126
- label: string;
127
- labelPlural: string;
128
- schemaVersion: string;
129
- }
130
- >;
131
- ActorDelta: Merge<
132
- Document.Metadata.Default,
133
- {
134
- name: "ActorDelta";
135
- collection: "delta";
136
- label: string;
137
- labelPlural: string;
138
- isEmbedded: true;
139
- embedded: {
140
- Item: "items";
141
- ActiveEffect: "effects";
142
- };
143
- schemaVersion: string;
144
- }
145
- >;
146
- Actor: Merge<
147
- Document.Metadata.Default,
148
- {
149
- name: "Actor";
150
- collection: "actors";
151
- indexed: true;
152
- compendiumIndexFields: ["_id", "name", "img", "type", "sort", "folder"];
153
- embedded: { ActiveEffect: "effects"; Item: "items" };
154
- hasTypeData: true;
155
- label: string;
156
- labelPlural: string;
157
- permissions: {
158
- create(user: BaseUser, doc: ThisType): boolean;
159
- update(user: BaseUser, doc: ThisType, data: BaseActor.UpdateData): boolean;
160
- };
161
- schemaVersion: string;
162
- }
163
- >;
164
- Adventure: Merge<
165
- Document.Metadata.Default,
166
- {
167
- name: "Adventure";
168
- collection: "adventures";
169
- compendiumIndexFields: ["_id", "name", "img", "sort", "folder"];
170
- label: string;
171
- labelPlural: string;
172
- schemaVersion: string;
173
- }
174
- >;
175
- AmbientLight: Merge<
176
- Document.Metadata.Default,
177
- {
178
- name: "AmbientLight";
179
- collection: "lights";
180
- label: string;
181
- labelPlural: string;
182
- schemaVersion: string;
183
- }
184
- >;
185
- AmbientSound: Merge<
186
- Document.Metadata.Default,
187
- {
188
- name: "AmbientSound";
189
- collection: "sounds";
190
- label: string;
191
- labelPlural: string;
192
- isEmbedded: true;
193
- schemaVersion: string;
194
- }
195
- >;
196
- Card: Merge<
197
- Document.Metadata.Default,
198
- {
199
- name: "Card";
200
- collection: "cards";
201
- hasTypeData: true;
202
- indexed: true;
203
- label: string;
204
- labelPlural: string;
205
- permissions: {
206
- create: () => boolean;
207
- update: () => boolean;
208
- };
209
- compendiumIndexFields: ["name", "type", "suit", "sort"];
210
- schemaVersion: string;
211
- }
212
- >;
213
- Cards: Merge<
214
- Document.Metadata.Default,
215
- {
216
- name: "Cards";
217
- collection: "cards";
218
- indexed: true;
219
- compendiumIndexFields: ["_id", "name", "description", "img", "type", "sort", "folder"];
220
- embedded: { Card: "cards" };
221
- hasTypeData: true;
222
- label: string;
223
- labelPlural: string;
224
- coreTypes: ["deck", "hand", "pile"];
225
- schemaVersion: string;
226
- }
227
- >;
228
- ChatMessage: Merge<
229
- Document.Metadata.Default,
230
- {
231
- name: "ChatMessage";
232
- collection: "messages";
233
- label: string;
234
- labelPlural: string;
235
- isPrimary: true;
236
- permissions: {
237
- create(user: BaseUser, doc: ThisType): boolean;
238
- update(user: BaseUser, doc: ThisType, data: BaseChatMessage.UpdateData): boolean;
239
- };
240
- schemaVersion: string;
241
- }
242
- >;
243
- Combat: Merge<
244
- Document.Metadata.Default,
245
- {
246
- name: "Combat";
247
- collection: "combats";
248
- label: string;
249
- labelPlural: string;
250
- embedded: {
251
- Combatant: "combatants";
252
- };
253
- hasTypeData: true;
254
- permissions: {
255
- update(user: BaseUser, doc: ThisType, data: BaseCombat.UpdateData): boolean;
256
- };
257
- schemaVersion: string;
258
- }
259
- >;
260
- Combatant: Merge<
261
- Document.Metadata.Default,
262
- {
263
- name: "Combatant";
264
- collection: "combatants";
265
- label: string;
266
- labelPlural: string;
267
- isEmbedded: true;
268
- hasTypeData: true;
269
- schemaVersion: string;
270
- permissions: {
271
- create(user: BaseUser, doc: ThisType): boolean;
272
- update(user: BaseUser, doc: ThisType, data: BaseCombatant.UpdateData): boolean;
273
- };
274
- }
275
- >;
276
- Drawing: Merge<
277
- Document.Metadata.Default,
278
- {
279
- name: "Drawing";
280
- collection: "drawings";
281
- label: string;
282
- labelPlural: string;
283
- isEmbedded: true;
284
- permissions: {
285
- create: "DRAWING_CREATE";
286
- update(user: BaseUser, doc: ThisType, data: BaseDrawing.UpdateData): boolean;
287
- delete(user: BaseUser, doc: ThisType, data: BaseDrawing.UpdateData): boolean;
288
- };
289
- schemaVersion: string;
290
- }
291
- >;
292
- FogExploration: Merge<
293
- Document.Metadata.Default,
294
- {
295
- name: "FogExploration";
296
- collection: "fog";
297
- label: string;
298
- labelPlural: string;
299
- isPrimary: true;
300
- permissions: {
301
- create: "PLAYER";
302
- update(user: BaseUser, doc: ThisType, data: BaseFogExploration.UpdateData): boolean;
303
- delete(user: BaseUser, doc: ThisType, data: BaseFogExploration.UpdateData): boolean;
304
- };
305
- schemaVersion: string;
306
- }
307
- >;
308
- Folder: Merge<
309
- Document.Metadata.Default,
310
- {
311
- name: "Folder";
312
- collection: "folders";
313
- label: string;
314
- labelPlural: string;
315
- coreTypes: typeof CONST.FOLDER_DOCUMENT_TYPES;
316
- schemaVersion: string;
317
- }
318
- >;
319
- Item: Merge<
320
- Document.Metadata.Default,
321
- {
322
- name: "Item";
323
- collection: "items";
324
- hasTypeData: true;
325
- indexed: true;
326
- compendiumIndexFields: ["_id", "name", "img", "type", "sort", "folder"];
327
- embedded: { ActiveEffect: "effects" };
328
- label: string;
329
- labelPlural: string;
330
- permissions: { create: "ITEM_CREATE" };
331
- schemaVersion: string;
332
- }
178
+ type ConformedConfiguredClass = {
179
+ [K in keyof _ConfiguredDocumentClass]: MakeConform<
180
+ _ConfiguredDocumentClass[K],
181
+ Document.Internal.Constructor,
182
+ ConfigurationFailure[K]
333
183
  >;
334
- JournalEntryPage: Merge<
335
- Document.Metadata.Default,
336
- {
337
- name: "JournalEntryPage";
338
- collection: "pages";
339
- hasTypeData: true;
340
- indexed: true;
341
- label: string;
342
- labelPlural: string;
343
- coreTypes: ["text", "image", "pdf", "video"];
344
- compendiumIndexFields: ["name", "type", "sort"];
345
- schemaVersion: string;
346
- }
347
- >;
348
- JournalEntry: Merge<
349
- Document.Metadata.Default,
350
- {
351
- name: "JournalEntry";
352
- collection: "journal";
353
- indexed: true;
354
- compendiumIndexFields: ["_id", "name", "sort", "folder"];
355
- embedded: { JournalEntryPage: "pages" };
356
- label: string;
357
- labelPlural: string;
358
- permissions: {
359
- create: "JOURNAL_CREATE";
360
- };
361
- schemaVersion: string;
362
- }
363
- >;
364
- Macro: Merge<
365
- Document.Metadata.Default,
366
- {
367
- name: "Macro";
368
- collection: "macros";
369
- indexed: true;
370
- compendiumIndexFields: ["_id", "name", "img", "sort", "folder"];
371
- label: string;
372
- labelPlural: string;
373
- coreTypes: CONST.MACRO_TYPES[];
374
- permissions: {
375
- create(user: BaseUser, doc: ThisType): boolean;
376
- update(user: BaseUser, doc: ThisType): boolean;
377
- };
378
- schemaVersion: string;
379
- }
380
- >;
381
- MeasuredTemplate: Merge<
382
- Document.Metadata.Default,
383
- {
384
- name: "MeasuredTemplate";
385
- collection: "templates";
386
- label: string;
387
- labelPlural: string;
388
- isEmbedded: true;
389
- permissions: {
390
- create(user: BaseUser, doc: ThisType): boolean;
391
- update(user: BaseUser, doc: ThisType, data: BaseMeasuredTemplate.UpdateData): boolean;
392
- delete(user: BaseUser, doc: ThisType, data: BaseMeasuredTemplate.UpdateData): boolean;
393
- };
394
- schemaVersion: string;
395
- }
396
- >;
397
- Note: Merge<
398
- Document.Metadata.Default,
399
- {
400
- name: "Note";
401
- collection: "notes";
402
- label: string;
403
- labelPlural: string;
404
- permissions: {
405
- create: "NOTE_CREATE";
406
- };
407
- schemaVersion: string;
408
- }
409
- >;
410
- PlaylistSound: Merge<
411
- Document.Metadata.Default,
412
- {
413
- name: "PlaylistSound";
414
- collection: "sounds";
415
- indexed: true;
416
- label: string;
417
- labelPlural: string;
418
- compendiumIndexFields: ["name", "sort"];
419
- schemaVersion: string;
420
- }
421
- >;
422
- Playlist: Merge<
423
- Document.Metadata.Default,
424
- {
425
- name: "Playlist";
426
- collection: "playlists";
427
- indexed: true;
428
- compendiumIndexFields: ["_id", "name", "sort", "folder"];
429
- embedded: { PlaylistSound: "sounds" };
430
- label: string;
431
- labelPlural: string;
432
- permissions: {
433
- create: "PLAYLIST_CREATE";
434
- };
435
- schemaVersion: string;
436
- }
437
- >;
438
- RollTable: Merge<
439
- Document.Metadata.Default,
440
- {
441
- name: "RollTable";
442
- collection: "tables";
443
- indexed: true;
444
- compendiumIndexFields: ["_id", "name", "img", "sort", "folder"];
445
- embedded: { TableResult: "results" };
446
- label: string;
447
- labelPlural: string;
448
- schemaVersion: string;
449
- }
450
- >;
451
- Scene: Merge<
452
- Document.Metadata.Default,
453
- {
454
- name: "Scene";
455
- collection: "scenes";
456
- indexed: true;
457
- compendiumIndexFields: ["_id", "name", "thumb", "sort", "folder"];
458
- embedded: {
459
- AmbientLight: "lights";
460
- AmbientSound: "sounds";
461
- Drawing: "drawings";
462
- MeasuredTemplate: "templates";
463
- Note: "notes";
464
- Tile: "tiles";
465
- Token: "tokens";
466
- Wall: "walls";
467
- };
468
- label: string;
469
- labelPlural: string;
470
- preserveOnImport: ["_id", "sort", "ownership", "active"];
471
- schemaVersion: string;
472
- }
473
- >;
474
- Setting: Merge<
475
- Document.Metadata.Default,
476
- {
477
- name: "Setting";
478
- collection: "settings";
479
- label: string;
480
- labelPlural: string;
481
- permissions: {
482
- create(user: BaseUser, doc: ThisType, data: BaseSetting.UpdateData): boolean;
483
- update(user: BaseUser, doc: ThisType, data: BaseSetting.UpdateData): boolean;
484
- delete(user: BaseUser, doc: ThisType, data: BaseSetting.UpdateData): boolean;
485
- };
486
- schemaVersion: string;
487
- }
488
- >;
489
- TableResult: Merge<
490
- Document.Metadata.Default,
491
- {
492
- name: "TableResult";
493
- collection: "results";
494
- label: string;
495
- labelPlural: string;
496
- coreTypes: foundry.CONST.TABLE_RESULT_TYPES[];
497
- permissions: {
498
- update(user: BaseUser, doc: ThisType, data: BaseTableResult.UpdateData): boolean;
499
- };
500
- compendiumIndexFields: ["type"];
501
- schemaVersion: string;
502
- }
503
- >;
504
- Tile: Merge<
505
- Document.Metadata.Default,
506
- {
507
- name: "Tile";
508
- collection: "tiles";
509
- label: string;
510
- labelPlural: string;
511
- schemaVersion: string;
512
- }
513
- >;
514
- Token: Merge<
515
- Document.Metadata.Default,
516
- {
517
- name: "Token";
518
- collection: "tokens";
519
- label: string;
520
- labelPlural: string;
521
- isEmbedded: true;
522
- embedded: {
523
- ActorDelta: "delta";
524
- };
525
- permissions: {
526
- create: "TOKEN_CREATE";
527
- update(user: BaseUser, doc: ThisType, data: BaseToken.UpdateData): boolean;
528
- delete: "TOKEN_DELETE";
529
- };
530
- schemaVersion: string;
531
- }
532
- >;
533
- User: Merge<
534
- Document.Metadata.Default,
535
- {
536
- name: "User";
537
- collection: "users";
538
- label: string;
539
- labelPlural: string;
540
- permissions: {
541
- create(user: BaseUser, doc: ThisType, data: BaseUser.UpdateData): boolean;
542
- update(user: BaseUser, doc: ThisType, changes: BaseUser.UpdateData): boolean;
543
- delete(user: BaseUser, doc: ThisType): boolean;
544
- };
545
- schemaVersion: string;
546
- }
547
- >;
548
- Wall: Merge<
549
- Document.Metadata.Default,
550
- {
551
- name: "Wall";
552
- collection: "walls";
553
- label: string;
554
- labelPlural: string;
555
- permissions: {
556
- update(user: BaseUser, doc: ThisType, data: BaseWall.UpdateData): boolean;
557
- };
558
- schemaVersion: string;
559
- }
560
- >;
561
- }
184
+ };
562
185
 
563
- type ReadonlyMetadata<ThisType extends Document.Internal.Instance.Any> = {
564
- [K in keyof _ConfiguredMetadata<ThisType>]: Readonly<_ConfiguredMetadata<ThisType>[K]>;
186
+ type TestConfiguredInstanceValid = MustConform<
187
+ InterfaceToObject<_ConfiguredDocumentInstance>,
188
+ Record<string, Document.Any>
189
+ >;
190
+
191
+ type ConformedConfiguredInstance = {
192
+ [K in keyof _ConfiguredDocumentInstance]: MakeConform<_ConfiguredDocumentInstance[K], Document.Any>;
565
193
  };
566
194
 
567
- interface ConfiguredMetadata<ThisType extends Document.Internal.Instance.Any> extends ReadonlyMetadata<ThisType> {}
195
+ export interface ConfiguredDocumentClass extends ConformedConfiguredClass {}
196
+ export interface ConfiguredDocumentInstance extends ConformedConfiguredInstance {}
197
+
198
+ export interface ConfiguredMetadata {
199
+ ActiveEffect: ActiveEffect.Metadata;
200
+ ActorDelta: ActorDelta.Metadata;
201
+ Actor: Actor.Metadata;
202
+ Adventure: Adventure.Metadata;
203
+ AmbientLight: AmbientLightDocument.Metadata;
204
+ AmbientSound: AmbientSoundDocument.Metadata;
205
+ Card: Card.Metadata;
206
+ Cards: Cards.Metadata;
207
+ ChatMessage: ChatMessage.Metadata;
208
+ Combat: Combat.Metadata;
209
+ Combatant: Combatant.Metadata;
210
+ Drawing: DrawingDocument.Metadata;
211
+ FogExploration: FogExploration.Metadata;
212
+ Folder: Folder.Metadata;
213
+ Item: Item.Metadata;
214
+ JournalEntryPage: JournalEntryPage.Metadata;
215
+ JournalEntry: JournalEntry.Metadata;
216
+ Macro: Macro.Metadata;
217
+ MeasuredTemplate: MeasuredTemplateDocument.Metadata;
218
+ Note: NoteDocument.Metadata;
219
+ PlaylistSound: PlaylistSound.Metadata;
220
+ Playlist: Playlist.Metadata;
221
+ RegionBehavior: RegionBehavior.Metadata;
222
+ Region: RegionDocument.Metadata;
223
+ RollTable: RollTable.Metadata;
224
+ Scene: Scene.Metadata;
225
+ Setting: Setting.Metadata;
226
+ TableResult: TableResult.Metadata;
227
+ Tile: TileDocument.Metadata;
228
+ Token: TokenDocument.Metadata;
229
+ User: User.Metadata;
230
+ Wall: WallDocument.Metadata;
231
+ }
568
232
 
569
233
  type MetadataShape = {
570
234
  [Name in Document.Type]: Document.Metadata<Document.Any>;
571
235
  };
572
236
 
573
- type TestConfiguredMetadataValid = MustConform<InterfaceToObject<ConfiguredMetadata<Document.Any>>, MetadataShape>;
237
+ type TestConfiguredMetadataValid = MustConform<ConfiguredMetadata, MetadataShape>;
238
+
239
+ export interface CreateData {
240
+ ActiveEffect: documents.BaseActiveEffect.CreateData;
241
+ ActorDelta: documents.BaseActorDelta.CreateData;
242
+ Actor: documents.BaseActor.CreateData;
243
+ Adventure: documents.BaseAdventure.CreateData;
244
+ Card: documents.BaseCard.CreateData;
245
+ Cards: documents.BaseCards.CreateData;
246
+ ChatMessage: documents.BaseChatMessage.CreateData;
247
+ Combat: documents.BaseCombat.CreateData;
248
+ Combatant: documents.BaseCombatant.CreateData;
249
+ FogExploration: documents.BaseFogExploration.CreateData;
250
+ Folder: documents.BaseFolder.CreateData;
251
+ Item: documents.BaseItem.CreateData;
252
+ JournalEntryPage: documents.BaseJournalEntryPage.CreateData;
253
+ JournalEntry: documents.BaseJournalEntry.CreateData;
254
+ Macro: documents.BaseMacro.CreateData;
255
+ PlaylistSound: documents.BasePlaylistSound.CreateData;
256
+ Playlist: documents.BasePlaylist.CreateData;
257
+ RegionBehavior: documents.BaseRegionBehavior.CreateData;
258
+ RollTable: documents.BaseRollTable.CreateData;
259
+ Scene: documents.BaseScene.CreateData;
260
+ Setting: documents.BaseSetting.CreateData;
261
+ TableResult: documents.BaseTableResult.CreateData;
262
+ User: documents.BaseUser.CreateData;
263
+ AmbientLight: documents.BaseAmbientLight.CreateData;
264
+ AmbientSound: documents.BaseAmbientSound.CreateData;
265
+ Drawing: documents.BaseDrawing.CreateData;
266
+ MeasuredTemplate: documents.BaseMeasuredTemplate.CreateData;
267
+ Note: documents.BaseNote.CreateData;
268
+ Region: documents.BaseRegion.CreateData;
269
+ Tile: documents.BaseTile.CreateData;
270
+ Token: documents.BaseToken.CreateData;
271
+ Wall: documents.BaseWall.CreateData;
272
+ }
273
+
274
+ // This is a more paranoid version of `MakeConform` that catches `any`, `errorType`, etc. and returns
275
+ // `Document.AnyConstructor` instead of letting them cascade.
276
+ type ConformToDocumentConstructor<T extends Document.AnyConstructor> = [T] extends [Document.AnyConstructor]
277
+ ? [1 & T] extends [2]
278
+ ? Document.AnyConstructor
279
+ : T
280
+ : Document.AnyConstructor;
281
+
282
+ interface MisconfiguredActiveEffect extends ConformToDocumentConstructor<typeof ActiveEffect> {}
283
+ interface MisconfiguredActorDelta extends ConformToDocumentConstructor<typeof ActorDelta> {}
284
+ interface MisconfiguredActor extends ConformToDocumentConstructor<typeof Actor> {}
285
+ interface MisconfiguredAdventure extends ConformToDocumentConstructor<typeof Adventure> {}
286
+ interface MisconfiguredCard extends ConformToDocumentConstructor<typeof Card> {}
287
+ interface MisconfiguredCards extends ConformToDocumentConstructor<typeof Cards> {}
288
+ interface MisconfiguredChatMessage extends ConformToDocumentConstructor<typeof ChatMessage> {}
289
+ interface MisconfiguredCombat extends ConformToDocumentConstructor<typeof Combat> {}
290
+ interface MisconfiguredCombatant extends ConformToDocumentConstructor<typeof Combatant> {}
291
+ interface MisconfiguredFogExploration extends ConformToDocumentConstructor<typeof FogExploration> {}
292
+ interface MisconfiguredFolder extends ConformToDocumentConstructor<typeof Folder> {}
293
+ interface MisconfiguredItem extends ConformToDocumentConstructor<typeof Item> {}
294
+ interface MisconfiguredJournalEntryPage extends ConformToDocumentConstructor<typeof JournalEntryPage> {}
295
+ interface MisconfiguredJournalEntry extends ConformToDocumentConstructor<typeof JournalEntry> {}
296
+ interface MisconfiguredMacro extends ConformToDocumentConstructor<typeof Macro> {}
297
+ interface MisconfiguredPlaylistSound extends ConformToDocumentConstructor<typeof PlaylistSound> {}
298
+ interface MisconfiguredPlaylist extends ConformToDocumentConstructor<typeof Playlist> {}
299
+ interface MisconfiguredRegionBehavior extends ConformToDocumentConstructor<typeof RegionBehavior> {}
300
+ interface MisconfiguredRollTable extends ConformToDocumentConstructor<typeof RollTable> {}
301
+ interface MisconfiguredScene extends ConformToDocumentConstructor<typeof Scene> {}
302
+ interface MisconfiguredSetting extends ConformToDocumentConstructor<typeof Setting> {}
303
+ interface MisconfiguredTableResult extends ConformToDocumentConstructor<typeof TableResult> {}
304
+ interface MisconfiguredUser extends ConformToDocumentConstructor<typeof User> {}
305
+ interface MisconfiguredAmbientLight extends ConformToDocumentConstructor<typeof AmbientLightDocument> {}
306
+ interface MisconfiguredAmbientSound extends ConformToDocumentConstructor<typeof AmbientSoundDocument> {}
307
+ interface MisconfiguredDrawing extends ConformToDocumentConstructor<typeof DrawingDocument> {}
308
+ interface MisconfiguredMeasuredTemplate extends ConformToDocumentConstructor<typeof MeasuredTemplateDocument> {}
309
+ interface MisconfiguredNote extends ConformToDocumentConstructor<typeof NoteDocument> {}
310
+ interface MisconfiguredRegion extends ConformToDocumentConstructor<typeof RegionDocument> {}
311
+ interface MisconfiguredTile extends ConformToDocumentConstructor<typeof TileDocument> {}
312
+ interface MisconfiguredToken extends ConformToDocumentConstructor<typeof TokenDocument> {}
313
+ interface MisconfiguredWall extends ConformToDocumentConstructor<typeof WallDocument> {}
314
+
315
+ /* eslint-enable */
574
316
 
575
- export interface ConstructorData {
576
- ActiveEffect: documents.BaseActiveEffect.ConstructorData;
577
- ActorDelta: documents.BaseActorDelta.ConstructorData;
578
- Actor: documents.BaseActor.ConstructorData;
579
- Adventure: documents.BaseAdventure.ConstructorData;
580
- Card: documents.BaseCard.ConstructorData;
581
- Cards: documents.BaseCards.ConstructorData;
582
- ChatMessage: documents.BaseChatMessage.ConstructorData;
583
- Combat: documents.BaseCombat.ConstructorData;
584
- Combatant: documents.BaseCombatant.ConstructorData;
585
- FogExploration: documents.BaseFogExploration.ConstructorData;
586
- Folder: documents.BaseFolder.ConstructorData;
587
- Item: documents.BaseItem.ConstructorData;
588
- JournalEntryPage: documents.BaseJournalEntryPage.ConstructorData;
589
- JournalEntry: documents.BaseJournalEntry.ConstructorData;
590
- Macro: documents.BaseMacro.ConstructorData;
591
- PlaylistSound: documents.BasePlaylistSound.ConstructorData;
592
- Playlist: documents.BasePlaylist.ConstructorData;
593
- RollTable: documents.BaseRollTable.ConstructorData;
594
- Scene: documents.BaseScene.ConstructorData;
595
- Setting: documents.BaseSetting.ConstructorData;
596
- TableResult: documents.BaseTableResult.ConstructorData;
597
- User: documents.BaseUser.ConstructorData;
598
- AmbientLight: documents.BaseAmbientLight.ConstructorData;
599
- AmbientSound: documents.BaseAmbientSound.ConstructorData;
600
- Drawing: documents.BaseDrawing.ConstructorData;
601
- MeasuredTemplate: documents.BaseMeasuredTemplate.ConstructorData;
602
- Note: documents.BaseNote.ConstructorData;
603
- Tile: documents.BaseTile.ConstructorData;
604
- Token: documents.BaseToken.ConstructorData;
605
- Wall: documents.BaseWall.ConstructorData;
317
+ export interface ConfigurationFailure {
318
+ ActiveEffect: MisconfiguredActiveEffect;
319
+ ActorDelta: MisconfiguredActorDelta;
320
+ Actor: MisconfiguredActor;
321
+ Adventure: MisconfiguredAdventure;
322
+ Card: MisconfiguredCard;
323
+ Cards: MisconfiguredCards;
324
+ ChatMessage: MisconfiguredChatMessage;
325
+ Combat: MisconfiguredCombat;
326
+ Combatant: MisconfiguredCombatant;
327
+ FogExploration: MisconfiguredFogExploration;
328
+ Folder: MisconfiguredFolder;
329
+ Item: MisconfiguredItem;
330
+ JournalEntryPage: MisconfiguredJournalEntryPage;
331
+ JournalEntry: MisconfiguredJournalEntry;
332
+ Macro: MisconfiguredMacro;
333
+ PlaylistSound: MisconfiguredPlaylistSound;
334
+ Playlist: MisconfiguredPlaylist;
335
+ RegionBehavior: MisconfiguredRegionBehavior;
336
+ RollTable: MisconfiguredRollTable;
337
+ Scene: MisconfiguredScene;
338
+ Setting: MisconfiguredSetting;
339
+ TableResult: MisconfiguredTableResult;
340
+ User: MisconfiguredUser;
341
+ AmbientLight: MisconfiguredAmbientLight;
342
+ AmbientSound: MisconfiguredAmbientSound;
343
+ Drawing: MisconfiguredDrawing;
344
+ MeasuredTemplate: MisconfiguredMeasuredTemplate;
345
+ Note: MisconfiguredNote;
346
+ Region: MisconfiguredRegion;
347
+ Tile: MisconfiguredTile;
348
+ Token: MisconfiguredToken;
349
+ Wall: MisconfiguredWall;
606
350
  }