@league-of-foundry-developers/foundry-vtt-types 13.340.0 → 13.340.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/README.md +6 -3
  2. package/package.json +40 -18
  3. package/src/configuration/configuration.d.mts +24 -23
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +8 -2
  6. package/src/configuration/index.d.mts +1 -0
  7. package/src/foundry/client/apps/app.d.mts +121 -119
  8. package/src/foundry/client/apps/av/av-config.d.mts +13 -8
  9. package/src/foundry/client/apps/av/cameras.d.mts +11 -11
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +22 -8
  11. package/src/foundry/client/apps/form.d.mts +112 -94
  12. package/src/foundry/client/apps/forms/actor.d.mts +22 -12
  13. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +13 -8
  14. package/src/foundry/client/apps/forms/adventure-importer.d.mts +15 -7
  15. package/src/foundry/client/apps/forms/base-sheet.d.mts +14 -7
  16. package/src/foundry/client/apps/forms/card-config.d.mts +17 -9
  17. package/src/foundry/client/apps/forms/cards-config.d.mts +13 -14
  18. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  19. package/src/foundry/client/apps/forms/combatant-config.d.mts +4 -4
  20. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/effect-config.d.mts +6 -6
  22. package/src/foundry/client/apps/forms/folder-config.d.mts +5 -5
  23. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  24. package/src/foundry/client/apps/forms/grid-config.d.mts +11 -11
  25. package/src/foundry/client/apps/forms/image-popout.d.mts +28 -22
  26. package/src/foundry/client/apps/forms/item.d.mts +6 -6
  27. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +17 -15
  28. package/src/foundry/client/apps/forms/journal-sheet.d.mts +46 -37
  29. package/src/foundry/client/apps/forms/macro-config.d.mts +6 -6
  30. package/src/foundry/client/apps/forms/measure-template.d.mts +8 -8
  31. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  32. package/src/foundry/client/apps/forms/playlist-config.d.mts +7 -9
  33. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +6 -6
  34. package/src/foundry/client/apps/forms/roll-table-config.d.mts +9 -10
  35. package/src/foundry/client/apps/forms/scene-config.d.mts +39 -39
  36. package/src/foundry/client/apps/forms/sheet-config.d.mts +8 -8
  37. package/src/foundry/client/apps/forms/user-config.d.mts +11 -11
  38. package/src/foundry/client/apps/hud/chatbubble.d.mts +14 -9
  39. package/src/foundry/client/apps/hud/container.d.mts +3 -3
  40. package/src/foundry/client/apps/hud/controls.d.mts +124 -84
  41. package/src/foundry/client/apps/hud/hotbar.d.mts +12 -12
  42. package/src/foundry/client/apps/hud/hud.d.mts +4 -4
  43. package/src/foundry/client/apps/hud/menu.d.mts +6 -6
  44. package/src/foundry/client/apps/hud/navigation.d.mts +11 -11
  45. package/src/foundry/client/apps/hud/pause.d.mts +7 -7
  46. package/src/foundry/client/apps/hud/players.d.mts +11 -11
  47. package/src/foundry/client/apps/i18n.d.mts +31 -27
  48. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  49. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +4 -4
  50. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  51. package/src/foundry/client/apps/placeables/note-config.d.mts +27 -17
  52. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  53. package/src/foundry/client/apps/placeables/tile-hud.d.mts +8 -8
  54. package/src/foundry/client/apps/placeables/token-config.d.mts +84 -63
  55. package/src/foundry/client/apps/placeables/token-hud.d.mts +10 -10
  56. package/src/foundry/client/apps/placeables/wall-config.d.mts +19 -16
  57. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  58. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +2 -2
  59. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +13 -10
  60. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  63. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  64. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +33 -28
  65. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +12 -9
  67. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +40 -32
  68. package/src/foundry/client/apps/sidebar/document-directory.d.mts +44 -37
  69. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +3 -3
  70. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  71. package/src/foundry/client/apps/sidebar/sidebar.d.mts +7 -7
  72. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +4 -4
  73. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +4 -4
  74. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +34 -29
  75. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +15 -15
  76. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +21 -12
  77. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +4 -4
  78. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +4 -4
  79. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +8 -8
  80. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +21 -21
  81. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +4 -4
  82. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +6 -6
  83. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +12 -12
  84. package/src/foundry/client/apps/templates.d.mts +2 -2
  85. package/src/foundry/client/av/clients/simplepeer.d.mts +4 -4
  86. package/src/foundry/client/av/settings.d.mts +16 -13
  87. package/src/foundry/client/config.d.mts +1982 -1823
  88. package/src/foundry/client/core/document-index.d.mts +12 -4
  89. package/src/foundry/client/core/hooks.d.mts +0 -2
  90. package/src/foundry/client/core/image.d.mts +13 -11
  91. package/src/foundry/client/core/issues.d.mts +11 -6
  92. package/src/foundry/client/core/keybindings.d.mts +3 -3
  93. package/src/foundry/client/core/nue.d.mts +1 -1
  94. package/src/foundry/client/core/packages.d.mts +393 -63
  95. package/src/foundry/client/core/settings.d.mts +34 -12
  96. package/src/foundry/client/core/socket.d.mts +2 -2
  97. package/src/foundry/client/core/sorting.d.mts +6 -6
  98. package/src/foundry/client/core/time.d.mts +6 -3
  99. package/src/foundry/client/core/tooltip.d.mts +1 -1
  100. package/src/foundry/client/core/tour.d.mts +58 -49
  101. package/src/foundry/client/core/tours.d.mts +1 -1
  102. package/src/foundry/client/core/utils.d.mts +3 -3
  103. package/src/foundry/client/core/workers.d.mts +24 -17
  104. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -15
  105. package/src/foundry/client/data/abstract/client-document.d.mts +133 -172
  106. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +14 -36
  107. package/src/foundry/client/data/abstract/document-collection.d.mts +89 -65
  108. package/src/foundry/client/data/abstract/world-collection.d.mts +47 -53
  109. package/src/foundry/client/data/collections/actors.d.mts +24 -31
  110. package/src/foundry/client/data/collections/cards.d.mts +10 -6
  111. package/src/foundry/client/data/collections/combats.d.mts +12 -8
  112. package/src/foundry/client/data/collections/compendium-collection.d.mts +79 -66
  113. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  114. package/src/foundry/client/data/collections/compendium-packs.d.mts +4 -4
  115. package/src/foundry/client/data/collections/fog.d.mts +10 -6
  116. package/src/foundry/client/data/collections/folder.d.mts +15 -10
  117. package/src/foundry/client/data/collections/items.d.mts +11 -7
  118. package/src/foundry/client/data/collections/journal.d.mts +16 -10
  119. package/src/foundry/client/data/collections/macros.d.mts +15 -22
  120. package/src/foundry/client/data/collections/messages.d.mts +14 -10
  121. package/src/foundry/client/data/collections/playlists.d.mts +12 -9
  122. package/src/foundry/client/data/collections/scenes.d.mts +19 -31
  123. package/src/foundry/client/data/collections/settings.d.mts +10 -6
  124. package/src/foundry/client/data/collections/tables.d.mts +11 -7
  125. package/src/foundry/client/data/collections/users.d.mts +14 -11
  126. package/src/foundry/client/data/documents/active-effect.d.mts +652 -88
  127. package/src/foundry/client/data/documents/actor-delta.d.mts +672 -28
  128. package/src/foundry/client/data/documents/actor.d.mts +722 -60
  129. package/src/foundry/client/data/documents/adventure.d.mts +482 -49
  130. package/src/foundry/client/data/documents/ambient-light.d.mts +426 -21
  131. package/src/foundry/client/data/documents/ambient-sound.d.mts +474 -15
  132. package/src/foundry/client/data/documents/card.d.mts +570 -39
  133. package/src/foundry/client/data/documents/cards.d.mts +742 -78
  134. package/src/foundry/client/data/documents/chat-message.d.mts +578 -45
  135. package/src/foundry/client/data/documents/combat.d.mts +701 -71
  136. package/src/foundry/client/data/documents/combatant.d.mts +510 -28
  137. package/src/foundry/client/data/documents/drawing.d.mts +543 -16
  138. package/src/foundry/client/data/documents/fog-exploration.d.mts +413 -27
  139. package/src/foundry/client/data/documents/folder.d.mts +461 -40
  140. package/src/foundry/client/data/documents/item.d.mts +679 -25
  141. package/src/foundry/client/data/documents/journal-entry-page.d.mts +587 -21
  142. package/src/foundry/client/data/documents/journal-entry.d.mts +621 -20
  143. package/src/foundry/client/data/documents/macro.d.mts +530 -25
  144. package/src/foundry/client/data/documents/measured-template.d.mts +480 -16
  145. package/src/foundry/client/data/documents/note.d.mts +495 -18
  146. package/src/foundry/client/data/documents/playlist-sound.d.mts +429 -27
  147. package/src/foundry/client/data/documents/playlist.d.mts +666 -75
  148. package/src/foundry/client/data/documents/region-behavior.d.mts +468 -38
  149. package/src/foundry/client/data/documents/region.d.mts +661 -35
  150. package/src/foundry/client/data/documents/scene.d.mts +986 -149
  151. package/src/foundry/client/data/documents/setting.d.mts +397 -15
  152. package/src/foundry/client/data/documents/table-result.d.mts +479 -17
  153. package/src/foundry/client/data/documents/table.d.mts +663 -80
  154. package/src/foundry/client/data/documents/tile.d.mts +502 -16
  155. package/src/foundry/client/data/documents/token.d.mts +1114 -90
  156. package/src/foundry/client/data/documents/user.d.mts +495 -27
  157. package/src/foundry/client/data/documents/wall.d.mts +550 -15
  158. package/src/foundry/client/game.d.mts +58 -92
  159. package/src/foundry/client/head.d.mts +5 -6
  160. package/src/foundry/client/hooks.d.mts +237 -221
  161. package/src/foundry/client/pixi/board.d.mts +95 -89
  162. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +6 -5
  163. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +5 -5
  164. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +2 -2
  165. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +3 -3
  166. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +3 -3
  167. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +23 -21
  168. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +5 -5
  169. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +5 -5
  170. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +57 -51
  171. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +3 -3
  172. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +7 -7
  173. package/src/foundry/client/pixi/core/interaction/ping.d.mts +19 -11
  174. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +7 -2
  175. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +29 -23
  176. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +83 -38
  177. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +3 -3
  178. package/src/foundry/client/pixi/core/interaction/targets.d.mts +9 -9
  179. package/src/foundry/client/pixi/core/loader.d.mts +8 -8
  180. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +9 -4
  181. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +3 -3
  182. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +3 -3
  183. package/src/foundry/client/pixi/core/shapes/ray.d.mts +23 -17
  184. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +19 -14
  185. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  186. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +3 -3
  187. package/src/foundry/client/pixi/groups/effects.d.mts +4 -4
  188. package/src/foundry/client/pixi/groups/environment.d.mts +5 -5
  189. package/src/foundry/client/pixi/groups/hidden.d.mts +3 -3
  190. package/src/foundry/client/pixi/groups/interface.d.mts +6 -6
  191. package/src/foundry/client/pixi/groups/overlay.d.mts +3 -3
  192. package/src/foundry/client/pixi/groups/primary.d.mts +11 -11
  193. package/src/foundry/client/pixi/groups/rendered.d.mts +3 -3
  194. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +3 -3
  195. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +13 -13
  196. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +279 -233
  197. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +17 -8
  198. package/src/foundry/client/pixi/layers/controls/door.d.mts +26 -14
  199. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -79
  200. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  201. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +4 -5
  202. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +6 -4
  203. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +7 -4
  204. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +19 -16
  205. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +101 -84
  206. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +13 -4
  207. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  208. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +134 -59
  209. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +13 -3
  210. package/src/foundry/client/pixi/layers/grid/layer.d.mts +89 -87
  211. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +36 -15
  212. package/src/foundry/client/pixi/layers/masks/depth.d.mts +3 -3
  213. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +4 -4
  214. package/src/foundry/client/pixi/layers/masks/vision.d.mts +6 -6
  215. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +15 -11
  216. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +11 -10
  217. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +47 -28
  218. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +25 -12
  219. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -63
  220. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +10 -11
  221. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +28 -17
  222. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +67 -46
  223. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +50 -51
  224. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +22 -16
  225. package/src/foundry/client/pixi/perception/detection-mode.d.mts +123 -51
  226. package/src/foundry/client/pixi/perception/fog.d.mts +34 -19
  227. package/src/foundry/client/pixi/perception/perception-manager.d.mts +137 -137
  228. package/src/foundry/client/pixi/perception/vision-mode.d.mts +92 -67
  229. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +3 -3
  230. package/src/foundry/client/pixi/placeable.d.mts +241 -146
  231. package/src/foundry/client/pixi/placeables/drawing.d.mts +260 -134
  232. package/src/foundry/client/pixi/placeables/light.d.mts +204 -66
  233. package/src/foundry/client/pixi/placeables/note.d.mts +150 -55
  234. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +7 -6
  235. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +3 -3
  236. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +2 -2
  237. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +4 -4
  238. package/src/foundry/client/pixi/placeables/region.d.mts +219 -110
  239. package/src/foundry/client/pixi/placeables/sound.d.mts +211 -68
  240. package/src/foundry/client/pixi/placeables/template.d.mts +186 -100
  241. package/src/foundry/client/pixi/placeables/tile.d.mts +211 -142
  242. package/src/foundry/client/pixi/placeables/token.d.mts +911 -568
  243. package/src/foundry/client/pixi/placeables/wall.d.mts +253 -130
  244. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +27 -5
  245. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +3 -3
  246. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +3 -3
  247. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +13 -5
  248. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +6 -6
  249. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +2 -2
  250. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +5 -5
  251. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +4 -4
  252. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +3 -3
  253. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +5 -5
  254. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +6 -3
  255. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +3 -3
  256. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +4 -4
  257. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +3 -3
  258. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +4 -4
  259. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +6 -6
  260. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +8 -5
  261. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +3 -3
  262. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +3 -3
  263. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +4 -4
  264. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  265. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +4 -4
  266. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +3 -3
  267. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +3 -3
  268. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +3 -3
  269. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +3 -3
  270. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +5 -5
  271. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +3 -3
  272. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +3 -3
  273. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +3 -3
  274. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +3 -3
  275. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +6 -6
  276. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +5 -5
  277. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +3 -3
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +3 -3
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +5 -5
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +3 -3
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +3 -3
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +3 -3
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +5 -5
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +3 -3
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +3 -3
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +3 -3
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +5 -5
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +6 -5
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +3 -3
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +5 -5
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +4 -3
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +5 -5
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +5 -5
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +5 -5
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +3 -3
  296. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +7 -7
  297. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +4 -4
  298. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +3 -3
  299. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +4 -4
  300. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +3 -3
  301. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +5 -5
  302. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +3 -3
  303. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +3 -3
  304. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +3 -3
  305. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +4 -4
  306. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +4 -6
  307. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +3 -3
  308. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +3 -3
  309. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +3 -3
  310. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +3 -3
  311. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +5 -5
  312. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +3 -3
  313. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +14 -15
  314. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +20 -27
  315. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +5 -5
  316. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +5 -5
  317. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +5 -5
  318. package/src/foundry/client/pixi/workers/texture-worker.d.mts +5 -5
  319. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  320. package/src/foundry/client/ui/dialog.d.mts +3 -3
  321. package/src/foundry/client/ui/dragdrop.d.mts +33 -27
  322. package/src/foundry/client/ui/editor.d.mts +29 -21
  323. package/src/foundry/client/ui/filepicker.d.mts +42 -37
  324. package/src/foundry/client/ui/filter.d.mts +60 -48
  325. package/src/foundry/client/ui/forms.d.mts +22 -22
  326. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  327. package/src/foundry/client/ui/secrets.d.mts +43 -28
  328. package/src/foundry/client/ui/tabs.d.mts +40 -33
  329. package/src/foundry/client-esm/_module.d.mts +5 -5
  330. package/src/foundry/client-esm/_types.d.mts +2 -1
  331. package/src/foundry/client-esm/applications/api/application.d.mts +93 -31
  332. package/src/foundry/client-esm/applications/api/dialog.d.mts +23 -23
  333. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +85 -32
  334. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  335. package/src/foundry/client-esm/applications/apps/av/camera-popout.d.mts +1 -1
  336. package/src/foundry/client-esm/applications/apps/av/cameras.d.mts +2 -2
  337. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +4 -5
  338. package/src/foundry/client-esm/applications/apps/file-picker.d.mts +2 -2
  339. package/src/foundry/client-esm/applications/apps/grid-config.d.mts +3 -3
  340. package/src/foundry/client-esm/applications/apps/image-popout.d.mts +1 -1
  341. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  342. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +4 -4
  343. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  344. package/src/foundry/client-esm/applications/elements/prosemirror-editor.d.mts +1 -1
  345. package/src/foundry/client-esm/applications/hud/drawing-hud.d.mts +1 -1
  346. package/src/foundry/client-esm/applications/hud/tile-hud.d.mts +1 -1
  347. package/src/foundry/client-esm/applications/hud/token-hud.d.mts +1 -1
  348. package/src/foundry/client-esm/applications/sheets/active-effect-config.d.mts +3 -3
  349. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +2 -2
  350. package/src/foundry/client-esm/applications/sheets/adventure-exporter.d.mts +3 -3
  351. package/src/foundry/client-esm/applications/sheets/adventure-importer.d.mts +3 -3
  352. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +5 -5
  353. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +4 -4
  354. package/src/foundry/client-esm/applications/sheets/card-config.d.mts +3 -3
  355. package/src/foundry/client-esm/applications/sheets/cards-config.d.mts +2 -2
  356. package/src/foundry/client-esm/applications/sheets/combatant-config.d.mts +3 -3
  357. package/src/foundry/client-esm/applications/sheets/drawing-config.d.mts +3 -3
  358. package/src/foundry/client-esm/applications/sheets/folder-config.d.mts +3 -3
  359. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +2 -2
  360. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-category-config.d.mts +3 -3
  361. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-page-sheet.d.mts +3 -3
  362. package/src/foundry/client-esm/applications/sheets/journal/journal-entry-sheet.d.mts +3 -3
  363. package/src/foundry/client-esm/applications/sheets/macro-config.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/note-config.d.mts +3 -3
  365. package/src/foundry/client-esm/applications/sheets/playlist-config.d.mts +3 -3
  366. package/src/foundry/client-esm/applications/sheets/playlist-sound-config.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +3 -3
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +3 -3
  369. package/src/foundry/client-esm/applications/sheets/roll-table-config.d.mts +3 -3
  370. package/src/foundry/client-esm/applications/sheets/roll-table-sheet.d.mts +3 -3
  371. package/src/foundry/client-esm/applications/sheets/scene-config.d.mts +3 -3
  372. package/src/foundry/client-esm/applications/sheets/table-result-config.d.mts +3 -3
  373. package/src/foundry/client-esm/applications/sheets/template-config.d.mts +3 -3
  374. package/src/foundry/client-esm/applications/sheets/tile-config.d.mts +3 -3
  375. package/src/foundry/client-esm/applications/sheets/token/mixin.d.mts +1 -0
  376. package/src/foundry/client-esm/applications/sheets/token/token-config.d.mts +3 -3
  377. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +4 -4
  378. package/src/foundry/client-esm/applications/sheets/wall-config.d.mts +3 -3
  379. package/src/foundry/client-esm/applications/sidebar/apps/chat-popout.d.mts +1 -1
  380. package/src/foundry/client-esm/applications/sidebar/sidebar-tab.d.mts +2 -2
  381. package/src/foundry/client-esm/applications/sidebar/tabs/actor-directory.d.mts +1 -1
  382. package/src/foundry/client-esm/applications/sidebar/tabs/cards-directory.d.mts +1 -1
  383. package/src/foundry/client-esm/applications/sidebar/tabs/combat-tracker.d.mts +242 -1
  384. package/src/foundry/client-esm/applications/sidebar/tabs/item-directory.d.mts +1 -1
  385. package/src/foundry/client-esm/applications/sidebar/tabs/journal-directory.d.mts +1 -1
  386. package/src/foundry/client-esm/applications/sidebar/tabs/macro-directory.d.mts +1 -1
  387. package/src/foundry/client-esm/applications/sidebar/tabs/playlist-directory.d.mts +1 -1
  388. package/src/foundry/client-esm/applications/sidebar/tabs/roll-table-directory.d.mts +1 -1
  389. package/src/foundry/client-esm/applications/sidebar/tabs/scene-directory.d.mts +1 -1
  390. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +2 -2
  391. package/src/foundry/client-esm/applications/ux/context-menu.d.mts +56 -36
  392. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  393. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  394. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  395. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  396. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  397. package/src/foundry/client-esm/audio/sound.d.mts +202 -97
  398. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  399. package/src/foundry/client-esm/canvas/edges/collision.d.mts +12 -4
  400. package/src/foundry/client-esm/canvas/edges/edge.d.mts +13 -8
  401. package/src/foundry/client-esm/canvas/edges/edges.d.mts +3 -2
  402. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +12 -10
  403. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +14 -7
  404. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +25 -14
  405. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +50 -19
  406. package/src/foundry/client-esm/canvas/regions/shape.d.mts +45 -34
  407. package/src/foundry/client-esm/canvas/scene-manager.d.mts +7 -6
  408. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  409. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  410. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +119 -20
  411. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  412. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +69 -39
  413. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +66 -40
  414. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +78 -19
  415. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +37 -20
  416. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +39 -20
  417. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +41 -12
  418. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +15 -4
  419. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +29 -14
  420. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +84 -39
  421. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +115 -41
  422. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +83 -21
  423. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +66 -93
  424. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +146 -51
  425. package/src/foundry/client-esm/client.d.mts +16 -16
  426. package/src/foundry/client-esm/data/_module.d.mts +1 -1
  427. package/src/foundry/client-esm/data/calendar.d.mts +26 -39
  428. package/src/foundry/client-esm/data/client-backend.d.mts +6 -6
  429. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +1 -1
  430. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +5 -5
  431. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +2 -2
  432. package/src/foundry/client-esm/data/terrain-data.d.mts +1 -1
  433. package/src/foundry/client-esm/dice/parser.d.mts +5 -27
  434. package/src/foundry/client-esm/dice/roll.d.mts +63 -80
  435. package/src/foundry/client-esm/dice/terms/coin.d.mts +4 -8
  436. package/src/foundry/client-esm/dice/terms/dice.d.mts +85 -64
  437. package/src/foundry/client-esm/dice/terms/die.d.mts +7 -7
  438. package/src/foundry/client-esm/dice/terms/fate.d.mts +5 -5
  439. package/src/foundry/client-esm/dice/terms/function.d.mts +13 -16
  440. package/src/foundry/client-esm/dice/terms/numeric.d.mts +2 -4
  441. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  442. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +8 -9
  443. package/src/foundry/client-esm/dice/terms/pool.d.mts +13 -28
  444. package/src/foundry/client-esm/dice/terms/string.d.mts +3 -3
  445. package/src/foundry/client-esm/dice/terms/term.d.mts +10 -5
  446. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  447. package/src/foundry/client-esm/documents/_module.d.mts +1 -1
  448. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  449. package/src/foundry/client-esm/helpers/compendium-art.d.mts +57 -4
  450. package/src/foundry/client-esm/packages/_module.d.mts +1 -1
  451. package/src/foundry/client-esm/packages/_types.d.mts +2 -0
  452. package/src/foundry/client-esm/utils/_module.d.mts +1 -1
  453. package/src/foundry/client-esm/utils/_types.d.mts +2 -1
  454. package/src/foundry/common/_types.d.mts +1 -1
  455. package/src/foundry/common/abstract/_module.d.mts +1 -0
  456. package/src/foundry/common/abstract/_types.d.mts +60 -54
  457. package/src/foundry/common/abstract/backend.d.mts +28 -16
  458. package/src/foundry/common/abstract/data.d.mts +133 -116
  459. package/src/foundry/common/abstract/document.d.mts +1233 -440
  460. package/src/foundry/common/abstract/embedded-collection.d.mts +2 -2
  461. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  462. package/src/foundry/common/abstract/type-data.d.mts +35 -43
  463. package/src/foundry/common/config.d.mts +3 -3
  464. package/src/foundry/common/constants.d.mts +27 -26
  465. package/src/foundry/common/data/_types.d.mts +2 -0
  466. package/src/foundry/common/data/data.d.mts +189 -87
  467. package/src/foundry/common/data/fields.d.mts +579 -258
  468. package/src/foundry/common/data/validation-failure.d.mts +9 -4
  469. package/src/foundry/common/documents/_types.d.mts +16 -9
  470. package/src/foundry/common/documents/active-effect.d.mts +280 -180
  471. package/src/foundry/common/documents/actor-delta.d.mts +317 -70
  472. package/src/foundry/common/documents/actor.d.mts +304 -103
  473. package/src/foundry/common/documents/adventure.d.mts +254 -140
  474. package/src/foundry/common/documents/ambient-light.d.mts +267 -76
  475. package/src/foundry/common/documents/ambient-sound.d.mts +267 -110
  476. package/src/foundry/common/documents/card.d.mts +267 -176
  477. package/src/foundry/common/documents/cards.d.mts +299 -128
  478. package/src/foundry/common/documents/chat-message.d.mts +276 -160
  479. package/src/foundry/common/documents/combat.d.mts +300 -91
  480. package/src/foundry/common/documents/combatant.d.mts +283 -88
  481. package/src/foundry/common/documents/drawing.d.mts +286 -207
  482. package/src/foundry/common/documents/fog-exploration.d.mts +258 -72
  483. package/src/foundry/common/documents/folder.d.mts +248 -85
  484. package/src/foundry/common/documents/item.d.mts +305 -101
  485. package/src/foundry/common/documents/journal-entry-page.d.mts +279 -190
  486. package/src/foundry/common/documents/journal-entry.d.mts +294 -70
  487. package/src/foundry/common/documents/macro.d.mts +254 -134
  488. package/src/foundry/common/documents/measured-template.d.mts +293 -137
  489. package/src/foundry/common/documents/note.d.mts +274 -151
  490. package/src/foundry/common/documents/playlist-sound.d.mts +260 -96
  491. package/src/foundry/common/documents/playlist.d.mts +279 -122
  492. package/src/foundry/common/documents/region-behavior.d.mts +305 -64
  493. package/src/foundry/common/documents/region.d.mts +309 -90
  494. package/src/foundry/common/documents/roll-table.d.mts +286 -104
  495. package/src/foundry/common/documents/scene.d.mts +276 -344
  496. package/src/foundry/common/documents/setting.d.mts +229 -55
  497. package/src/foundry/common/documents/table-result.d.mts +267 -96
  498. package/src/foundry/common/documents/tile.d.mts +301 -172
  499. package/src/foundry/common/documents/token.d.mts +350 -452
  500. package/src/foundry/common/documents/user.d.mts +256 -146
  501. package/src/foundry/common/documents/wall.d.mts +272 -157
  502. package/src/foundry/common/grid/_types.d.mts +2 -0
  503. package/src/foundry/common/grid/base.d.mts +58 -37
  504. package/src/foundry/common/grid/hexagonal.d.mts +19 -19
  505. package/src/foundry/common/grid/square.d.mts +1 -1
  506. package/src/foundry/common/packages/_module.d.mts +5 -5
  507. package/src/foundry/common/packages/_types.d.mts +2 -0
  508. package/src/foundry/common/packages/base-module.d.mts +6 -24
  509. package/src/foundry/common/packages/base-package.d.mts +18 -16
  510. package/src/foundry/common/packages/base-system.d.mts +6 -78
  511. package/src/foundry/common/packages/base-world.d.mts +7 -60
  512. package/src/foundry/common/packages/sub-types.d.mts +1 -1
  513. package/src/foundry/common/primitives/array.d.mts +3 -3
  514. package/src/foundry/common/primitives/math.d.mts +7 -1
  515. package/src/foundry/common/primitives/number.d.mts +1 -1
  516. package/src/foundry/common/primitives/set.d.mts +17 -14
  517. package/src/foundry/common/prosemirror/_types.d.mts +2 -0
  518. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  519. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  520. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  521. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  522. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  523. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  524. package/src/foundry/common/utils/bitmask.d.mts +4 -1
  525. package/src/foundry/common/utils/collection.d.mts +59 -24
  526. package/src/foundry/common/utils/event-emitter.d.mts +46 -19
  527. package/src/foundry/common/utils/helpers.d.mts +13 -13
  528. package/src/foundry/common/utils/http.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/tsconfig.json +1 -5
  532. package/src/types/augments/pixi.d.mts +28 -28
  533. package/src/types/config.d.mts +12 -12
  534. package/src/types/documentConfiguration.d.mts +282 -597
  535. package/src/types/lib.d.mts +4 -4
  536. package/src/types/workers/image-compressor.d.mts +1 -1
  537. package/src/utils/index.d.mts +255 -60
  538. package/tsconfig.json +29 -0
  539. package/tsconfig.main.json +8 -0
  540. package/tsconfig.miscellaneous.json +16 -0
  541. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  542. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -44
  543. package/src/foundry/common/documents/module.d.mts +0 -35
@@ -1,40 +1,558 @@
1
- import type Document from "../../../common/abstract/document.d.mts";
2
- import type BaseItem from "../../../common/documents/item.d.mts";
1
+ import type { ConfiguredItem } from "fvtt-types/configuration";
2
+ import type { documents } from "#client-esm/client.d.mts";
3
+ import type Document from "#common/abstract/document.d.mts";
4
+ import type { DataSchema } from "#common/data/fields.d.mts";
5
+ import type { AnyObject, Merge } from "fvtt-types/utils";
6
+
7
+ import fields = foundry.data.fields;
3
8
 
4
9
  declare global {
5
10
  namespace Item {
6
- type Metadata = Document.MetadataFor<Item>;
11
+ /**
12
+ * The document's name.
13
+ */
14
+ type Name = "Item";
15
+
16
+ /**
17
+ * The arguments to construct the document.
18
+ */
19
+ type ConstructorArgs = Document.ConstructorParameters<CreateData, Parent>;
20
+
21
+ /**
22
+ * The documents embedded within `Item`.
23
+ */
24
+ type Hierarchy = Readonly<Document.HierarchyOf<Schema>>;
25
+
26
+ /**
27
+ * The implementation of the `Item` document instance configured through `CONFIG.Item.documentClass` in Foundry and
28
+ * {@link DocumentClassConfig | `DocumentClassConfig`} or {@link ConfiguredItem | `fvtt-types/configuration/ConfiguredItem`} in fvtt-types.
29
+ */
30
+ type Implementation = Document.ImplementationFor<Name>;
31
+
32
+ /**
33
+ * The implementation of the `Item` document configured through `CONFIG.Item.documentClass` in Foundry and
34
+ * {@link DocumentClassConfig | `DocumentClassConfig`} in fvtt-types.
35
+ */
36
+ type ImplementationClass = Document.ImplementationClassFor<Name>;
37
+
38
+ /**
39
+ * A document's metadata is special information about the document ranging anywhere from its name,
40
+ * whether it's indexed, or to the permissions a user has over it.
41
+ */
42
+ interface Metadata
43
+ extends Merge<
44
+ Document.Metadata.Default,
45
+ Readonly<{
46
+ name: "Item";
47
+ collection: "items";
48
+ hasTypeData: true;
49
+ indexed: true;
50
+ compendiumIndexFields: ["_id", "name", "img", "type", "sort", "folder"];
51
+ embedded: Metadata.Embedded;
52
+ label: string;
53
+ labelPlural: string;
54
+ permissions: Metadata.Permissions;
55
+ schemaVersion: string;
56
+ }>
57
+ > {}
58
+
59
+ namespace Metadata {
60
+ /**
61
+ * The embedded metadata
62
+ */
63
+ interface Embedded {
64
+ ActiveEffect: "effects";
65
+ }
66
+
67
+ /**
68
+ * The permissions for whether a certain user can create, update, or delete this document.
69
+ */
70
+ interface Permissions {
71
+ create: "ITEM_CREATE";
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Allowed subtypes of `Item`. This is configured through various methods. Modern Foundry
77
+ * recommends registering using [Data Models](https://foundryvtt.com/article/system-data-models/)
78
+ * under {@link CONFIG.Item.dataModels | `CONFIG.Item.dataModels`}. This corresponds to
79
+ * fvtt-type's {@link DataModelConfig | `DataModelConfig`}.
80
+ *
81
+ * Subtypes can also be registered through a `template.json` though this is discouraged.
82
+ * The corresponding fvtt-type configs are {@link SourceConfig | `SourceConfig`} and
83
+ * {@link DataConfig | `DataConfig`}.
84
+ */
85
+ type SubType = Game.Model.TypeNames<"Item">;
86
+
87
+ /**
88
+ * `ConfiguredSubTypes` represents the subtypes a user explicitly registered. This excludes
89
+ * subtypes like the Foundry builtin subtype `"base"` and the catch-all subtype for arbitrary
90
+ * module subtypes `${string}.${string}`.
91
+ *
92
+ * @see {@link SubType} for more information.
93
+ */
94
+ type ConfiguredSubTypes = Document.ConfiguredSubTypesOf<"Item">;
95
+
96
+ /**
97
+ * `Known` represents the types of `Item` that a user explicitly registered.
98
+ *
99
+ * @see {@link ConfiguredSubTypes} for more information.
100
+ */
101
+ type Known = Item.OfType<Item.ConfiguredSubTypes>;
102
+
103
+ /**
104
+ * `OfType` returns an instance of `Item` with the corresponding type. This works with both the
105
+ * builtin `Item` class or a custom subclass if that is set up in
106
+ * {@link ConfiguredItem | `fvtt-types/configuration/ConfiguredItem`}.
107
+ */
108
+ // eslint-disable-next-line @typescript-eslint/no-restricted-types
109
+ type OfType<Type extends SubType> = Document.Internal.OfType<ConfiguredItem<Type>, Item<Type>>;
110
+
111
+ /**
112
+ * `SystemOfType` returns the system property for a specific `Item` subtype.
113
+ */
114
+ type SystemOfType<Type extends SubType> = Document.Internal.SystemOfType<_SystemMap, Type>;
115
+
116
+ /**
117
+ * @internal
118
+ */
119
+ interface _SystemMap extends Document.Internal.SystemMap<"Item"> {}
120
+
121
+ /**
122
+ * A document's parent is something that can contain it.
123
+ * For example an `Item` can be contained by an `Actor` which makes `Actor` one of its possible parents.
124
+ */
125
+ type Parent = Actor.Implementation | null;
126
+
127
+ /**
128
+ * A document's direct descendants are documents that are contained directly within its schema.
129
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
130
+ */
131
+ type DirectDescendant = ActiveEffect.Stored;
7
132
 
8
- type ConfiguredClass = Document.ConfiguredClassForName<"Item">;
9
- type ConfiguredInstance = Document.ConfiguredInstanceForName<"Item">;
133
+ /**
134
+ * A document's direct descendants are documents that are contained directly within its schema.
135
+ * This is a union of all such classes, or never if the document doesn't have any descendants.
136
+ */
137
+ type DirectDescendantClass = ActiveEffect.ImplementationClass;
10
138
 
11
- interface DatabaseOperations extends Document.Database.Operations<Item> {}
139
+ /**
140
+ * A document's descendants are any documents that are contained within, either within its schema
141
+ * or its descendant's schemas.
142
+ * This is a union of all such instances, or never if the document doesn't have any descendants.
143
+ */
144
+ type Descendant = DirectDescendant;
145
+
146
+ /**
147
+ * A document's descendants are any child documents, grandchild documents, etc.
148
+ * This is a union of all classes, or never if the document doesn't have any descendants.
149
+ */
150
+ type DescendantClass = DirectDescendantClass;
151
+
152
+ /**
153
+ * Types of `CompendiumCollection` this document might be contained in.
154
+ * Note that `this.pack` will always return a string; this is the type for `game.packs.get(this.pack)`
155
+ */
156
+ // Note: Takes any document in the heritage chain (i.e. itself or any parent, transitive or not) that can be contained in a compendium.
157
+ type Pack = CompendiumCollection.ForDocument<"Actor" | "Item">;
158
+
159
+ /**
160
+ * An embedded document is a document contained in another.
161
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
162
+ *
163
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
164
+ */
165
+ type Embedded = Document.ImplementationFor<Embedded.Name>;
166
+
167
+ namespace Embedded {
168
+ /**
169
+ * An embedded document is a document contained in another.
170
+ * For example an `Item` can be contained by an `Actor` which means `Item` can be embedded in `Actor`.
171
+ *
172
+ * If this is `never` it is because there are no embeddable documents (or there's a bug!).
173
+ */
174
+ type Name = keyof Metadata.Embedded;
175
+
176
+ /**
177
+ * Gets the collection name for an embedded document.
178
+ */
179
+ type CollectionNameOf<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionNameFor<
180
+ Metadata.Embedded,
181
+ CollectionName
182
+ >;
183
+
184
+ /**
185
+ * Gets the collection document for an embedded document.
186
+ */
187
+ // TODO(LukeAbby): There's a circularity. Should be `Document.Embedded.CollectionDocumentFor<Metadata.Embedded, CollectionName>`
188
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
189
+ type DocumentFor<CollectionName extends Embedded.CollectionName> = Document.Any;
190
+
191
+ /**
192
+ * Gets the collection for an embedded document.
193
+ */
194
+ type CollectionFor<CollectionName extends Embedded.CollectionName> = Document.Embedded.CollectionFor<
195
+ // TODO(LukeAbby): This should be `TokenDocument.Implementation` but this causes a circularity.
196
+ Document.Any,
197
+ Metadata.Embedded,
198
+ CollectionName
199
+ >;
200
+
201
+ /**
202
+ * A valid name to refer to a collection embedded in this document. For example an `Actor`
203
+ * has the key `"items"` which contains `Item` instance which would make both `"Item" | "Items"`
204
+ * valid keys (amongst others).
205
+ */
206
+ type CollectionName = Document.Embedded.CollectionName<Metadata.Embedded>;
207
+ }
208
+
209
+ /**
210
+ * The name of the world or embedded collection this document can find itself in.
211
+ * For example an `Item` is always going to be inside a collection with a key of `items`.
212
+ * This is a fixed string per document type and is primarily useful for {@link ClientDocumentMixin | `Descendant Document Events`}.
213
+ */
214
+ type ParentCollectionName = Metadata["collection"];
215
+
216
+ /**
217
+ * The world collection that contains `Item`s. Will be `never` if none exists.
218
+ */
219
+ type CollectionClass = Items.ConfiguredClass;
220
+
221
+ /**
222
+ * The world collection that contains `Item`s. Will be `never` if none exists.
223
+ */
224
+ type Collection = Items.Configured;
225
+
226
+ /**
227
+ * An instance of `Item` that comes from the database but failed validation meaining that
228
+ * its `system` and `_source` could theoretically be anything.
229
+ */
230
+ interface Invalid<out SubType extends Item.SubType = Item.SubType> extends Document.Invalid<OfType<SubType>> {}
231
+
232
+ /**
233
+ * An instance of `Item` that comes from the database.
234
+ */
235
+ interface Stored<out SubType extends Item.SubType = Item.SubType> extends Document.Stored<OfType<SubType>> {}
236
+
237
+ /**
238
+ * The data put in {@link Item._source | `Item#_source`}. This data is what was
239
+ * persisted to the database and therefore it must be valid JSON.
240
+ *
241
+ * For example a {@link fields.SetField | `SetField`} is persisted to the database as an array
242
+ * but initialized as a {@link Set | `Set`}.
243
+ */
244
+ interface Source extends fields.SchemaField.SourceData<Schema> {}
245
+
246
+ /**
247
+ * @deprecated {@link Item.Source | `Item.Source`}
248
+ */
249
+ type PersistedData = Source;
250
+
251
+ /**
252
+ * The data necessary to create a document. Used in places like {@link Item.create | `Item.create`}
253
+ * and {@link Item | `new Item(...)`}.
254
+ *
255
+ * For example a {@link fields.SetField | `SetField`} can accept any {@link Iterable | `Iterable`}
256
+ * with the right values. This means you can pass a `Set` instance, an array of values,
257
+ * a generator, or any other iterable.
258
+ */
259
+ interface CreateData extends fields.SchemaField.CreateData<Schema> {}
260
+
261
+ /**
262
+ * The data after a {@link foundry.abstract.Document | `Document`} has been initialized, for example
263
+ * {@link Item.name | `Item#name`}.
264
+ *
265
+ * This is data transformed from {@link Item.Source | `Item.Source`} and turned into more
266
+ * convenient runtime data structures. For example a {@link fields.SetField | `SetField`} is
267
+ * persisted to the database as an array of values but at runtime it is a `Set` instance.
268
+ */
269
+ interface InitializedData extends fields.SchemaField.InitializedData<Schema> {}
270
+
271
+ /**
272
+ * The data used to update a document, for example {@link Item.update | `Item#update`}.
273
+ * It is a distinct type from {@link Item.CreateData | `DeepPartial<Item.CreateData>`} because
274
+ * it has different rules for `null` and `undefined`.
275
+ */
276
+ interface UpdateData extends fields.SchemaField.UpdateData<Schema> {}
277
+
278
+ /**
279
+ * The schema for {@link Item | `Item`}. This is the source of truth for how an Item document
280
+ * must be structured.
281
+ *
282
+ * Foundry uses this schema to validate the structure of the {@link Item | `Item`}. For example
283
+ * a {@link fields.StringField | `StringField`} will enforce that the value is a string. More
284
+ * complex fields like {@link fields.SetField | `SetField`} goes through various conversions
285
+ * starting as an array in the database, initialized as a set, and allows updates with any
286
+ * iterable.
287
+ */
288
+ interface Schema extends DataSchema {
289
+ /**
290
+ * The _id which uniquely identifies this Item document
291
+ * @defaultValue `null`
292
+ */
293
+ _id: fields.DocumentIdField;
12
294
 
13
- // Helpful aliases
14
- type TypeNames = BaseItem.TypeNames;
15
- type ConstructorData = BaseItem.ConstructorData;
16
- type UpdateData = BaseItem.UpdateData;
17
- type Schema = BaseItem.Schema;
18
- type Source = BaseItem.Source;
295
+ /** The name of this Item */
296
+ name: fields.StringField<{ required: true; blank: false; textSearch: true }>;
297
+
298
+ /** An Item subtype which configures the system data model applied */
299
+ type: fields.DocumentTypeField<typeof documents.BaseItem>;
300
+
301
+ /**
302
+ * An image file path which provides the artwork for this Item
303
+ * @defaultValue `null`
304
+ */
305
+ img: fields.FilePathField<{
306
+ categories: "IMAGE"[];
307
+ initial: (data: unknown) => string;
308
+ }>;
309
+
310
+ /**
311
+ * The system data object which is defined by the system template.json model
312
+ * @defaultValue `{}`
313
+ */
314
+ system: fields.TypeDataField<typeof documents.BaseItem>;
315
+
316
+ /**
317
+ * A collection of ActiveEffect embedded Documents
318
+ * @defaultValue `[]`
319
+ */
320
+ effects: fields.EmbeddedCollectionField<typeof documents.BaseActiveEffect, Item.Implementation>;
321
+
322
+ /**
323
+ * The _id of a Folder which contains this Item
324
+ * @defaultValue `null`
325
+ */
326
+ folder: fields.ForeignDocumentField<typeof documents.BaseFolder>;
327
+
328
+ /**
329
+ * The numeric sort value which orders this Item relative to its siblings
330
+ * @defaultValue `0`
331
+ */
332
+ sort: fields.IntegerSortField;
333
+
334
+ /**
335
+ * An object which configures ownership of this Item
336
+ * @defaultValue see {@link fields.DocumentOwnershipField | `fields.DocumentOwnershipField`}
337
+ */
338
+ ownership: fields.DocumentOwnershipField;
339
+
340
+ /**
341
+ * An object of optional key/value flags
342
+ * @defaultValue `{}`
343
+ */
344
+ flags: fields.ObjectField.FlagsField<Name>;
345
+
346
+ /**
347
+ * An object of creation and access information
348
+ * @defaultValue see {@link fields.DocumentStatsField | `fields.DocumentStatsField`}
349
+ */
350
+ _stats: fields.DocumentStatsField;
351
+ }
352
+
353
+ namespace Database {
354
+ /** Options passed along in Get operations for Items */
355
+ interface Get extends foundry.abstract.types.DatabaseGetOperation<Item.Parent> {}
356
+
357
+ /** Options passed along in Create operations for Items */
358
+ interface Create<Temporary extends boolean | undefined = boolean | undefined>
359
+ extends foundry.abstract.types.DatabaseCreateOperation<Item.CreateData, Item.Parent, Temporary> {}
360
+
361
+ /** Options passed along in Delete operations for Items */
362
+ interface Delete extends foundry.abstract.types.DatabaseDeleteOperation<Item.Parent> {}
363
+
364
+ /** Options passed along in Update operations for Items */
365
+ interface Update extends foundry.abstract.types.DatabaseUpdateOperation<Item.UpdateData, Item.Parent> {}
366
+
367
+ /** Operation for {@link Item.createDocuments | `Item.createDocuments`} */
368
+ interface CreateDocumentsOperation<Temporary extends boolean | undefined>
369
+ extends Document.Database.CreateOperation<Item.Database.Create<Temporary>> {}
370
+
371
+ /** Operation for {@link Item.updateDocuments | `Item.updateDocuments`} */
372
+ interface UpdateDocumentsOperation extends Document.Database.UpdateDocumentsOperation<Item.Database.Update> {}
373
+
374
+ /** Operation for {@link Item.deleteDocuments | `Item.deleteDocuments`} */
375
+ interface DeleteDocumentsOperation extends Document.Database.DeleteDocumentsOperation<Item.Database.Delete> {}
376
+
377
+ /** Operation for {@link Item.create | `Item.create`} */
378
+ interface CreateOperation<Temporary extends boolean | undefined>
379
+ extends Document.Database.CreateOperation<Item.Database.Create<Temporary>> {}
380
+
381
+ /** Operation for {@link Item.update | `Item#update`} */
382
+ interface UpdateOperation extends Document.Database.UpdateOperation<Update> {}
383
+
384
+ interface DeleteOperation extends Document.Database.DeleteOperation<Delete> {}
385
+
386
+ /** Options for {@link Item.get | `Item.get`} */
387
+ interface GetOptions extends Document.Database.GetOptions {}
388
+
389
+ /** Options for {@link Item._preCreate | `Item#_preCreate`} */
390
+ interface PreCreateOptions extends Document.Database.PreCreateOptions<Create> {}
391
+
392
+ /** Options for {@link Item._onCreate | `Item#_onCreate`} */
393
+ interface OnCreateOptions extends Document.Database.CreateOptions<Create> {}
394
+
395
+ /** Operation for {@link Item._preCreateOperation | `Item._preCreateOperation`} */
396
+ interface PreCreateOperation extends Document.Database.PreCreateOperationStatic<Item.Database.Create> {}
397
+
398
+ /** Operation for {@link Item._onCreateOperation | `Item#_onCreateOperation`} */
399
+ interface OnCreateOperation extends Item.Database.Create {}
400
+
401
+ /** Options for {@link Item._preUpdate | `Item#_preUpdate`} */
402
+ interface PreUpdateOptions extends Document.Database.PreUpdateOptions<Update> {}
403
+
404
+ /** Options for {@link Item._onUpdate | `Item#_onUpdate`} */
405
+ interface OnUpdateOptions extends Document.Database.UpdateOptions<Update> {}
406
+
407
+ /** Operation for {@link Item._preUpdateOperation | `Item._preUpdateOperation`} */
408
+ interface PreUpdateOperation extends Item.Database.Update {}
409
+
410
+ /** Operation for {@link Item._onUpdateOperation | `Item._preUpdateOperation`} */
411
+ interface OnUpdateOperation extends Item.Database.Update {}
412
+
413
+ /** Options for {@link Item._preDelete | `Item#_preDelete`} */
414
+ interface PreDeleteOptions extends Document.Database.PreDeleteOperationInstance<Delete> {}
415
+
416
+ /** Options for {@link Item._onDelete | `Item#_onDelete`} */
417
+ interface OnDeleteOptions extends Document.Database.DeleteOptions<Delete> {}
418
+
419
+ /** Options for {@link Item._preDeleteOperation | `Item#_preDeleteOperation`} */
420
+ interface PreDeleteOperation extends Item.Database.Delete {}
421
+
422
+ /** Options for {@link Item._onDeleteOperation | `Item#_onDeleteOperation`} */
423
+ interface OnDeleteOperation extends Item.Database.Delete {}
424
+
425
+ /** Context for {@link Item._onDeleteOperation | `Item._onDeleteOperation`} */
426
+ interface OnDeleteDocumentsContext extends Document.ModificationContext<Item.Parent> {}
427
+
428
+ /** Context for {@link Item._onCreateDocuments | `Item._onCreateDocuments`} */
429
+ interface OnCreateDocumentsContext extends Document.ModificationContext<Item.Parent> {}
430
+
431
+ /** Context for {@link Item._onUpdateDocuments | `Item._onUpdateDocuments`} */
432
+ interface OnUpdateDocumentsContext extends Document.ModificationContext<Item.Parent> {}
433
+
434
+ /**
435
+ * Options for {@link Item._preCreateDescendantDocuments | `Item#_preCreateDescendantDocuments`}
436
+ * and {@link Item._onCreateDescendantDocuments | `Item#_onCreateDescendantDocuments`}
437
+ */
438
+ interface CreateOptions extends Document.Database.CreateOptions<Item.Database.Create> {}
439
+
440
+ /**
441
+ * Options for {@link Item._preUpdateDescendantDocuments | `Item#_preUpdateDescendantDocuments`}
442
+ * and {@link Item._onUpdateDescendantDocuments | `Item#_onUpdateDescendantDocuments`}
443
+ */
444
+ interface UpdateOptions extends Document.Database.UpdateOptions<Item.Database.Update> {}
445
+
446
+ /**
447
+ * Options for {@link Item._preDeleteDescendantDocuments | `Item#_preDeleteDescendantDocuments`}
448
+ * and {@link Item._onDeleteDescendantDocuments | `Item#_onDeleteDescendantDocuments`}
449
+ */
450
+ interface DeleteOptions extends Document.Database.DeleteOptions<Item.Database.Delete> {}
451
+ }
452
+
453
+ /**
454
+ * The flags that are available for this document in the form `{ [scope: string]: { [key: string]: unknown } }`.
455
+ */
456
+ interface Flags extends Document.ConfiguredFlagsForName<Name> {}
457
+
458
+ namespace Flags {
459
+ /**
460
+ * The valid scopes for the flags on this document e.g. `"core"` or `"dnd5e"`.
461
+ */
462
+ type Scope = Document.FlagKeyOf<Flags>;
463
+
464
+ /**
465
+ * The valid keys for a certain scope for example if the scope is "core" then a valid key may be `"sheetLock"` or `"viewMode"`.
466
+ */
467
+ type Key<Scope extends Flags.Scope> = Document.FlagKeyOf<Document.FlagGetKey<Flags, Scope>>;
468
+
469
+ /**
470
+ * Gets the type of a particular flag given a `Scope` and a `Key`.
471
+ */
472
+ type Get<Scope extends Flags.Scope, Key extends Flags.Key<Scope>> = Document.GetFlag<Name, Scope, Key>;
473
+ }
474
+
475
+ type PreCreateDescendantDocumentsArgs = Document.PreCreateDescendantDocumentsArgs<
476
+ Item.Stored,
477
+ Item.DirectDescendant,
478
+ Item.Metadata.Embedded
479
+ >;
480
+
481
+ type OnCreateDescendantDocumentsArgs = Document.OnCreateDescendantDocumentsArgs<
482
+ Item.Stored,
483
+ Item.DirectDescendant,
484
+ Item.Metadata.Embedded
485
+ >;
486
+
487
+ type PreUpdateDescendantDocumentsArgs = Document.PreUpdateDescendantDocumentsArgs<
488
+ Item.Stored,
489
+ Item.DirectDescendant,
490
+ Item.Metadata.Embedded
491
+ >;
492
+
493
+ type OnUpdateDescendantDocumentsArgs = Document.OnUpdateDescendantDocumentsArgs<
494
+ Item.Stored,
495
+ Item.DirectDescendant,
496
+ Item.Metadata.Embedded
497
+ >;
498
+
499
+ type PreDeleteDescendantDocumentsArgs = Document.PreDeleteDescendantDocumentsArgs<
500
+ Item.Stored,
501
+ Item.DirectDescendant,
502
+ Item.Metadata.Embedded
503
+ >;
504
+
505
+ type OnDeleteDescendantDocumentsArgs = Document.OnDeleteDescendantDocumentsArgs<
506
+ Item.Stored,
507
+ Item.DirectDescendant,
508
+ Item.Metadata.Embedded
509
+ >;
510
+
511
+ /**
512
+ * @deprecated {@link Item.Database | `Item.DatabaseOperation`}
513
+ */
514
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
515
+ interface DatabaseOperations extends Document.Database.Operations<Item.Implementation> {}
516
+
517
+ /**
518
+ * @deprecated {@link Item.SubType | `Item.SubType`}
519
+ */
520
+ type TypeNames = Item.SubType;
521
+
522
+ /**
523
+ * @deprecated {@link Item.CreateData | `Item.CreateData`}
524
+ */
525
+ interface ConstructorData extends Item.CreateData {}
526
+
527
+ /**
528
+ * @deprecated {@link Item.implementation | `Item.ImplementationClass`}
529
+ */
530
+ type ConfiguredClass = ImplementationClass;
531
+
532
+ /**
533
+ * @deprecated {@link Item.Implementation | `Item.Implementation`}
534
+ */
535
+ type ConfiguredInstance = Implementation;
19
536
  }
20
537
 
21
538
  /**
22
539
  * The client-side Item document which extends the common BaseItem abstraction.
23
540
  * Each Item document contains ItemData which defines its data schema.
24
541
  *
25
- * @see {@link Items} The world-level collection of Item documents
26
- * @see {@link ItemSheet} The Item configuration application
542
+ * @see {@link Items | `Items`} The world-level collection of Item documents
543
+ * @see {@link ItemSheet | `ItemSheet`} The Item configuration application
27
544
  *
28
545
  * @param data - Initial data provided to construct the Item document
29
- * @param context - The document context, see {@link foundry.abstract.Document}
546
+ * @param context - The document context, see {@link foundry.abstract.Document | `foundry.abstract.Document`}
30
547
  */
31
- class Item extends ClientDocumentMixin(foundry.documents.BaseItem) {
32
- // Note(LukeAbby): Temporary fix, look into solving this at the root of the issue.
33
- documentName: "Item";
34
-
35
- static override metadata: Item.Metadata;
36
-
37
- static get implementation(): Item.ConfiguredClass;
548
+ class Item<out SubType extends Item.SubType = Item.SubType> extends ClientDocumentMixin(
549
+ foundry.documents.BaseItem,
550
+ )<SubType> {
551
+ /**
552
+ * @param data - Initial data from which to construct the `Item`
553
+ * @param context - Construction context options
554
+ */
555
+ constructor(...args: Item.ConstructorArgs);
38
556
 
39
557
  /**
40
558
  * A convenience alias of Item#parent which is more semantically intuitive
@@ -61,11 +579,147 @@ declare global {
61
579
  * Prepare a data object which defines the data schema used by dice roll commands against this Item
62
580
  * @remarks defaults to this.system, but provided as object for flexible overrides
63
581
  */
64
- getRollData(): Record<string, unknown>;
582
+ getRollData(): AnyObject;
65
583
 
66
584
  /**
67
- * @privateRemarks _preCreate, _onCreateDocuments and _onDeleteDocuments are all overridden but with no signature changes.
68
- * For type simplicity they are left off. These methods historically have been the source of a large amount of computation from tsc.
585
+ * @privateRemarks _preCreate, _onCreateDocuments and _onDeleteDocuments are all overridden but with no signature changes from BaseItem.
586
+ */
587
+
588
+ /*
589
+ * After this point these are not really overridden methods.
590
+ * They are here because Foundry's documents are complex and have lots of edge cases.
591
+ * There are DRY ways of representing this but this ends up being harder to understand
592
+ * for end users extending these functions, especially for static methods. There are also a
593
+ * number of methods that don't make sense to call directly on `Document` like `createDocuments`,
594
+ * as there is no data that can safely construct every possible document. Finally keeping definitions
595
+ * separate like this helps against circularities.
69
596
  */
597
+
598
+ // ClientDocument overrides
599
+
600
+ /**
601
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
602
+ * this method must be overriden like so:
603
+ * ```typescript
604
+ * class SwadeItem extends Item {
605
+ * protected override _preCreateDescendantDocuments(...args: Item.PreCreateDescendantDocumentsArgs) {
606
+ * super._preCreateDescendantDocuments(...args);
607
+ *
608
+ * const [parent, collection, data, options, userId] = args;
609
+ * if (collection === "effects") {
610
+ * options; // Will be narrowed.
611
+ * }
612
+ * }
613
+ * }
614
+ * ```
615
+ */
616
+ protected override _preCreateDescendantDocuments(...args: Item.PreCreateDescendantDocumentsArgs): void;
617
+
618
+ /**
619
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
620
+ * this method must be overriden like so:
621
+ * ```typescript
622
+ * class GurpsItem extends Item {
623
+ * protected override _onCreateDescendantDocuments(...args: Item.OnCreateDescendantDocumentsArgs) {
624
+ * super._onCreateDescendantDocuments(...args);
625
+ *
626
+ * const [parent, collection, documents, data, options, userId] = args;
627
+ * if (collection === "effects") {
628
+ * options; // Will be narrowed.
629
+ * }
630
+ * }
631
+ * }
632
+ * ```
633
+ */
634
+ protected override _onCreateDescendantDocuments(...args: Item.OnCreateDescendantDocumentsArgs): void;
635
+
636
+ /**
637
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
638
+ * this method must be overriden like so:
639
+ * ```typescript
640
+ * class LancerItem extends Item {
641
+ * protected override _preUpdateDescendantDocuments(...args: Item.OnUpdateDescendantDocuments) {
642
+ * super._preUpdateDescendantDocuments(...args);
643
+ *
644
+ * const [parent, collection, changes, options, userId] = args;
645
+ * if (collection === "tokens") {
646
+ * options; // Will be narrowed.
647
+ * }
648
+ * }
649
+ * }
650
+ * ```
651
+ */
652
+ protected override _preUpdateDescendantDocuments(...args: Item.PreUpdateDescendantDocumentsArgs): void;
653
+
654
+ /**
655
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
656
+ * this method must be overriden like so:
657
+ * ```typescript
658
+ * class Ptr2eItem extends Item {
659
+ * protected override _onUpdateDescendantDocuments(...args: Item.OnUpdateDescendantDocumentsArgs) {
660
+ * super._onUpdateDescendantDocuments(...args);
661
+ *
662
+ * const [parent, collection, documents, changes, options, userId] = args;
663
+ * if (collection === "effects") {
664
+ * options; // Will be narrowed.
665
+ * }
666
+ * }
667
+ * }
668
+ * ```
669
+ */
670
+ protected override _onUpdateDescendantDocuments(...args: Item.OnUpdateDescendantDocumentsArgs): void;
671
+
672
+ /**
673
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
674
+ * this method must be overriden like so:
675
+ * ```typescript
676
+ * class KultItem extends Item {
677
+ * protected override _preDeleteDescendantDocuments(...args: Item.PreDeleteDescendantDocumentsArgs) {
678
+ * super._preDeleteDescendantDocuments(...args);
679
+ *
680
+ * const [parent, collection, ids, options, userId] = args;
681
+ * if (collection === "effects") {
682
+ * options; // Will be narrowed.
683
+ * }
684
+ * }
685
+ * }
686
+ * ```
687
+ */
688
+ protected override _preDeleteDescendantDocuments(...args: Item.PreDeleteDescendantDocumentsArgs): void;
689
+
690
+ /**
691
+ * @remarks To make it possible for narrowing one parameter to jointly narrow other parameters
692
+ * this method must be overriden like so:
693
+ * ```typescript
694
+ * class BladesItem extends Item {
695
+ * protected override _onDeleteDescendantDocuments(...args: Item.OnUpdateDescendantDocuments) {
696
+ * super._onDeleteDescendantDocuments(...args);
697
+ *
698
+ * const [parent, collection, documents, ids, options, userId] = args;
699
+ * if (collection === "effects") {
700
+ * options; // Will be narrowed.
701
+ * }
702
+ * }
703
+ * }
704
+ * ```
705
+ */
706
+ protected override _onDeleteDescendantDocuments(...args: Item.OnDeleteDescendantDocumentsArgs): void;
707
+
708
+ static override defaultName(context?: Document.DefaultNameContext<Item.SubType, Item.Parent>): string;
709
+
710
+ static override createDialog(
711
+ data?: Document.CreateDialogData<Item.CreateData>,
712
+ context?: Document.CreateDialogContext<Item.SubType, Item.Parent>,
713
+ ): Promise<Item.Stored | null | undefined>;
714
+
715
+ static override fromDropData(
716
+ data: Document.DropData<Item.Implementation>,
717
+ options?: Document.FromDropDataOptions,
718
+ ): Promise<Item.Implementation | undefined>;
719
+
720
+ static override fromImport(
721
+ source: Item.Source,
722
+ context?: Document.FromImportContext<Item.Parent>,
723
+ ): Promise<Item.Implementation>;
70
724
  }
71
725
  }