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

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 +91 -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 +10 -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 +400 -62
  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 +22 -28
  110. package/src/foundry/client/data/abstract/client-document.d.mts +238 -206
  111. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +24 -40
  112. package/src/foundry/client/data/abstract/document-collection.d.mts +96 -68
  113. package/src/foundry/client/data/abstract/world-collection.d.mts +53 -54
  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 +84 -101
  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 +22 -10
  131. package/src/foundry/client/data/documents/active-effect.d.mts +780 -112
  132. package/src/foundry/client/data/documents/actor-delta.d.mts +705 -31
  133. package/src/foundry/client/data/documents/actor.d.mts +806 -98
  134. package/src/foundry/client/data/documents/adventure.d.mts +522 -59
  135. package/src/foundry/client/data/documents/ambient-light.d.mts +427 -20
  136. package/src/foundry/client/data/documents/ambient-sound.d.mts +478 -14
  137. package/src/foundry/client/data/documents/card.d.mts +598 -44
  138. package/src/foundry/client/data/documents/cards.d.mts +862 -169
  139. package/src/foundry/client/data/documents/chat-message.d.mts +668 -77
  140. package/src/foundry/client/data/documents/combat.d.mts +757 -107
  141. package/src/foundry/client/data/documents/combatant.d.mts +545 -32
  142. package/src/foundry/client/data/documents/drawing.d.mts +545 -14
  143. package/src/foundry/client/data/documents/fog-exploration.d.mts +465 -30
  144. package/src/foundry/client/data/documents/folder.d.mts +567 -51
  145. package/src/foundry/client/data/documents/index.d.mts +2 -0
  146. package/src/foundry/client/data/documents/item.d.mts +691 -24
  147. package/src/foundry/client/data/documents/journal-entry-page.d.mts +654 -55
  148. package/src/foundry/client/data/documents/journal-entry.d.mts +631 -35
  149. package/src/foundry/client/data/documents/macro.d.mts +560 -31
  150. package/src/foundry/client/data/documents/measured-template.d.mts +484 -15
  151. package/src/foundry/client/data/documents/note.d.mts +498 -15
  152. package/src/foundry/client/data/documents/playlist-sound.d.mts +443 -45
  153. package/src/foundry/client/data/documents/playlist.d.mts +710 -99
  154. package/src/foundry/client/data/documents/region-behavior.d.mts +516 -0
  155. package/src/foundry/client/data/documents/region.d.mts +789 -0
  156. package/src/foundry/client/data/documents/scene.d.mts +1216 -159
  157. package/src/foundry/client/data/documents/setting.d.mts +406 -23
  158. package/src/foundry/client/data/documents/table-result.d.mts +488 -14
  159. package/src/foundry/client/data/documents/table.d.mts +667 -78
  160. package/src/foundry/client/data/documents/tile.d.mts +505 -14
  161. package/src/foundry/client/data/documents/token.d.mts +1191 -143
  162. package/src/foundry/client/data/documents/user.d.mts +613 -57
  163. package/src/foundry/client/data/documents/wall.d.mts +555 -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 +259 -248
  167. package/src/foundry/client/pixi/board.d.mts +107 -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 +69 -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 +239 -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 +193 -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 +28 -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 +142 -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 +56 -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 +112 -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 +265 -236
  446. package/src/foundry/common/abstract/document.d.mts +1449 -464
  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 +61 -55
  453. package/src/foundry/common/config.d.mts +11 -3
  454. package/src/foundry/common/constants.d.mts +261 -231
  455. package/src/foundry/common/data/data.d.mts +238 -102
  456. package/src/foundry/common/data/fields.d.mts +1334 -874
  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 -56
  461. package/src/foundry/common/documents/active-effect.d.mts +358 -194
  462. package/src/foundry/common/documents/actor-delta.d.mts +403 -73
  463. package/src/foundry/common/documents/actor.d.mts +359 -117
  464. package/src/foundry/common/documents/adventure.d.mts +312 -142
  465. package/src/foundry/common/documents/ambient-light.d.mts +296 -75
  466. package/src/foundry/common/documents/ambient-sound.d.mts +296 -109
  467. package/src/foundry/common/documents/card.d.mts +321 -187
  468. package/src/foundry/common/documents/cards.d.mts +353 -125
  469. package/src/foundry/common/documents/chat-message.d.mts +338 -167
  470. package/src/foundry/common/documents/combat.d.mts +358 -94
  471. package/src/foundry/common/documents/combatant.d.mts +323 -92
  472. package/src/foundry/common/documents/drawing.d.mts +327 -206
  473. package/src/foundry/common/documents/fog-exploration.d.mts +303 -69
  474. package/src/foundry/common/documents/folder.d.mts +307 -82
  475. package/src/foundry/common/documents/item.d.mts +377 -100
  476. package/src/foundry/common/documents/journal-entry-page.d.mts +327 -187
  477. package/src/foundry/common/documents/journal-entry.d.mts +345 -68
  478. package/src/foundry/common/documents/macro.d.mts +325 -139
  479. package/src/foundry/common/documents/measured-template.d.mts +328 -138
  480. package/src/foundry/common/documents/note.d.mts +312 -151
  481. package/src/foundry/common/documents/playlist-sound.d.mts +309 -102
  482. package/src/foundry/common/documents/playlist.d.mts +341 -131
  483. package/src/foundry/common/documents/region-behavior.d.mts +360 -0
  484. package/src/foundry/common/documents/region.d.mts +355 -0
  485. package/src/foundry/common/documents/roll-table.d.mts +320 -102
  486. package/src/foundry/common/documents/scene.d.mts +437 -350
  487. package/src/foundry/common/documents/setting.d.mts +285 -54
  488. package/src/foundry/common/documents/table-result.d.mts +326 -103
  489. package/src/foundry/common/documents/tile.d.mts +337 -172
  490. package/src/foundry/common/documents/token.d.mts +396 -447
  491. package/src/foundry/common/documents/user.d.mts +296 -173
  492. package/src/foundry/common/documents/wall.d.mts +303 -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 +56 -31
  500. package/src/foundry/common/packages/base-system.d.mts +45 -63
  501. package/src/foundry/common/packages/base-world.d.mts +15 -61
  502. package/src/foundry/common/packages/module.d.mts +7 -7
  503. package/src/foundry/common/packages/sub-types.d.mts +4 -6
  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 +18 -313
  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,32 +1,660 @@
1
- import type { AnyObject } from "../../../../types/utils.d.mts";
1
+ import type { ConfiguredActiveEffect } from "../../../../configuration/index.d.mts";
2
+ import type {
3
+ AnyMutableObject,
4
+ AnyObject,
5
+ IntentionalPartial,
6
+ InterfaceToObject,
7
+ JSONValue,
8
+ Merge,
9
+ RequiredProps,
10
+ } from "#utils";
2
11
  import type { DataModel } from "../../../common/abstract/data.d.mts";
3
12
  import type Document from "../../../common/abstract/document.d.mts";
4
- import type { DocumentDatabaseOperations } from "../../../common/abstract/document.d.mts";
5
- import type { DataField } from "../../../common/data/fields.d.mts";
6
- import type { ActiveEffectData, EffectChangeData, EffectDurationData } from "../../../common/documents/_types.d.mts";
13
+ import type { DataField, DataSchema } from "../../../common/data/fields.d.mts";
14
+ import type { fields } from "../../../common/data/module.d.mts";
7
15
  import type BaseActiveEffect from "../../../common/documents/active-effect.d.mts";
8
16
 
9
17
  declare global {
10
18
  namespace ActiveEffect {
11
- type Metadata = Document.MetadataFor<ActiveEffect>;
19
+ /**
20
+ * The document's name.
21
+ */
22
+ type Name = "ActiveEffect";
23
+
24
+ /**
25
+ * The arguments to construct the document.
26
+ */
27
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
28
+
29
+ /**
30
+ * The documents embedded within `ActiveEffect`.
31
+ */
32
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
33
+
34
+ /**
35
+ * The implementation of the `ActiveEffect` document instance configured through `CONFIG.ActiveEffect.documentClass` in Foundry and
36
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredActiveEffect | `fvtt-types/configuration/ConfiguredActiveEffect`} in fvtt-types.
37
+ */
38
+ type Implementation = Document.ImplementationFor<Name>;
39
+
40
+ /**
41
+ * The implementation of the `ActiveEffect` document configured through `CONFIG.ActiveEffect.documentClass` in Foundry and
42
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
43
+ */
44
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
45
+
46
+ /**
47
+ * A document's metadata is special information about the document ranging anywhere from its name,
48
+ * whether it's indexed, or to the permissions a user has over it.
49
+ */
50
+ interface Metadata
51
+ extends Merge<
52
+ Document.Metadata.Default,
53
+ Readonly<{
54
+ name: "ActiveEffect";
55
+ collection: "effects";
56
+ hasTypeData: true;
57
+ label: string;
58
+ labelPlural: string;
59
+ schemaVersion: string;
60
+ }>
61
+ > {}
62
+
63
+ // No need for Metadata namespace
64
+
65
+ /**
66
+ * Allowed subtypes of `ActiveEffect`. This is configured through various methods. Modern Foundry
67
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
68
+ * under {@link CONFIG.ActiveEffect.dataModels | `CONFIG.ActiveEffect.dataModels`}. This corresponds to
69
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
70
+ *
71
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
72
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
73
+ * {@link DataConfig | `DataConfig`}.
74
+ */
75
+ type SubType = Game.Model.TypeNames<"ActiveEffect">;
76
+
77
+ /**
78
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
79
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
80
+ * module subtypes `${string}.${string}`.
81
+ *
82
+ * @see {@link SubType} for more information.
83
+ */
84
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"ActiveEffect">;
85
+
86
+ /**
87
+ * `Known` represents the types of `ActiveEffect` that a user explicitly registered.
88
+ *
89
+ * @see {@link ConfiguredSubTypes} for more information.
90
+ */
91
+ type Known = ActiveEffect.OfType<ActiveEffect.ConfiguredSubTypes>;
92
+
93
+ /**
94
+ * `OfType` returns an instance of `ActiveEffect` with the corresponding type. This works with both the
95
+ * builtin `ActiveEffect` class or a custom subclass if that is set up in
96
+ * {@link ConfiguredActiveEffect | `fvtt-types/configuration/ConfiguredActiveEffect`}.
97
+ */
98
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
99
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredActiveEffect<Type>, ActiveEffect<Type>>;
100
+
101
+ /**
102
+ * `SystemOfType` returns the system property for a specific `ActiveEffect` subtype.
103
+ */
104
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
105
+
106
+ /**
107
+ * @internal
108
+ */
109
+ interface _SystemMap extends Document.Internal.SystemMap<"ActiveEffect"> {}
110
+
111
+ /**
112
+ * A document's parent is something that can contain it.
113
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
114
+ */
115
+ type Parent = Actor.Implementation | Item.Implementation | null;
116
+
117
+ /**
118
+ * A document's descendants are any child documents, grandchild documents, etc.
119
+ * This is a union of all instances, or never if the document doesn't have any descendants.
120
+ */
121
+ type Descendant = never;
122
+
123
+ /**
124
+ * A document's descendants are any child documents, grandchild documents, etc.
125
+ * This is a union of all classes, or never if the document doesn't have any descendants.
126
+ */
127
+ type DescendantClass = never;
128
+
129
+ /**
130
+ * Types of `CompendiumCollection` this document might be contained in.
131
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
132
+ */
133
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
134
+ type Pack = CompendiumCollection.ForDocument<"Actor" | "Item">;
135
+
136
+ /**
137
+ * An embedded document is a document contained in another.
138
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
139
+ *
140
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
141
+ */
142
+ type Embedded = never;
143
+
144
+ /**
145
+ * The name of the world or embedded collection this document can find itself in.
146
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
147
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
148
+ */
149
+ type ParentCollectionName = Metadata["collection"];
150
+
151
+ /**
152
+ * The world collection that contains this document type. Will be `never` if none exists.
153
+ */
154
+ type CollectionClass = never;
155
+
156
+ /**
157
+ * The world collection that contains this document type. Will be `never` if none exists.
158
+ */
159
+ type Collection = never;
160
+
161
+ /**
162
+ * An instance of `ActiveEffect` that comes from the database but failed validation meaning that
163
+ * its `system` and `_source` could theoretically be anything.
164
+ */
165
+ interface Invalid<out SubType extends ActiveEffect.SubType = ActiveEffect.SubType>
166
+ extends Document.Invalid<OfType<SubType>> {}
167
+
168
+ /**
169
+ * An instance of `ActiveEffect` that comes from the database.
170
+ */
171
+ interface Stored<out SubType extends ActiveEffect.SubType = ActiveEffect.SubType>
172
+ extends Document.Stored<OfType<SubType>> {}
173
+
174
+ /**
175
+ * The data put in {@link ActiveEffect._source | `ActiveEffect#_source`}. This data is what was
176
+ * persisted to the database and therefore it must be valid JSON.
177
+ *
178
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
179
+ * but initialized as a {@link Set | `Set`}.
180
+ */
181
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
182
+
183
+ /**
184
+ * @deprecated {@link ActiveEffect.Source | `ActiveEffect.Source`}
185
+ */
186
+ type PersistedData = Source;
187
+
188
+ /**
189
+ * The data necessary to create a document. Used in places like {@link ActiveEffect.create | `ActiveEffect.create`}
190
+ * and {@link ActiveEffect | `new ActiveEffect(...)`}.
191
+ *
192
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
193
+ * with the right values. This means you can pass a `Set` instance, an array of values,
194
+ * a generator, or any other iterable.
195
+ */
196
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
197
+
198
+ /**
199
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
200
+ * {@link ActiveEffect.name | `ActiveEffect#name`}.
201
+ *
202
+ * This is data transformed from {@link ActiveEffect.Source | `ActiveEffect.Source`} and turned into more
203
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
204
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
205
+ */
206
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
207
+
208
+ /**
209
+ * The data used to update a document, for example {@link ActiveEffect.update | `ActiveEffect#update`}.
210
+ * It is a distinct type from {@link ActiveEffect.CreateData | `DeepPartial<ActiveEffect.CreateData>`} because
211
+ * it has different rules for `null` and `undefined`.
212
+ */
213
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
214
+
215
+ /**
216
+ * The schema for {@link ActiveEffect | `ActiveEffect`}. This is the source of truth for how an ActiveEffect document
217
+ * must be structured.
218
+ *
219
+ * Foundry uses this schema to validate the structure of the {@link ActiveEffect | `ActiveEffect`}. For example
220
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
221
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
222
+ * starting as an array in the database, initialized as a set, and allows updates with any
223
+ * iterable.
224
+ */
225
+ interface Schema extends DataSchema {
226
+ /**
227
+ * The _id which uniquely identifies the ActiveEffect within a parent Actor or Item
228
+ * @defaultValue `null`
229
+ */
230
+ _id: fields.DocumentIdField;
231
+
232
+ /**
233
+ * The name of the ActiveEffect
234
+ * @defaultValue `""`
235
+ */
236
+ // TODO(LukeAbby): fix this when redoing DataField
237
+ // FIXME: This field is `required` with no `initial`, so actually required for construction; Currently an AssignmentType override is required to enforce this
238
+ name: fields.StringField<{ required: true; blank: false; label: "EFFECT.Name"; textSearch: true }, string>;
239
+
240
+ /**
241
+ * An image path used to depict the ActiveEffect as an icon
242
+ * @defaultValue `null`
243
+ */
244
+ img: fields.FilePathField<{ categories: ["IMAGE"]; label: "EFFECT.Image" }>;
245
+
246
+ type: fields.DocumentTypeField<typeof BaseActiveEffect, { initial: typeof foundry.CONST.BASE_DOCUMENT_TYPE }>;
247
+
248
+ system: fields.TypeDataField<typeof BaseActiveEffect>;
249
+
250
+ /**
251
+ * The array of EffectChangeData objects which the ActiveEffect applies
252
+ * @defaultValue `[]`
253
+ */
254
+ changes: fields.ArrayField<
255
+ fields.SchemaField<{
256
+ /**
257
+ * The attribute path in the Actor or Item data which the change modifies
258
+ * @defaultValue `""`
259
+ */
260
+ key: fields.StringField<{ required: true; label: "EFFECT.ChangeKey" }>;
261
+
262
+ /**
263
+ * The value of the change effect
264
+ * @defaultValue `""`
265
+ */
266
+ value: fields.StringField<{ required: true; label: "EFFECT.ChangeValue" }>;
267
+
268
+ /**
269
+ * The modification mode with which the change is applied
270
+ * @defaultValue `CONST.ACTIVE_EFFECT_MODES.ADD`
271
+ */
272
+ mode: fields.NumberField<
273
+ {
274
+ integer: true;
275
+ initial: typeof CONST.ACTIVE_EFFECT_MODES.ADD;
276
+ label: "EFFECT.ChangeMode";
277
+ },
278
+ // TODO: (LukeAbby): fix this when redoing DataField
279
+ // FIXME: Overrides required to enforce the branded type
280
+ CONST.ACTIVE_EFFECT_MODES | null | undefined,
281
+ CONST.ACTIVE_EFFECT_MODES,
282
+ CONST.ACTIVE_EFFECT_MODES
283
+ >;
284
+
285
+ /**
286
+ * The priority level with which this change is applied
287
+ * @defaultValue `null`
288
+ */
289
+ priority: fields.NumberField;
290
+ }>
291
+ >;
292
+
293
+ /**
294
+ * Is this ActiveEffect currently disabled?
295
+ * @defaultValue `false`
296
+ */
297
+ disabled: fields.BooleanField;
298
+
299
+ /**
300
+ * An ActiveEffect.DurationData object which describes the duration of the ActiveEffect
301
+ * @defaultValue see properties
302
+ */
303
+ duration: fields.SchemaField<{
304
+ /**
305
+ * The world time when the active effect first started
306
+ * @defaultValue `null`
307
+ */
308
+ startTime: fields.NumberField<{ initial: null; label: "EFFECT.StartTime" }>;
309
+
310
+ /**
311
+ * The maximum duration of the effect, in seconds
312
+ * @defaultValue `null`
313
+ */
314
+ seconds: fields.NumberField<{ integer: true; min: 0; label: "EFFECT.DurationSecs" }>;
315
+
316
+ /**
317
+ * The _id of the CombatEncounter in which the effect first started
318
+ * @defaultValue `null`
319
+ */
320
+ combat: fields.ForeignDocumentField<typeof foundry.documents.BaseCombat, { label: "EFFECT.Combat" }>;
321
+
322
+ /**
323
+ * The maximum duration of the effect, in combat rounds
324
+ * @defaultValue `null`
325
+ */
326
+ rounds: fields.NumberField<{ integer: true; min: 0 }>;
327
+
328
+ /**
329
+ * The maximum duration of the effect, in combat turns
330
+ * @defaultValue `null`
331
+ */
332
+ turns: fields.NumberField<{ integer: true; min: 0; label: "EFFECT.DurationTurns" }>;
333
+
334
+ /**
335
+ * The round of the CombatEncounter in which the effect first started
336
+ * @defaultValue `null`
337
+ */
338
+ startRound: fields.NumberField<{ integer: true; min: 0 }>;
339
+
340
+ /**
341
+ * The turn of the CombatEncounter in which the effect first started
342
+ * @defaultValue `null`
343
+ */
344
+ startTurn: fields.NumberField<{ integer: true; min: 0; label: "EFFECT.StartTurns" }>;
345
+ }>;
346
+
347
+ /**
348
+ * The HTML text description for this ActiveEffect document.
349
+ * @defaultValue `""`
350
+ */
351
+ description: fields.HTMLField<{ label: "EFFECT.Description"; textSearch: true }>;
12
352
 
13
- type ConfiguredClass = Document.ConfiguredClassForName<"ActiveEffect">;
14
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"ActiveEffect">;
353
+ /**
354
+ * A UUID reference to the document from which this ActiveEffect originated
355
+ * @defaultValue `null`
356
+ */
357
+ origin: fields.StringField<{ nullable: true; blank: false; initial: null; label: "EFFECT.Origin" }>;
15
358
 
359
+ /**
360
+ * A color string which applies a tint to the ActiveEffect icon
361
+ * @defaultValue `"#ffffff"`
362
+ */
363
+ tint: fields.ColorField<{ nullable: false; initial: "#ffffff"; label: "EFFECT.IconTint" }>;
364
+
365
+ /**
366
+ * Does this ActiveEffect automatically transfer from an Item to an Actor?
367
+ * @defaultValue `false`
368
+ */
369
+ transfer: fields.BooleanField<{ initial: true; label: "EFFECT.Transfer" }>;
370
+
371
+ /**
372
+ * Special status IDs that pertain to this effect
373
+ * @defaultValue `[]`
374
+ */
375
+ statuses: fields.SetField<fields.StringField<{ required: true; blank: false }>>;
376
+
377
+ sort: fields.IntegerSortField;
378
+
379
+ /**
380
+ * An object of optional key/value flags
381
+ * @defaultValue `{}`
382
+ */
383
+ flags: fields.ObjectField.FlagsField<Name, InterfaceToObject<CoreFlags>>;
384
+
385
+ _stats: fields.DocumentStatsField;
386
+ }
387
+
388
+ namespace Database {
389
+ /** Options passed along in Get operations for ActiveEffects */
390
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<ActiveEffect.Parent> {}
391
+
392
+ /** Options passed along in Create operations for ActiveEffects */
393
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
394
+ extends foundry.abstract.types.DatabaseCreateOperation<
395
+ ActiveEffect.CreateData,
396
+ ActiveEffect.Parent,
397
+ Temporary
398
+ > {
399
+ animate?: boolean;
400
+ }
401
+
402
+ /** Options passed along in Delete operations for ActiveEffects */
403
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<ActiveEffect.Parent> {
404
+ animate?: boolean;
405
+ }
406
+
407
+ /** Options passed along in Update operations for ActiveEffects */
408
+ interface Update
409
+ extends foundry.abstract.types.DatabaseUpdateOperation<ActiveEffect.UpdateData, ActiveEffect.Parent> {
410
+ animate?: boolean;
411
+ }
412
+
413
+ /** Operation for {@link ActiveEffect.createDocuments | `ActiveEffect.createDocuments`} */
414
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
415
+ extends Document.Database.CreateOperation<ActiveEffect.Database.Create<Temporary>> {}
416
+
417
+ /** Operation for {@link ActiveEffect.updateDocuments | `ActiveEffect.updateDocuments`} */
418
+ interface UpdateDocumentsOperation
419
+ extends Document.Database.UpdateDocumentsOperation<ActiveEffect.Database.Update> {}
420
+
421
+ /** Operation for {@link ActiveEffect.deleteDocuments | `ActiveEffect.deleteDocuments`} */
422
+ interface DeleteDocumentsOperation
423
+ extends Document.Database.DeleteDocumentsOperation<ActiveEffect.Database.Delete> {}
424
+
425
+ /** Operation for {@link ActiveEffect.create | `ActiveEffect.create`} */
426
+ interface CreateOperation<Temporary extends boolean | undefined>
427
+ extends Document.Database.CreateOperation<ActiveEffect.Database.Create<Temporary>> {}
428
+
429
+ /** Operation for {@link ActiveEffect.update | `ActiveEffect#update`} */
430
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
431
+
432
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
433
+
434
+ /** Options for {@link ActiveEffect.get | `ActiveEffect.get`} */
435
+ interface GetOptions extends Document.Database.GetOptions {}
436
+
437
+ /** Options for {@link ActiveEffect._preCreate | `ActiveEffect#_preCreate`} */
438
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
439
+
440
+ /** Options for {@link ActiveEffect._onCreate | `ActiveEffect#_onCreate`} */
441
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
442
+
443
+ /** Operation for {@link ActiveEffect._preCreateOperation | `ActiveEffect._preCreateOperation`} */
444
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<ActiveEffect.Database.Create> {}
445
+
446
+ /** Operation for {@link ActiveEffect._onCreateOperation | `ActiveEffect#_onCreateOperation`} */
447
+ interface OnCreateOperation extends ActiveEffect.Database.Create {}
448
+
449
+ /** Options for {@link ActiveEffect._preUpdate | `ActiveEffect#_preUpdate`} */
450
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
451
+
452
+ /** Options for {@link ActiveEffect._onUpdate | `ActiveEffect#_onUpdate`} */
453
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
454
+
455
+ /** Operation for {@link ActiveEffect._preUpdateOperation | `ActiveEffect._preUpdateOperation`} */
456
+ interface PreUpdateOperation extends ActiveEffect.Database.Update {}
457
+
458
+ /** Operation for {@link ActiveEffect._onUpdateOperation | `ActiveEffect._preUpdateOperation`} */
459
+ interface OnUpdateOperation extends ActiveEffect.Database.Update {}
460
+
461
+ /** Options for {@link ActiveEffect._preDelete | `ActiveEffect#_preDelete`} */
462
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
463
+
464
+ /** Options for {@link ActiveEffect._onDelete | `ActiveEffect#_onDelete`} */
465
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
466
+
467
+ /** Options for {@link ActiveEffect._preDeleteOperation | `ActiveEffect#_preDeleteOperation`} */
468
+ interface PreDeleteOperation extends ActiveEffect.Database.Delete {}
469
+
470
+ /** Options for {@link ActiveEffect._onDeleteOperation | `ActiveEffect#_onDeleteOperation`} */
471
+ interface OnDeleteOperation extends ActiveEffect.Database.Delete {}
472
+
473
+ /** Context for {@link ActiveEffect._onDeleteOperation | `ActiveEffect._onDeleteOperation`} */
474
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<ActiveEffect.Parent> {}
475
+
476
+ /** Context for {@link ActiveEffect._onCreateDocuments | `ActiveEffect._onCreateDocuments`} */
477
+ interface OnCreateDocumentsContext extends Document.ModificationContext<ActiveEffect.Parent> {}
478
+
479
+ /** Context for {@link ActiveEffect._onUpdateDocuments | `ActiveEffect._onUpdateDocuments`} */
480
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<ActiveEffect.Parent> {}
481
+
482
+ /**
483
+ * Options for {@link ActiveEffect._preCreateDescendantDocuments | `ActiveEffect#_preCreateDescendantDocuments`}
484
+ * and {@link ActiveEffect._onCreateDescendantDocuments | `ActiveEffect#_onCreateDescendantDocuments`}
485
+ */
486
+ interface CreateOptions extends Document.Database.CreateOptions<ActiveEffect.Database.Create> {}
487
+
488
+ /**
489
+ * Options for {@link ActiveEffect._preUpdateDescendantDocuments | `ActiveEffect#_preUpdateDescendantDocuments`}
490
+ * and {@link ActiveEffect._onUpdateDescendantDocuments | `ActiveEffect#_onUpdateDescendantDocuments`}
491
+ */
492
+ interface UpdateOptions extends Document.Database.UpdateOptions<ActiveEffect.Database.Update> {}
493
+
494
+ /**
495
+ * Options for {@link ActiveEffect._preDeleteDescendantDocuments | `ActiveEffect#_preDeleteDescendantDocuments`}
496
+ * and {@link ActiveEffect._onDeleteDescendantDocuments | `ActiveEffect#_onDeleteDescendantDocuments`}
497
+ */
498
+ interface DeleteOptions extends Document.Database.DeleteOptions<ActiveEffect.Database.Delete> {}
499
+ }
500
+
501
+ /**
502
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
503
+ */
504
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
505
+
506
+ namespace Flags {
507
+ /**
508
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
509
+ */
510
+ type Scope = Document.FlagKeyOf<Flags>;
511
+
512
+ /**
513
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
514
+ */
515
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
516
+
517
+ /**
518
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
519
+ */
520
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
521
+ }
522
+
523
+ /**
524
+ * The flags provided by Foundry itself for this document.
525
+ */
526
+ interface CoreFlags {
527
+ core?: { overlay?: boolean };
528
+ }
529
+
530
+ interface DurationData {
531
+ /** The world time when the active effect first started */
532
+ startTime?: number | null | undefined;
533
+
534
+ /** The maximum duration of the effect, in seconds */
535
+ seconds?: number | null | undefined;
536
+
537
+ /** The _id of the CombatEncounter in which the effect first started */
538
+ combat?: string | null | undefined;
539
+
540
+ /** The maximum duration of the effect, in combat rounds */
541
+ rounds?: number | null | undefined;
542
+
543
+ /** The maximum duration of the effect, in combat turns */
544
+ turns?: number | null | undefined;
545
+
546
+ /** The round of the CombatEncounter in which the effect first started */
547
+ startRound?: number | null | undefined;
548
+
549
+ /** The turn of the CombatEncounter in which the effect first started */
550
+ startTurn?: number | null | undefined;
551
+ }
552
+
553
+ type DurationType = "seconds" | "turns" | "none";
554
+
555
+ // Must be kept in sync with
556
+ interface Duration extends DurationData {
557
+ /** The duration type, either "seconds", "turns", or "none" */
558
+ type: DurationType;
559
+
560
+ /** The total effect duration, in seconds of world time or as a decimal number with the format \{rounds\}.\{turns\} */
561
+ duration: number;
562
+
563
+ /** The remaining effect duration, in seconds of world time or as a decimal number with the format \{rounds\}.\{turns\} */
564
+ remaining: number;
565
+
566
+ /** A formatted string label that represents the remaining duration */
567
+ label: string;
568
+
569
+ /** An internal flag used determine when to recompute seconds-based duration */
570
+ _worldTime?: number;
571
+
572
+ /** An internal flag used determine when to recompute turns-based duration */
573
+ _combatTime?: number;
574
+ }
575
+
576
+ interface PrepareDurationReturn extends RequiredProps<IntentionalPartial<Duration>, "type"> {}
577
+
578
+ interface InitialDurationData {
579
+ /** @defaultValue `game.time.worldTime` */
580
+ startTime: number;
581
+
582
+ /** @remarks Only exists `if (game.combat)` */
583
+ startRound?: number;
584
+
585
+ /** @remarks Only exists `if (game.combat)` */
586
+ startTurn?: number;
587
+ }
588
+
589
+ interface GetInitialDurationReturn {
590
+ duration: InitialDurationData;
591
+ }
592
+
593
+ interface EffectChangeData {
594
+ /**
595
+ * The attribute path in the Actor or Item data which the change modifies
596
+ * @defaultValue `""`
597
+ */
598
+ key: string;
599
+
600
+ /**
601
+ * The value of the change effect
602
+ * @defaultValue `""`
603
+ */
604
+ value: string;
605
+
606
+ // TODO (@LukeAbby): `undefined` is not valid. We can't pull directly from the schema because this interface is used inside of field methods.
607
+
608
+ /**
609
+ * The modification mode with which the change is applied
610
+ * @defaultValue `CONST.ACTIVE_EFFECT_MODES.ADD`
611
+ * @privateRemarks `undefined` is not actually a possible value, included here due to fvtt-types handling of `initial` values
612
+ */
613
+ mode: CONST.ACTIVE_EFFECT_MODES | null | undefined;
614
+
615
+ /**
616
+ * The priority level with which this change is applied
617
+ * @defaultValue `null`
618
+ * @privateRemarks `undefined` is not actually a possible value, included here due to fvtt-types handling of `initial` values
619
+ */
620
+ priority: number | null | undefined;
621
+ }
622
+
623
+ type ApplyFieldReturn<Field extends DataField.Any | null | undefined> = Field extends DataField.Any
624
+ ? DataField.InitializedTypeFor<Field>
625
+ : unknown;
626
+
627
+ /**
628
+ * @deprecated {@link ActiveEffect.Database | `ActiveEffect.DatabaseOperation`}
629
+ */
16
630
  interface DatabaseOperations
17
- extends DocumentDatabaseOperations<
18
- ActiveEffect,
631
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
632
+ extends Document.Database.Operations<
633
+ ActiveEffect.Implementation,
19
634
  { animate: boolean },
20
635
  { animate: boolean },
21
636
  { animate: boolean }
22
637
  > {}
23
638
 
24
- // Helpful aliases
25
- type TypeNames = BaseActiveEffect.TypeNames;
26
- type ConstructorData = BaseActiveEffect.ConstructorData;
27
- type UpdateData = BaseActiveEffect.UpdateData;
28
- type Schema = BaseActiveEffect.Schema;
29
- type Source = BaseActiveEffect.Source;
639
+ /**
640
+ * @deprecated {@link ActiveEffect.SubType | `ActiveEffect.SubType`}
641
+ */
642
+ type TypeNames = ActiveEffect.SubType;
643
+
644
+ /**
645
+ * @deprecated {@link ActiveEffect.CreateData | `ActiveEffect.CreateData`}
646
+ */
647
+ interface ConstructorData extends ActiveEffect.CreateData {}
648
+
649
+ /**
650
+ * @deprecated {@link ActiveEffect.implementation | `ActiveEffect.ImplementationClass`}
651
+ */
652
+ type ConfiguredClass = ImplementationClass;
653
+
654
+ /**
655
+ * @deprecated {@link ActiveEffect.Implementation | `ActiveEffect.Implementation`}
656
+ */
657
+ type ConfiguredInstance = Implementation;
30
658
  }
31
659
 
32
660
  /**
@@ -34,16 +662,22 @@ declare global {
34
662
  * Each ActiveEffect belongs to the effects collection of its parent Document.
35
663
  * Each ActiveEffect contains a ActiveEffectData object which provides its source data.
36
664
  *
37
- * @see {@link ActiveEffectData} The ActiveEffect data schema
38
- * @see {@link Actor} The Actor document which contains ActiveEffect embedded documents
39
- * @see {@link Item} The Item document which contains ActiveEffect embedded documents
665
+ * @see {@link ActiveEffectData | `ActiveEffectData`} The ActiveEffect data schema
666
+ * @see {@link Actor | `Actor`} The Actor document which contains ActiveEffect embedded documents
667
+ * @see {@link Item | `Item`} The Item document which contains ActiveEffect embedded documents
40
668
  */
41
- class ActiveEffect extends ClientDocumentMixin(foundry.documents.BaseActiveEffect) {
42
- static override metadata: ActiveEffect.Metadata;
669
+ class ActiveEffect<out SubType extends ActiveEffect.SubType = ActiveEffect.SubType> extends ClientDocumentMixin(
670
+ foundry.documents.BaseActiveEffect,
671
+ )<SubType> {
672
+ /**
673
+ * @param data - Initial data from which to construct the `ActiveEffect`
674
+ * @param context - Construction context options
675
+ */
676
+ constructor(...args: ActiveEffect.ConstructorArgs);
43
677
 
44
678
  /**
45
679
  * Create an ActiveEffect instance from some status effect ID.
46
- * Delegates to {@link ActiveEffect._fromStatusEffect} to create the ActiveEffect instance
680
+ * Delegates to {@link ActiveEffect._fromStatusEffect | `ActiveEffect._fromStatusEffect`} to create the ActiveEffect instance
47
681
  * after creating the ActiveEffect data from the status effect data if `CONFIG.statusEffects`.
48
682
  * @param statusId - The status effect ID.
49
683
  * @param options - Additional options to pass to the ActiveEffect constructor.
@@ -52,28 +686,32 @@ declare global {
52
686
  * @throws An error if there is no status effect in `CONFIG.statusEffects` with the given status ID and if
53
687
  * the status has implicit statuses but doesn't have a static _id.
54
688
  */
689
+ // options: not null (parameter default only)
55
690
  static fromStatusEffect(
56
691
  statusId: string,
57
- options?: Document.ConstructionContext<Document.Any | null>,
58
- ): Promise<ActiveEffect.ConfiguredInstance>;
692
+ options?: Document.ConstructionContext<ActiveEffect.Parent>,
693
+ ): Promise<ActiveEffect.Implementation>;
59
694
 
60
695
  /**
61
696
  * Create an ActiveEffect instance from status effect data.
62
- * Called by {@link ActiveEffect.fromStatusEffect}.
697
+ * Called by {@link ActiveEffect.fromStatusEffect | `ActiveEffect.fromStatusEffect`}.
63
698
  * @param statusId - The status effect ID.
64
699
  * @param effectData - The status effect data.
65
700
  * @param options - Additional options to pass to the ActiveEffect constructor.
66
701
  * @returns The created ActiveEffect instance.
702
+ *
703
+ * @remarks Core's implementation doesn't use `statusId`, simply returning `new this(effectData, options)`
67
704
  */
705
+ // options: not null (destructured where forwarded)
68
706
  protected static _fromStatusEffect(
69
707
  statusId: string,
70
- effectData: ActiveEffectData,
71
- options?: Document.ConstructionContext<Document.Any | null>,
72
- ): Promise<ActiveEffect.ConfiguredInstance>;
708
+ effectData: ActiveEffect.CreateData,
709
+ options?: Document.ConstructionContext<ActiveEffect.Parent>,
710
+ ): Promise<ActiveEffect.Implementation>;
73
711
 
74
712
  /**
75
713
  * Is there some system logic that makes this active effect ineligible for application?
76
- * @defaultValue `false`
714
+ * @remarks Core's implementation always returns `false`
77
715
  */
78
716
  get isSuppressed(): boolean;
79
717
 
@@ -92,15 +730,16 @@ declare global {
92
730
  */
93
731
  get modifiesActor(): boolean;
94
732
 
95
- prepareBaseData(): void;
733
+ override prepareBaseData(): void;
96
734
 
97
- prepareDerivedData(): void;
735
+ override prepareDerivedData(): void;
98
736
 
99
737
  /**
100
738
  * Update derived Active Effect duration data.
101
739
  * Configure the remaining and label properties to be getters which lazily recompute only when necessary.
102
740
  */
103
- updateDuration(): ActiveEffectDuration;
741
+ // TODO: This adds two getter properties (`remaining` and `label`) to `this.duration` (a SchemaField property on the document)
742
+ updateDuration(): ActiveEffect.Duration;
104
743
 
105
744
  /**
106
745
  * Determine whether the ActiveEffect requires a duration update.
@@ -109,7 +748,8 @@ declare global {
109
748
  */
110
749
  protected _requiresDurationUpdate(): boolean;
111
750
 
112
- protected _prepareDuration(): Omit<ActiveEffectDuration, keyof EffectDurationData>;
751
+ /** @internal */
752
+ protected _prepareDuration(): ActiveEffect.PrepareDurationReturn;
113
753
 
114
754
  /**
115
755
  * Format a round+turn combination as a decimal
@@ -117,7 +757,9 @@ declare global {
117
757
  * @param turn - The turn number
118
758
  * @param nTurns - The maximum number of turns in the encounter
119
759
  * @returns The decimal representation
760
+ * @private
120
761
  */
762
+ // nTurns: not null (`!== undefined` check)
121
763
  protected _getCombatTime(round: number, turn: number, nTurns?: number): number;
122
764
 
123
765
  /**
@@ -125,6 +767,7 @@ declare global {
125
767
  * @param rounds - The number of rounds
126
768
  * @param turns - The number of turns
127
769
  * @returns The formatted label
770
+ * @private
128
771
  */
129
772
  protected _getDurationLabel(rounds: number, turns: number): string;
130
773
 
@@ -141,13 +784,19 @@ declare global {
141
784
  get sourceName(): string;
142
785
 
143
786
  /**
144
- * Apply EffectChangeData to a field within a DataModel.
787
+ * Apply ActiveEffect.EffectChangeData to a field within a DataModel.
145
788
  * @param model - The model instance.
146
789
  * @param change - The change to apply.
147
790
  * @param field - The field. If not supplied, it will be retrieved from the supplied model.
148
791
  * @returns The updated value.
792
+ *
793
+ * @remarks `field` default provided by `??= model.schema.getField(change.key)`
149
794
  */
150
- static applyField(model: DataModel.Any, change: EffectChangeData, field?: DataField.Any): unknown;
795
+ static applyField<Field extends DataField.Any | null | undefined = undefined>(
796
+ model: DataModel.Any,
797
+ change: ActiveEffect.EffectChangeData,
798
+ field?: Field,
799
+ ): ActiveEffect.ApplyFieldReturn<Field>;
151
800
 
152
801
  /**
153
802
  * Apply this ActiveEffect to a provided Actor.
@@ -155,9 +804,9 @@ declare global {
155
804
  * TODO: When we revisit this in Active Effects V2 this should become an Actor method, or a static method
156
805
  * @param actor - The Actor to whom this effect should be applied
157
806
  * @param change - The change data being applied
158
- * @returns The resulting applied value
807
+ * @returns An object of property paths and their updated values.
159
808
  */
160
- apply(actor: Actor.ConfiguredInstance, change: EffectChangeData): unknown;
809
+ apply(actor: Actor.Implementation, change: ActiveEffect.EffectChangeData): AnyMutableObject;
161
810
 
162
811
  /**
163
812
  * Apply this ActiveEffect to a provided Actor using a heuristic to infer the value types based on the current value
@@ -166,30 +815,37 @@ declare global {
166
815
  * @param change - The change data being applied.
167
816
  * @param changes - The aggregate update paths and their updated values.
168
817
  */
169
- protected _applyLegacy(actor: Actor.ConfiguredInstance, change: EffectDurationData, changes: AnyObject): void;
818
+ protected _applyLegacy(
819
+ actor: Actor.Implementation,
820
+ change: ActiveEffect.EffectChangeData,
821
+ changes: AnyMutableObject,
822
+ ): void;
170
823
 
171
824
  /**
172
- * Cast a raw EffectChangeData change string to the desired data type.
825
+ * Cast a raw ActiveEffect.EffectChangeData change string to the desired data type.
173
826
  * @param raw - The raw string value
174
827
  * @param type - The target data type that the raw value should be cast to match
175
828
  * @returns The parsed delta cast to the target data type
829
+ * @private
830
+ * @remarks Core's implementation returns `boolean | number | string` or the return of {@link ActiveEffect._parseOrString | `ActiveEffect#_parseOrString`}
176
831
  */
177
- protected _castDelta(raw: string, type: string): boolean | number | string | object;
832
+ protected _castDelta(raw: string, type: string): JSONValue;
178
833
 
179
834
  /**
180
- * Cast a raw EffectChangeData change string to an Array of an inner type.
835
+ * Cast a raw ActiveEffect.EffectChangeData change string to an Array of an inner type.
181
836
  * @param raw - The raw string value
182
837
  * @param type - The target data type of inner array elements
183
838
  * @returns The parsed delta cast as a typed array
184
839
  */
185
- protected _castArray(raw: string, type: string): Array<boolean | string | number | object>;
840
+ protected _castArray(raw: string, type: string): JSONValue[];
186
841
 
187
842
  /**
188
843
  * Parse serialized JSON, or retain the raw string.
189
844
  * @param raw - A raw serialized string
190
845
  * @returns The parsed value, or the original value if parsing failed
846
+ * @remarks Tries to `JSON.parse(raw)`, simply returns `raw` if error
191
847
  */
192
- protected _parseOrString(raw: string): string | object;
848
+ protected _parseOrString(raw: string): JSONValue;
193
849
 
194
850
  /**
195
851
  * Apply an ActiveEffect that uses an ADD application mode.
@@ -206,13 +862,15 @@ declare global {
206
862
  * @param delta - The parsed value of the change object
207
863
  * @param changes - An object which accumulates changes to be applied
208
864
  * @returns The resulting applied value
865
+ * @private
866
+ * @remarks Core's implementation does not use `actor`
209
867
  */
210
868
  protected _applyAdd(
211
- actor: Actor.ConfiguredInstance,
212
- change: EffectChangeData,
213
- current: any,
214
- delta: any,
215
- changes: AnyObject,
869
+ actor: Actor.Implementation,
870
+ change: ActiveEffect.EffectChangeData,
871
+ current: unknown,
872
+ delta: unknown,
873
+ changes: AnyMutableObject,
216
874
  ): void;
217
875
 
218
876
  /**
@@ -224,13 +882,15 @@ declare global {
224
882
  * @param delta - The parsed value of the change object
225
883
  * @param changes - An object which accumulates changes to be applied
226
884
  * @returns The resulting applied value
885
+ * @private
886
+ * @remarks Core's implementation does not use `actor`
227
887
  */
228
888
  protected _applyMultiply(
229
- actor: Actor.ConfiguredInstance,
230
- change: EffectChangeData,
231
- current: any,
232
- delta: any,
233
- changes: AnyObject,
889
+ actor: Actor.Implementation,
890
+ change: ActiveEffect.EffectChangeData,
891
+ current: unknown,
892
+ delta: unknown,
893
+ changes: AnyMutableObject,
234
894
  ): void;
235
895
 
236
896
  /**
@@ -242,13 +902,15 @@ declare global {
242
902
  * @param delta - The parsed value of the change object
243
903
  * @param changes - An object which accumulates changes to be applied
244
904
  * @returns The resulting applied value
905
+ * @private
906
+ * @remarks Core's implementation does not use `actor` or `current`
245
907
  */
246
908
  protected _applyOverride(
247
- actor: Actor.ConfiguredInstance,
248
- change: EffectChangeData,
249
- current: any,
250
- delta: any,
251
- changes: AnyObject,
909
+ actor: Actor.Implementation,
910
+ change: ActiveEffect.EffectChangeData,
911
+ current: unknown,
912
+ delta: unknown,
913
+ changes: AnyMutableObject,
252
914
  ): void;
253
915
 
254
916
  /**
@@ -260,13 +922,15 @@ declare global {
260
922
  * @param delta - The parsed value of the change object
261
923
  * @param changes - An object which accumulates changes to be applied
262
924
  * @returns The resulting applied value
925
+ * @private
926
+ * @remarks Core's implementation does not use `actor`
263
927
  */
264
928
  protected _applyUpgrade(
265
- actor: Actor.ConfiguredInstance,
266
- change: EffectChangeData,
267
- current: any,
268
- delta: any,
269
- changes: AnyObject,
929
+ actor: Actor.Implementation,
930
+ change: ActiveEffect.EffectChangeData,
931
+ current: unknown,
932
+ delta: unknown,
933
+ changes: AnyMutableObject,
270
934
  ): void;
271
935
 
272
936
  /**
@@ -277,33 +941,33 @@ declare global {
277
941
  * @param delta - The parsed value of the change object
278
942
  * @param changes - An object which accumulates changes to be applied
279
943
  * @returns The resulting applied value
944
+ * @private
280
945
  */
281
946
  protected _applyCustom(
282
- actor: Actor.ConfiguredInstance,
283
- change: EffectChangeData,
284
- current: any,
285
- delta: any,
286
- changes: AnyObject,
947
+ actor: Actor.Implementation,
948
+ change: ActiveEffect.EffectChangeData,
949
+ current: unknown,
950
+ delta: unknown,
951
+ changes: AnyMutableObject,
287
952
  ): void;
288
953
 
289
954
  /**
290
955
  * Retrieve the initial duration configuration.
291
956
  */
292
- static getInitialDuration(): {
293
- duration: {
294
- startTime: number;
295
- startRound?: number | undefined;
296
- startTurn?: number | undefined;
297
- };
298
- };
299
-
300
- // TODO: This is a minor override and doing the extension is complicated
301
- // getFlag(scope: string, key: string): unknown;
957
+ static getInitialDuration(): ActiveEffect.GetInitialDurationReturn;
302
958
 
303
959
  /**
304
- * @privateRemarks _preCreate, _onCreate, _onUpdate, _preUpdate, and _onDelete are all overridden but with no signature changes.
305
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
960
+ * @remarks If attempting to set `core.statusId`, logs a compatibility warning:
961
+ *
962
+ * "You are setting flags.core.statusId on an Active Effect. This flag is deprecated
963
+ * in favor of the {@link ActiveEffect.statuses | `statuses`} set."
306
964
  */
965
+ override getFlag<Scope extends ActiveEffect.Flags.Scope, Key extends ActiveEffect.Flags.Key<Scope>>(
966
+ scope: Scope,
967
+ key: Key,
968
+ ): Document.GetFlag<ActiveEffect.Name, Scope, Key>;
969
+
970
+ // _preCreate, _onCreate, _preUpdate, _onUpdate, and _onDelete are all overridden but with no signature changes from BaseActiveEffect.
307
971
 
308
972
  /**
309
973
  * Display changes to active effects as scrolling Token status text.
@@ -311,50 +975,54 @@ declare global {
311
975
  */
312
976
  protected _displayScrollingStatus(enabled: boolean): void;
313
977
 
314
- /* -------------------------------------------- */
315
- /* Deprecations and Compatibility */
316
- /* -------------------------------------------- */
317
-
318
978
  /**
319
979
  * Get the name of the source of the Active Effect
320
980
  * @deprecated since v11, will be removed in v13
321
- * @remarks `"You are accessing ActiveEffect._getSourceName which is deprecated."`
981
+ * @remarks "You are accessing `ActiveEffect._getSourceName` which is deprecated."
322
982
  */
323
983
  _getSourceName(): Promise<string>;
324
- }
325
984
 
326
- interface ActiveEffect {
327
- duration: ActiveEffectDuration;
328
- }
329
-
330
- interface ActiveEffectDuration extends EffectDurationData {
331
- /**
332
- * The duration type, either "seconds", "turns", or "none"
985
+ /*
986
+ * After this point these are not really overridden methods.
987
+ * They are here because Foundry's documents are complex and have lots of edge cases.
988
+ * There are DRY ways of representing this but this ends up being harder to understand
989
+ * for end users extending these functions, especially for static methods. There are also a
990
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
991
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
992
+ * separate like this helps against circularities.
333
993
  */
334
- type: "seconds" | "turns" | "none";
335
994
 
336
- /**
337
- * The total effect duration, in seconds of world time or as a decimal
338
- * number with the format `{rounds}.{turns}`
339
- */
340
- duration: number | null;
995
+ // ClientDocument overrides
341
996
 
342
- /**
343
- * The remaining effect duration, in seconds of world time or as a decimal
344
- * number with the format `{rounds}.{turns}`
345
- */
346
- remaining: number | null;
997
+ // Descendant Document operations have been left out because ActiveEffect does not have any descendant documents.
347
998
 
348
- label: string;
999
+ // context: not null (destructured)
1000
+ static override defaultName(
1001
+ context?: Document.DefaultNameContext<"ActiveEffect", NonNullable<ActiveEffect.Parent>>,
1002
+ ): string;
349
1003
 
350
- /**
351
- * An internal flag used determine when to recompute seconds-based duration
352
- */
353
- _worldTime: number;
1004
+ /** @remarks `context.parent` is required as creation requires one */
1005
+ static override createDialog(
1006
+ data: Document.CreateDialogData<ActiveEffect.CreateData> | undefined,
1007
+ context: Document.CreateDialogContext<"ActiveEffect", NonNullable<ActiveEffect.Parent>>,
1008
+ ): Promise<ActiveEffect.Stored | null | undefined>;
354
1009
 
355
- /**
356
- * An internal flag used determine when to recompute turns-based duration
357
- */
358
- _combatTime: number;
1010
+ // options: not null (parameter default only)
1011
+ static override fromDropData(
1012
+ data: Document.DropData<ActiveEffect.Implementation>,
1013
+ options?: AnyObject,
1014
+ ): Promise<ActiveEffect.Implementation | undefined>;
1015
+
1016
+ static override fromImport(
1017
+ source: ActiveEffect.Source,
1018
+ context?: Document.FromImportContext<ActiveEffect.Parent> | null,
1019
+ ): Promise<ActiveEffect.Implementation>;
1020
+
1021
+ override _onClickDocumentLink(event: MouseEvent): ClientDocument.OnClickDocumentLinkReturn;
359
1022
  }
1023
+
1024
+ /**
1025
+ * @deprecated {@link ActiveEffect.Duration | `ActiveEffect.Duration`}
1026
+ */
1027
+ type ActiveEffectDuration = ActiveEffect.Duration;
360
1028
  }