@league-of-foundry-developers/foundry-vtt-types 12.331.4-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 (377) hide show
  1. package/package.json +18 -1
  2. package/src/configuration/configuration.d.mts +1 -1
  3. package/src/foundry/client/apps/app.d.mts +1 -1
  4. package/src/foundry/client/apps/av/av-config.d.mts +1 -1
  5. package/src/foundry/client/apps/av/cameras.d.mts +1 -1
  6. package/src/foundry/client/apps/dice/dice-config.d.mts +1 -1
  7. package/src/foundry/client/apps/form.d.mts +1 -1
  8. package/src/foundry/client/apps/forms/actor.d.mts +1 -1
  9. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +1 -1
  10. package/src/foundry/client/apps/forms/adventure-importer.d.mts +1 -1
  11. package/src/foundry/client/apps/forms/base-sheet.d.mts +1 -1
  12. package/src/foundry/client/apps/forms/card-config.d.mts +1 -1
  13. package/src/foundry/client/apps/forms/cards-config.d.mts +1 -1
  14. package/src/foundry/client/apps/forms/combat-config.d.mts +1 -1
  15. package/src/foundry/client/apps/forms/effect-config.d.mts +1 -1
  16. package/src/foundry/client/apps/forms/folder-config.d.mts +7 -2
  17. package/src/foundry/client/apps/forms/fonts.d.mts +1 -1
  18. package/src/foundry/client/apps/forms/grid-config.d.mts +1 -1
  19. package/src/foundry/client/apps/forms/image-popout.d.mts +1 -1
  20. package/src/foundry/client/apps/forms/item.d.mts +1 -1
  21. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +1 -1
  22. package/src/foundry/client/apps/forms/journal-sheet.d.mts +1 -1
  23. package/src/foundry/client/apps/forms/macro-config.d.mts +1 -1
  24. package/src/foundry/client/apps/forms/measure-template.d.mts +1 -1
  25. package/src/foundry/client/apps/forms/ownership.d.mts +1 -1
  26. package/src/foundry/client/apps/forms/playlist-config.d.mts +1 -1
  27. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +1 -1
  28. package/src/foundry/client/apps/forms/roll-table-config.d.mts +1 -1
  29. package/src/foundry/client/apps/forms/scene-config.d.mts +1 -1
  30. package/src/foundry/client/apps/forms/sheet-config.d.mts +1 -1
  31. package/src/foundry/client/apps/forms/user-config.d.mts +1 -1
  32. package/src/foundry/client/apps/hud/chatbubble.d.mts +1 -1
  33. package/src/foundry/client/apps/hud/container.d.mts +1 -1
  34. package/src/foundry/client/apps/hud/controls.d.mts +1 -1
  35. package/src/foundry/client/apps/hud/hotbar.d.mts +1 -1
  36. package/src/foundry/client/apps/hud/hud.d.mts +1 -1
  37. package/src/foundry/client/apps/hud/menu.d.mts +1 -1
  38. package/src/foundry/client/apps/hud/navigation.d.mts +1 -1
  39. package/src/foundry/client/apps/hud/pause.d.mts +1 -1
  40. package/src/foundry/client/apps/hud/players.d.mts +1 -1
  41. package/src/foundry/client/apps/placeables/drawing-config.d.mts +1 -1
  42. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +1 -1
  43. package/src/foundry/client/apps/placeables/note-config.d.mts +1 -1
  44. package/src/foundry/client/apps/placeables/tile-config.d.mts +1 -1
  45. package/src/foundry/client/apps/placeables/tile-hud.d.mts +1 -1
  46. package/src/foundry/client/apps/placeables/token-config.d.mts +1 -1
  47. package/src/foundry/client/apps/placeables/token-hud.d.mts +1 -1
  48. package/src/foundry/client/apps/placeables/wall-config.d.mts +1 -1
  49. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +1 -1
  50. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +1 -1
  51. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +1 -1
  52. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +1 -1
  53. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +1 -1
  54. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +1 -1
  55. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +1 -1
  56. package/src/foundry/client/apps/sidebar/sidebar.d.mts +1 -1
  57. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +1 -1
  58. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +1 -1
  59. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +1 -1
  60. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +1 -1
  61. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +1 -1
  62. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +1 -1
  63. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +1 -1
  64. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +1 -1
  65. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +1 -1
  66. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +1 -1
  67. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +1 -1
  68. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +1 -1
  69. package/src/foundry/client/av/client.d.mts +1 -1
  70. package/src/foundry/client/av/clients/simplepeer.d.mts +1 -1
  71. package/src/foundry/client/av/master.d.mts +1 -1
  72. package/src/foundry/client/av/settings.d.mts +1 -1
  73. package/src/foundry/client/config.d.mts +1 -1
  74. package/src/foundry/client/core/hooks.d.mts +1 -1
  75. package/src/foundry/client/core/image.d.mts +1 -1
  76. package/src/foundry/client/core/keybindings.d.mts +1 -1
  77. package/src/foundry/client/core/packages.d.mts +4 -2
  78. package/src/foundry/client/core/settings.d.mts +1 -1
  79. package/src/foundry/client/core/socket.d.mts +1 -1
  80. package/src/foundry/client/core/tooltip.d.mts +1 -1
  81. package/src/foundry/client/core/tour.d.mts +1 -1
  82. package/src/foundry/client/core/utils.d.mts +1 -1
  83. package/src/foundry/client/core/workers.d.mts +1 -1
  84. package/src/foundry/client/data/abstract/canvas-document.d.mts +9 -20
  85. package/src/foundry/client/data/abstract/client-document.d.mts +133 -71
  86. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +2 -2
  87. package/src/foundry/client/data/abstract/document-collection.d.mts +1 -1
  88. package/src/foundry/client/data/abstract/world-collection.d.mts +8 -1
  89. package/src/foundry/client/data/collections/actors.d.mts +1 -1
  90. package/src/foundry/client/data/collections/cards.d.mts +1 -1
  91. package/src/foundry/client/data/collections/combats.d.mts +1 -1
  92. package/src/foundry/client/data/collections/compendium-collection.d.mts +5 -4
  93. package/src/foundry/client/data/collections/fog.d.mts +1 -1
  94. package/src/foundry/client/data/collections/folder.d.mts +1 -1
  95. package/src/foundry/client/data/collections/items.d.mts +1 -1
  96. package/src/foundry/client/data/collections/journal.d.mts +1 -1
  97. package/src/foundry/client/data/collections/macros.d.mts +1 -1
  98. package/src/foundry/client/data/collections/messages.d.mts +1 -1
  99. package/src/foundry/client/data/collections/playlists.d.mts +1 -1
  100. package/src/foundry/client/data/collections/scenes.d.mts +1 -1
  101. package/src/foundry/client/data/collections/settings.d.mts +1 -1
  102. package/src/foundry/client/data/collections/tables.d.mts +1 -1
  103. package/src/foundry/client/data/collections/users.d.mts +4 -4
  104. package/src/foundry/client/data/documents/active-effect.d.mts +124 -48
  105. package/src/foundry/client/data/documents/actor-delta.d.mts +53 -22
  106. package/src/foundry/client/data/documents/actor.d.mts +147 -93
  107. package/src/foundry/client/data/documents/adventure.d.mts +74 -45
  108. package/src/foundry/client/data/documents/ambient-light.d.mts +13 -10
  109. package/src/foundry/client/data/documents/ambient-sound.d.mts +12 -7
  110. package/src/foundry/client/data/documents/card.d.mts +57 -34
  111. package/src/foundry/client/data/documents/cards.d.mts +171 -135
  112. package/src/foundry/client/data/documents/chat-message.d.mts +131 -72
  113. package/src/foundry/client/data/documents/combat.d.mts +80 -60
  114. package/src/foundry/client/data/documents/combatant.d.mts +53 -20
  115. package/src/foundry/client/data/documents/drawing.d.mts +12 -7
  116. package/src/foundry/client/data/documents/fog-exploration.d.mts +57 -17
  117. package/src/foundry/client/data/documents/folder.d.mts +114 -31
  118. package/src/foundry/client/data/documents/item.d.mts +31 -21
  119. package/src/foundry/client/data/documents/journal-entry-page.d.mts +90 -57
  120. package/src/foundry/client/data/documents/journal-entry.d.mts +29 -34
  121. package/src/foundry/client/data/documents/macro.d.mts +60 -34
  122. package/src/foundry/client/data/documents/measured-template.d.mts +13 -8
  123. package/src/foundry/client/data/documents/note.d.mts +14 -7
  124. package/src/foundry/client/data/documents/playlist-sound.d.mts +29 -33
  125. package/src/foundry/client/data/documents/playlist.d.mts +74 -54
  126. package/src/foundry/client/data/documents/region-behavior.d.mts +16 -7
  127. package/src/foundry/client/data/documents/region.d.mts +53 -48
  128. package/src/foundry/client/data/documents/scene.d.mts +310 -89
  129. package/src/foundry/client/data/documents/setting.d.mts +24 -23
  130. package/src/foundry/client/data/documents/table-result.d.mts +20 -8
  131. package/src/foundry/client/data/documents/table.d.mts +19 -13
  132. package/src/foundry/client/data/documents/tile.d.mts +13 -7
  133. package/src/foundry/client/data/documents/token.d.mts +148 -117
  134. package/src/foundry/client/data/documents/user.d.mts +141 -53
  135. package/src/foundry/client/data/documents/wall.d.mts +17 -10
  136. package/src/foundry/client/game.d.mts +1 -1
  137. package/src/foundry/client/head.d.mts +1 -1
  138. package/src/foundry/client/hooks.d.mts +9 -18
  139. package/src/foundry/client/pixi/board.d.mts +3 -2
  140. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +1 -1
  141. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +1 -1
  142. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +1 -1
  143. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +1 -1
  144. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +1 -1
  145. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +1 -1
  146. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +1 -1
  147. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +1 -1
  148. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +1 -1
  149. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +1 -1
  150. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +1 -1
  151. package/src/foundry/client/pixi/core/interaction/ping.d.mts +1 -1
  152. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +1 -1
  153. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +1 -8
  154. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +1 -1
  155. package/src/foundry/client/pixi/core/interaction/targets.d.mts +1 -1
  156. package/src/foundry/client/pixi/core/loader.d.mts +1 -1
  157. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +1 -1
  158. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +1 -1
  159. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +1 -1
  160. package/src/foundry/client/pixi/core/shapes/ray.d.mts +1 -1
  161. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +1 -1
  162. package/src/foundry/client/pixi/extensions/circle.d.mts +1 -1
  163. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +1 -1
  164. package/src/foundry/client/pixi/extensions/polygon.d.mts +1 -1
  165. package/src/foundry/client/pixi/extensions/rectangle.d.mts +1 -1
  166. package/src/foundry/client/pixi/groups/effects.d.mts +1 -1
  167. package/src/foundry/client/pixi/groups/environment.d.mts +1 -1
  168. package/src/foundry/client/pixi/groups/hidden.d.mts +1 -1
  169. package/src/foundry/client/pixi/groups/interface.d.mts +1 -1
  170. package/src/foundry/client/pixi/groups/overlay.d.mts +1 -1
  171. package/src/foundry/client/pixi/groups/primary.d.mts +1 -1
  172. package/src/foundry/client/pixi/groups/rendered.d.mts +1 -1
  173. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +1 -1
  174. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +1 -1
  175. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +1 -1
  176. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +1 -1
  177. package/src/foundry/client/pixi/layers/controls/door.d.mts +1 -1
  178. package/src/foundry/client/pixi/layers/controls/layer.d.mts +1 -1
  179. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +1 -1
  180. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +1 -1
  181. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +1 -1
  182. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +1 -1
  183. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +1 -1
  184. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +1 -1
  185. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +1 -1
  186. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +1 -1
  187. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +1 -1
  188. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +1 -1
  189. package/src/foundry/client/pixi/layers/grid/layer.d.mts +1 -1
  190. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +1 -1
  191. package/src/foundry/client/pixi/layers/masks/depth.d.mts +1 -1
  192. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +1 -1
  193. package/src/foundry/client/pixi/layers/masks/vision.d.mts +1 -1
  194. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +1 -1
  195. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +1 -1
  196. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +1 -1
  197. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +1 -1
  198. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +1 -1
  199. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +1 -1
  200. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +1 -1
  201. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +1 -1
  202. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +1 -1
  203. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +1 -1
  204. package/src/foundry/client/pixi/perception/detection-mode.d.mts +1 -1
  205. package/src/foundry/client/pixi/perception/fog.d.mts +1 -1
  206. package/src/foundry/client/pixi/perception/perception-manager.d.mts +1 -1
  207. package/src/foundry/client/pixi/perception/vision-mode.d.mts +1 -1
  208. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +1 -1
  209. package/src/foundry/client/pixi/placeable.d.mts +2 -1
  210. package/src/foundry/client/pixi/placeables/drawing.d.mts +1 -1
  211. package/src/foundry/client/pixi/placeables/light.d.mts +1 -7
  212. package/src/foundry/client/pixi/placeables/note.d.mts +1 -1
  213. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +1 -1
  214. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +1 -1
  215. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +1 -1
  216. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +1 -1
  217. package/src/foundry/client/pixi/placeables/region.d.mts +1 -1
  218. package/src/foundry/client/pixi/placeables/sound.d.mts +1 -1
  219. package/src/foundry/client/pixi/placeables/template.d.mts +1 -1
  220. package/src/foundry/client/pixi/placeables/tile.d.mts +1 -1
  221. package/src/foundry/client/pixi/placeables/token.d.mts +1 -1
  222. package/src/foundry/client/pixi/placeables/wall.d.mts +1 -1
  223. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +1 -1
  224. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +1 -1
  225. package/src/foundry/client/pixi/webgl/helpers/framebuffer-snapshot.d.mts +1 -1
  226. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +1 -1
  227. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +1 -1
  228. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +1 -1
  229. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +1 -1
  230. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +1 -1
  231. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +1 -1
  232. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +1 -1
  233. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +1 -1
  234. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +1 -1
  235. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +1 -1
  236. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +1 -1
  237. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +1 -1
  238. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +1 -1
  239. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +1 -1
  240. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +1 -1
  241. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +1 -1
  242. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +1 -1
  243. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +1 -1
  244. package/src/foundry/client/pixi/workers/texture-worker.d.mts +1 -1
  245. package/src/foundry/client/ui/context.d.mts +1 -1
  246. package/src/foundry/client/ui/dialog.d.mts +1 -1
  247. package/src/foundry/client/ui/dragdrop.d.mts +1 -1
  248. package/src/foundry/client/ui/editor.d.mts +1 -1
  249. package/src/foundry/client/ui/filepicker.d.mts +1 -1
  250. package/src/foundry/client/ui/filter.d.mts +1 -1
  251. package/src/foundry/client-esm/applications/api/application.d.mts +1 -9
  252. package/src/foundry/client-esm/applications/api/dialog.d.mts +1 -1
  253. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +1 -1
  254. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +1 -1
  255. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +1 -1
  256. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +1 -1
  257. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +1 -1
  258. package/src/foundry/client-esm/applications/forms/fields.d.mts +1 -1
  259. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +1 -1
  260. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +1 -1
  261. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +1 -1
  262. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +1 -1
  263. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +1 -1
  264. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +1 -1
  265. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +1 -1
  266. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +1 -1
  267. package/src/foundry/client-esm/audio/biquad.d.mts +1 -1
  268. package/src/foundry/client-esm/audio/convolver.d.mts +1 -1
  269. package/src/foundry/client-esm/audio/helper.d.mts +1 -1
  270. package/src/foundry/client-esm/audio/sound.d.mts +2 -2
  271. package/src/foundry/client-esm/canvas/edges/collision.d.mts +1 -1
  272. package/src/foundry/client-esm/canvas/edges/edge.d.mts +1 -1
  273. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +1 -1
  274. package/src/foundry/client-esm/canvas/scene-manager.d.mts +1 -1
  275. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +1 -1
  276. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +1 -1
  277. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +1 -1
  278. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +1 -1
  279. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +1 -1
  280. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +1 -1
  281. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +1 -1
  282. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +1 -1
  283. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +1 -1
  284. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +1 -1
  285. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +3 -2
  286. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +1 -1
  287. package/src/foundry/client-esm/data/client-backend.d.mts +1 -1
  288. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +4 -5
  289. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +1 -1
  290. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +1 -1
  291. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +4 -4
  292. package/src/foundry/client-esm/dice/roll.d.mts +5 -8
  293. package/src/foundry/client-esm/dice/terms/coin.d.mts +1 -1
  294. package/src/foundry/client-esm/dice/terms/dice.d.mts +1 -1
  295. package/src/foundry/client-esm/dice/terms/die.d.mts +1 -1
  296. package/src/foundry/client-esm/dice/terms/fate.d.mts +1 -1
  297. package/src/foundry/client-esm/dice/terms/function.d.mts +1 -1
  298. package/src/foundry/client-esm/dice/terms/numeric.d.mts +1 -1
  299. package/src/foundry/client-esm/dice/terms/operator.d.mts +1 -1
  300. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +1 -1
  301. package/src/foundry/client-esm/dice/terms/pool.d.mts +1 -1
  302. package/src/foundry/client-esm/dice/terms/string.d.mts +1 -1
  303. package/src/foundry/client-esm/dice/terms/term.d.mts +1 -1
  304. package/src/foundry/common/abstract/backend.d.mts +1 -1
  305. package/src/foundry/common/abstract/data.d.mts +197 -146
  306. package/src/foundry/common/abstract/document.d.mts +198 -81
  307. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  308. package/src/foundry/common/abstract/embedded-collection.d.mts +1 -1
  309. package/src/foundry/common/abstract/socket.d.mts +1 -1
  310. package/src/foundry/common/abstract/type-data.d.mts +4 -1
  311. package/src/foundry/common/config.d.mts +7 -1
  312. package/src/foundry/common/constants.d.mts +1 -1
  313. package/src/foundry/common/data/data.d.mts +42 -12
  314. package/src/foundry/common/data/fields.d.mts +656 -252
  315. package/src/foundry/common/documents/_types.d.mts +0 -6
  316. package/src/foundry/common/documents/active-effect.d.mts +116 -53
  317. package/src/foundry/common/documents/actor-delta.d.mts +139 -58
  318. package/src/foundry/common/documents/actor.d.mts +105 -51
  319. package/src/foundry/common/documents/adventure.d.mts +84 -39
  320. package/src/foundry/common/documents/ambient-light.d.mts +66 -38
  321. package/src/foundry/common/documents/ambient-sound.d.mts +66 -38
  322. package/src/foundry/common/documents/card.d.mts +100 -59
  323. package/src/foundry/common/documents/cards.d.mts +97 -42
  324. package/src/foundry/common/documents/chat-message.d.mts +105 -52
  325. package/src/foundry/common/documents/combat.d.mts +101 -48
  326. package/src/foundry/common/documents/combatant.d.mts +94 -50
  327. package/src/foundry/common/documents/drawing.d.mts +87 -46
  328. package/src/foundry/common/documents/fog-exploration.d.mts +87 -41
  329. package/src/foundry/common/documents/folder.d.mts +100 -46
  330. package/src/foundry/common/documents/item.d.mts +116 -45
  331. package/src/foundry/common/documents/journal-entry-page.d.mts +90 -40
  332. package/src/foundry/common/documents/journal-entry.d.mts +90 -39
  333. package/src/foundry/common/documents/macro.d.mts +116 -52
  334. package/src/foundry/common/documents/measured-template.d.mts +80 -44
  335. package/src/foundry/common/documents/note.d.mts +75 -39
  336. package/src/foundry/common/documents/playlist-sound.d.mts +88 -47
  337. package/src/foundry/common/documents/playlist.d.mts +101 -50
  338. package/src/foundry/common/documents/region-behavior.d.mts +71 -40
  339. package/src/foundry/common/documents/region.d.mts +68 -40
  340. package/src/foundry/common/documents/roll-table.d.mts +43 -9
  341. package/src/foundry/common/documents/scene.d.mts +190 -43
  342. package/src/foundry/common/documents/setting.d.mts +98 -42
  343. package/src/foundry/common/documents/table-result.d.mts +98 -48
  344. package/src/foundry/common/documents/tile.d.mts +77 -43
  345. package/src/foundry/common/documents/token.d.mts +95 -52
  346. package/src/foundry/common/documents/user.d.mts +100 -89
  347. package/src/foundry/common/documents/wall.d.mts +47 -17
  348. package/src/foundry/common/grid/base.d.mts +1 -1
  349. package/src/foundry/common/grid/gridless.d.mts +1 -1
  350. package/src/foundry/common/grid/hexagonal.d.mts +1 -1
  351. package/src/foundry/common/grid/square.d.mts +1 -1
  352. package/src/foundry/common/packages/base-package.d.mts +37 -14
  353. package/src/foundry/common/packages/base-system.d.mts +39 -0
  354. package/src/foundry/common/packages/base-world.d.mts +8 -1
  355. package/src/foundry/common/packages/sub-types.d.mts +3 -5
  356. package/src/foundry/common/primitives/array.d.mts +1 -1
  357. package/src/foundry/common/primitives/string.d.mts +1 -1
  358. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +1 -1
  359. package/src/foundry/common/prosemirror/dom-parser.d.mts +1 -1
  360. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +1 -1
  361. package/src/foundry/common/prosemirror/image-plugin.d.mts +1 -1
  362. package/src/foundry/common/prosemirror/paste-transformer.d.mts +1 -1
  363. package/src/foundry/common/prosemirror/plugin.d.mts +1 -1
  364. package/src/foundry/common/types.d.mts +1 -1
  365. package/src/foundry/common/utils/bitmask.d.mts +1 -1
  366. package/src/foundry/common/utils/collection.d.mts +1 -1
  367. package/src/foundry/common/utils/event-emitter.d.mts +1 -1
  368. package/src/foundry/common/utils/helpers.d.mts +1 -1
  369. package/src/foundry/public/scripts/clipper/clipper.d.mts +1 -1
  370. package/src/types/augments/particles.d.mts +1 -1
  371. package/src/types/augments/pixi.d.mts +1 -1
  372. package/src/types/augments/smooth.d.mts +1 -1
  373. package/src/types/augments/tinyMCE.d.mts +1 -1
  374. package/src/types/config.d.mts +2 -5
  375. package/src/types/documentConfiguration.d.mts +1 -1
  376. package/src/types/lib.d.mts +1 -1
  377. package/src/types/workers/image-compressor.d.mts +1 -1
@@ -1,9 +1,9 @@
1
- import type { AnyMutableObject, AnyObject, EmptyObject, Identity } from "fvtt-types/utils";
1
+ import type { AnyMutableObject, AnyObject, EmptyObject, Identity, NullishProps } from "#utils";
2
2
  import type { DataField, SchemaField } from "../data/fields.d.mts";
3
3
  import type { fields } from "../data/module.d.mts";
4
4
  import type { DataModelValidationFailure } from "../data/validation-failure.d.mts";
5
5
 
6
- type DataSchema = foundry.data.fields.DataSchema;
6
+ type DataSchema = fields.DataSchema;
7
7
 
8
8
  declare const DynamicClass: new <_Computed extends object>(...args: never) => _Computed;
9
9
 
@@ -30,7 +30,7 @@ declare abstract class DataModel<
30
30
  * will be owned by the constructed model instance and may be mutated.
31
31
  * @param options - Options which affect DataModel construction
32
32
  */
33
- constructor(...args: DataModel.ConstructorArgs<Schema, Parent>);
33
+ constructor(...args: DataModel.ConstructorArgs<Schema, Parent, ExtraConstructorOptions>);
34
34
 
35
35
  /** @internal */
36
36
  " __fvtt_types_internal_source_data": SchemaField.SourceData<Schema>;
@@ -44,7 +44,8 @@ declare abstract class DataModel<
44
44
  /**
45
45
  * Configure the data model instance before validation and initialization workflows are performed.
46
46
  */
47
- protected _configure(options?: ExtraConstructorOptions): void;
47
+ // options: not null (parameter default only, destructured in Document)
48
+ protected _configure(options?: DataModel.ConfigureOptions & ExtraConstructorOptions): void;
48
49
 
49
50
  /**
50
51
  * The source data object for this DataModel instance.
@@ -106,10 +107,12 @@ declare abstract class DataModel<
106
107
  * @param options - Options provided to the model constructor
107
108
  * (unused)
108
109
  * @returns Migrated and cleaned source data which will be stored to the model instance
110
+ * @remarks `options` is unused in `DataModel`
109
111
  */
112
+ // options: not null (parameter default only)
110
113
  protected _initializeSource(
111
114
  data: fields.SchemaField.CreateData<Schema> | this,
112
- options?: Omit<DataModel.DataValidationOptions, "parent">,
115
+ options?: DataModel.InitializeSourceOptions & ExtraConstructorOptions,
113
116
  ): fields.SchemaField.SourceData<Schema>;
114
117
 
115
118
  /**
@@ -118,7 +121,7 @@ declare abstract class DataModel<
118
121
  * @param options - Additional options which are passed to field cleaning methods
119
122
  * @returns The cleaned source data
120
123
  */
121
- static cleanData(source?: AnyMutableObject, options?: Parameters<SchemaField.Any["clean"]>[1]): AnyMutableObject;
124
+ static cleanData(source?: AnyMutableObject, options?: DataField.CleanOptions): AnyMutableObject;
122
125
 
123
126
  /**
124
127
  * A generator that orders the DataFields in the DataSchema into an expected initialization order.
@@ -129,9 +132,10 @@ declare abstract class DataModel<
129
132
  * Initialize the instance by copying data from the source object to instance attributes.
130
133
  * This mirrors the workflow of SchemaField#initialize but with some added functionality.
131
134
  * @param options - Options provided to the model constructor
132
- * (unused)
135
+ * @remarks `options` gets passed on to each field in the schema's `#initialize`
133
136
  */
134
- protected _initialize(options?: any): void;
137
+ // options: not null (parameter default only)
138
+ protected _initialize(options?: DataModel.InitializeOptions & ExtraConstructorOptions): void;
135
139
 
136
140
  /**
137
141
  * Reset the state of this data instance back to mirror the contained source data, erasing any changes.
@@ -142,9 +146,22 @@ declare abstract class DataModel<
142
146
  * Clone a model, creating a new data model by combining current data with provided overrides.
143
147
  * @param data - Additional data which overrides current document data at the time of creation
144
148
  * @param context - Context options passed to the data model constructor
145
- * @returns The cloned Document instance
149
+ * @returns The cloned Document [sic] instance
150
+ * @remarks Obviously returns not necessarily a `Document`, just a `DataModel`.
151
+ *
152
+ * **NOTE:** At the type level, the returned model will necessarily have the same parent as the instance `#clone()` is being called
153
+ * on; Accurate typing of `#parent` requires a cast.
154
+ * @privateRemarks Foundry types `context` as simply `object`, but going by core usage, it's a
155
+ * {@link DataModel.ConstructionContext | `DataModel.ConstructionContext`}. Both the implementation here
156
+ * and the override in `Document` provide `this.parent` to the construction context; Here, `context` is
157
+ * spread in, so providing a different parent is allowed. The `Document` override enforces `this.parent`
158
+ * with no opportunity to pass an alternative.
146
159
  */
147
- clone(data?: fields.SchemaField.AssignmentData<Schema>, context?: DataModel.DataValidationOptions<Parent>): this;
160
+ // null would be fine for either/both params here, but it breaks Document, and its never *expected*, just incidentally doesn't break
161
+ clone(
162
+ data?: fields.SchemaField.AssignmentData<Schema>,
163
+ context?: DataModel.CloneContext & ExtraConstructorOptions,
164
+ ): this;
148
165
 
149
166
  /**
150
167
  * Validate the data contained in the document to check for type and content
@@ -153,7 +170,8 @@ declare abstract class DataModel<
153
170
  * @param options - Optional parameters which customize how validation occurs.
154
171
  * @returns An indicator for whether the document contains valid data
155
172
  */
156
- validate({ changes, clean, fallback, strict, fields, joint }?: DataModel.ValidateOptions<Schema>): boolean;
173
+ // options: not null (destructured)
174
+ validate(options?: DataModel.ValidateOptions<Schema>): boolean;
157
175
 
158
176
  /**
159
177
  * Evaluate joint validation rules which apply validation conditions across multiple fields of the model.
@@ -161,15 +179,13 @@ declare abstract class DataModel<
161
179
  * This method allows for testing aggregate rules which impose requirements on the overall model.
162
180
  * @param data - Candidate data for the model
163
181
  * @throws An error if a validation failure is detected
182
+ * @remarks Other than posting a deprecation warning about and forwarding `data` to `this.prototype._validateModel` if defined,
183
+ * this is effectively abstract in `DataModel`. Subclasses implementing should type `data` as the `SchemaField.SourceData<>` of
184
+ * their schema.
164
185
  */
186
+ // TODO(esheyw): dep warning is gone in v13, clean up remarks
165
187
  static validateJoint(data: never): void;
166
188
 
167
- /**
168
- * @deprecated since v11; Use the validateJoint static method instead.
169
- */
170
- // TODO(LukeAbby): Should be SourceType
171
- protected _validateModel(data: fields.SchemaField.SourceData<Schema>): void;
172
-
173
189
  /**
174
190
  * Update the DataModel locally by applying an object of changes to its source data.
175
191
  * The provided changes are cleaned, validated, and stored to the source data object for this model.
@@ -180,76 +196,69 @@ declare abstract class DataModel<
180
196
  * @param options - Options which determine how the new data is merged
181
197
  * @returns An object containing the changed keys and values
182
198
  */
199
+ // TODO: This should allow dotkeys to be passed
200
+ // TODO: Without widening changes and the return type, the ActorDelta override is impossible to make correct
201
+ // changes, options: not null (parameter default only)
183
202
  updateSource(
184
203
  changes?: fields.SchemaField.UpdateData<Schema>,
185
- options?: DataModel.UpdateSourceOptions,
204
+ options?: DataModel.UpdateOptions,
186
205
  ): fields.SchemaField.UpdateData<Schema>;
187
206
 
188
- /**
189
- * Update the source data for a specific DataSchema.
190
- * This method assumes that both source and changes are valid objects.
191
- * @param schema - The data schema to update
192
- * @param source - Source data to be updated
193
- * @param changes - Changes to apply to the source data
194
- * @param options - Options which modify the update workflow
195
- * @returns The updated source data
196
- * @throws An error if the update operation was unsuccessful
197
- */
198
- static #updateData(
199
- schema: SchemaField.Any,
200
- source: object,
201
- changes: object,
202
- options: DataModel.UpdateOptions,
203
- ): object;
204
-
205
- /**
206
- * Update the source data for a specific DataField.
207
- * @param name - The field name being updated
208
- * @param field - The field definition being updated
209
- * @param source - The source object being updated
210
- * @param value - The new value for the field
211
- * @param options - Options which modify the update workflow
212
- * @throws An error if the new candidate value is invalid
213
- */
214
- static #updateField(
215
- name: string,
216
- field: DataField.Any,
217
- source: object,
218
- value: any,
219
- options: DataModel.UpdateOptions,
220
- ): object;
221
-
222
207
  /**
223
208
  * Copy and transform the DataModel into a plain object.
224
209
  * Draw the values of the extracted object from the data source (by default) otherwise from its transformed values.
225
- * @param source - Draw values from the underlying data source rather than transformed values
226
- * (default: `true`)
210
+ * @param source - Draw values from the underlying data source rather than transformed values (default: `true`)
227
211
  * @returns The extracted primitive object
228
212
  */
229
- toObject<Source extends boolean | undefined>(
230
- source?: Source,
231
- ): Source extends false ? SchemaField.SourceData<Schema> : Readonly<SchemaField.SourceData<Schema>>;
213
+ toObject(source?: boolean | null): SchemaField.SourceData<Schema>;
232
214
 
233
215
  /**
234
216
  * Extract the source data for the DataModel into a simple object format that can be serialized.
235
217
  * @returns The document source data expressed as a plain object
236
218
  */
237
- toJSON(): fields.SchemaField.SourceData<Schema>;
219
+ toJSON(): SchemaField.SourceData<Schema>;
238
220
 
239
221
  /**
240
222
  * Create a new instance of this DataModel from a source record.
241
223
  * The source is presumed to be trustworthy and is not strictly validated.
242
224
  * @param source - Initial document data which comes from a trusted source.
243
225
  * @param context - Model construction context
244
- * @remarks Returns `new this()` so needs an override per subclass.
226
+ * @remarks Returns `new this()` so needs an override per subclass:
227
+ * ```ts
228
+ * const mySchema = {
229
+ * // etc
230
+ * }
231
+ *
232
+ * type MySchema = typeof mySchema
233
+ *
234
+ * // most models likely wont be using this param at all, but its included for completeness
235
+ * interface MyExtraConstructorOptions {
236
+ * someProp: string
237
+ * }
238
+ *
239
+ * class MyDataModel extends DataModel<MySchema, DataModel.Any | null, MyExtraConstructorOptions> {
240
+ * static fromSource(
241
+ * source: foundry.data.fields.SchemaField.CreateData<MySchema>,
242
+ * context?: DataModel.FromSourceOptions<NewParent> & MyExtraConstructorOptions
243
+ * ): MyDataModel
244
+ * }
245
+ * ```
245
246
  */
246
- static fromSource(source: never, { strict, ...context }?: DataModel.FromSourceOptions): DataModel.Any;
247
+ // context: not null (destructured)
248
+ static fromSource(source: never, context?: DataModel.FromSourceOptions): DataModel.Any;
247
249
 
248
250
  /**
249
251
  * Create a DataModel instance using a provided serialized JSON string.
250
252
  * @param json - Serialized document data in string format
251
253
  * @returns A constructed data model instance
252
- * @remarks Returns `new this()` so needs an override per subclass.
254
+ * @remarks
255
+ * Returns `new this()` so needs an override per subclass.
256
+ *
257
+ * ```ts
258
+ * class MyDataModel extends ... {
259
+ * static fromJSON(json: string): MyDataModel
260
+ * }
261
+ * ```
253
262
  */
254
263
  static fromJSON(json: string): DataModel.Any;
255
264
 
@@ -279,17 +288,28 @@ declare abstract class DataModel<
279
288
  }
280
289
 
281
290
  declare namespace DataModel {
291
+ interface Any extends AnyDataModel {}
292
+ interface AnyConstructor extends Identity<typeof AnyDataModel> {}
293
+
282
294
  type CreateData<Schema extends DataSchema> = fields.SchemaField.AssignmentData<Schema> | DataModel<Schema, any>;
283
295
 
284
296
  type ConstructorDataFor<ConcreteDataModel extends DataModel.Any> = CreateData<SchemaOf<ConcreteDataModel>>;
285
297
 
286
298
  // TODO(LukeAbby): Make optional only if `{}` is assignable to `AssignmentData`.
287
- type ConstructorArgs<Schema extends DataSchema, Parent extends DataModel.Any | null = null> = [
299
+ type ConstructorArgs<
300
+ Schema extends DataSchema,
301
+ Parent extends DataModel.Any | null = null,
302
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
303
+ ExtraConstructorOptions extends AnyObject = {},
304
+ > = [
305
+ // not null (parameter default only)
288
306
  data?: DataModel.CreateData<Schema>,
289
307
 
290
308
  // Note(LukeAbby): `{ parent, strict, ...options }`
291
- options?: DataModel.DataValidationOptions<Parent>,
309
+ // not null (destructured)
310
+ options?: DataModel.ConstructionContext<Parent> & ExtraConstructorOptions,
292
311
  ];
312
+
293
313
  /**
294
314
  * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
295
315
  *
@@ -300,46 +320,6 @@ declare namespace DataModel {
300
320
  */
301
321
  interface UnknownDataModel extends DataModel<any, any, any> {}
302
322
 
303
- interface DataValidationOptions<Parent extends Any | null = Any | null> {
304
- /**
305
- * Throw an error if validation fails.
306
- * @defaultValue `true`
307
- */
308
- strict?: boolean | null | undefined;
309
-
310
- /**
311
- * Attempt to replace invalid values with valid defaults?
312
- *
313
- * @defaultValue `false`
314
- */
315
- fallback?: boolean | null | undefined;
316
-
317
- /**
318
- * Allow partial source data, ignoring absent fields?
319
- *
320
- * @defaultValue `false`
321
- */
322
- partial?: boolean | null | undefined;
323
-
324
- /**
325
- * If true, invalid embedded documents will emit a warning and be
326
- * placed in the invalidDocuments collection rather than causing the
327
- * parent to be considered invalid.
328
- *
329
- * @defaultValue `false`
330
- */
331
- dropInvalidEmbedded?: boolean | null | undefined;
332
-
333
- /**
334
- * A parent DataModel instance to which this DataModel belongs
335
- * @defaultValue `null`
336
- */
337
- parent?: Parent | null | undefined;
338
- }
339
-
340
- interface Any extends AnyDataModel {}
341
- interface AnyConstructor extends Identity<typeof AnyDataModel> {}
342
-
343
323
  /**
344
324
  * A helper type to extract the schema from a {@link DataModel | `DataModel`}.
345
325
  * @typeParam ModelType - the DataModel for the embedded data
@@ -356,86 +336,157 @@ declare namespace DataModel {
356
336
  ? Fields
357
337
  : never;
358
338
 
359
- interface UpdateOptions {
360
- dryRun?: boolean;
361
- fallback?: boolean;
362
- recursive?: boolean;
363
- restoreDelta?: boolean;
364
- _collections: Record<string, unknown>;
365
- _singletons: Record<string, unknown>;
366
- _diff: Record<string, unknown>;
367
- _backup: Record<string, unknown>;
339
+ /** @internal this is how 13.339 splits up the interfaces */
340
+ type _ConstructionContext = Pick<ValidateOptions<DataSchema>, "strict" | "fallback" | "dropInvalidEmbedded">;
341
+
342
+ interface ConstructionContext<Parent extends Any | null = Any | null> extends _ConstructionContext {
343
+ /**
344
+ * A parent DataModel instance to which this DataModel belongs
345
+ * @defaultValue `null`
346
+ */
347
+ parent?: Parent | undefined;
368
348
  }
369
349
 
370
- interface FromSourceOptions extends DataModel.DataValidationOptions {
350
+ interface CloneContext extends _ConstructionContext {
371
351
  /**
372
- * Models created from trusted source data are validated non-strictly
373
- * @defaultValue `false`
352
+ * A parent DataModel instance to which this DataModel belongs
353
+ * @defaultValue `this.parent`
354
+ * @remarks The above default is only applied if this parameter is omitted entirely. Passing `parent: undefined` will
355
+ * cause the returned DataModel's `parent` (*at runtime*) to be `null`, because it will override the spread-object
356
+ * default of `this.parent`, and then the parameter default in `new DataModel()` (`null`) will apply.
357
+ *
358
+ * **NOTE:** At the type level, the returned model will necessarily have the same parent as the instance `#clone()` is being called
359
+ * on; Accurate typing of `#parent` requires a cast.
374
360
  */
375
- strict?: boolean;
361
+ parent?: Any | null | undefined;
376
362
  }
377
363
 
378
- interface ShimDataOptions {
364
+ /**
365
+ * @internal
366
+ * Updated to 13.339 wording, still accurate for v12
367
+ */
368
+ type _ValidateOptions<Schema extends DataSchema> = NullishProps<{
379
369
  /**
380
- * Apply shims to embedded models?
370
+ * Validate each individual field?
381
371
  * @defaultValue `true`
382
372
  */
383
- embedded?: boolean;
384
- }
373
+ fields: boolean;
374
+
375
+ /**
376
+ * Perform joint validation on the full data model?
377
+ * Joint validation will be performed by default if no changes are passed.
378
+ * Joint validation will be disabled by default if changes are passed.
379
+ * Joint validation can be performed on a complete set of changes (for example, testing a complete data model) by explicitly passing true.
380
+ * @remarks If nullish, defaults to `!changes`
381
+ */
382
+ joint: boolean;
385
383
 
386
- interface ValidateOptions<Schema extends DataSchema> {
387
384
  /**
388
385
  * A specific set of proposed changes to validate, rather than the full source data of the model.
386
+ * @remarks If not passed or nullish, `validate` will operate on `this._source` instead
389
387
  */
390
- changes?: fields.SchemaField.AssignmentData<Schema>;
388
+ changes: fields.SchemaField.AssignmentData<Schema>;
391
389
 
392
390
  /**
393
391
  * If changes are provided, attempt to clean the changes before validating them?
394
392
  * @defaultValue `false`
393
+ * @remarks Only has any effect if a `changes` has been passed with it
394
+ */
395
+ clean: boolean;
396
+
397
+ /**
398
+ * Throw an error if validation fails.
399
+ * @defaultValue `true`
395
400
  */
396
- clean?: boolean;
401
+ strict: boolean;
397
402
 
398
403
  /**
399
- * Allow replacement of invalid values with valid defaults?
404
+ * Allow replacement of invalid values with valid defaults? This option mutates the provided changes.
400
405
  * @defaultValue `false`
406
+ * @see {@link DataField.ValidateOptions.fallback | `DataField.DataValidationOptions.fallback`}
401
407
  */
402
- fallback?: boolean;
408
+ fallback: boolean;
409
+
410
+ // Foundry describes a `partial` property here, but nothing in DataModel actually *takes* such; `#validate`
411
+ // generates a value for `partial` from the state of `changes` and `joint` before passing it on to either
412
+ // `DataModel.cleanData` or `SchemaField#validate`, both of which do have uses for that property downstream
413
+ // (in `SchemaField#_cleanType` and `#_validateType`). This is a documentation error in v12, fixed in v13.
403
414
 
404
415
  /**
405
- * If true, invalid embedded documents will emit a warning and
406
- * be placed in the invalidDocuments collection rather than
407
- * causing the parent to be considered invalid.
416
+ * If true, invalid embedded documents will emit a warning and be placed in the invalidDocuments collection rather
417
+ * than causing the parent to be considered invalid. This option mutates the provided changes.
408
418
  * @defaultValue `false`
419
+ * @see {@link DataField.ValidateOptions.dropInvalidEmbedded | `DataField.DataValidationOptions.dropInvalidEmbedded`}
409
420
  */
410
421
  dropInvalidEmbedded: boolean;
422
+ }>;
423
+
424
+ interface ValidateOptions<Schema extends DataSchema> extends _ValidateOptions<Schema> {}
425
+
426
+ /**
427
+ * @deprecated Use {@link DataModel.ConstructionContext | `DataModel.ConstructionContext`} for `new`/`#clone()`/`.create()`,
428
+ * {@link DataModel.ValidateOptions | `DataModel.ValidateOptions`} for `#validate()`
429
+ */
430
+ interface DataValidationOptions<Parent extends Any | null = Any | null> extends ConstructionContext<Parent> {}
431
+
432
+ /** `DataModel#constructor` pulls `parent` out of the passed `ConstructionContext` before forwarding to `#_initializeSource` */
433
+ interface InitializeSourceOptions extends _ConstructionContext {}
434
+
435
+ /** `DataModel#constructor` pulls `parent` and `strict` out of the passed `ConstructionContext` before forwarding to `#_configure` */
436
+ interface ConfigureOptions extends Omit<_ConstructionContext, "strict"> {}
437
+
438
+ /** `DataModel#constructor` pulls `parent` out of the passed `ConstructionContext` before forwarding to `#_initialize` */
439
+ interface InitializeOptions extends _ConstructionContext {}
440
+
441
+ type _UpdateOptions = NullishProps<{
442
+ /** Do not finally apply the change, but instead simulate the update workflow */
443
+ dryRun: boolean;
411
444
 
412
445
  /**
413
- * Throw if an invalid value is encountered, otherwise log a warning?
414
- * @defaultValue `true`
446
+ * Allow automatic fallback to a valid initial value if the value provided for a field
447
+ * in the model is invalid.
415
448
  */
416
- strict?: boolean;
449
+ fallback: boolean;
450
+
451
+ /** Apply changes to inner objects recursively rather than replacing the top-level object */
452
+ recursive: boolean;
453
+
454
+ /** An advanced option used specifically and internally by the ActorDelta model */
455
+ restoreDelta: boolean;
456
+ }>;
417
457
 
458
+ interface UpdateOptions extends _UpdateOptions {}
459
+
460
+ /**
461
+ * @internal
462
+ * Only necessary to change the default value of `strict`
463
+ */
464
+ type _FromSourceOptions = NullishProps<{
418
465
  /**
419
- * Perform validation on individual fields?
420
- * @defaultValue `true`
466
+ * Models created from trusted source data are validated non-strictly
467
+ * @defaultValue `false`
468
+ * @remarks The property description is describing why the default is `false` here,
469
+ * rather than `true` in normal construction
421
470
  */
422
- fields?: boolean;
471
+ strict: boolean;
472
+ }>;
473
+
474
+ /**
475
+ * @remarks `.fromSource` could take and pass on a specific `Parent`, but this causes
476
+ * inheritance issues and complicates subclass overriding
477
+ */
478
+ interface FromSourceOptions extends ConstructionContext {}
423
479
 
480
+ /** @internal */
481
+ type _ShimDataOptions = NullishProps<{
424
482
  /**
425
- * Perform joint validation on the full data model?
426
- * Joint validation will be performed by default if no changes are passed.
427
- * Joint validation will be disabled by default if changes are passed.
428
- * Joint validation can be performed on a complete set of changes (for
429
- * example testing a complete data model) by explicitly passing true.
483
+ * Apply shims to embedded models?
484
+ * @defaultValue `true`
430
485
  */
431
- joint?: boolean;
432
- }
486
+ embedded: boolean;
487
+ }>;
433
488
 
434
- interface UpdateSourceOptions {
435
- dryRun?: boolean;
436
- fallback?: boolean;
437
- recursive?: boolean;
438
- }
489
+ interface ShimDataOptions extends _ShimDataOptions {}
439
490
  }
440
491
 
441
492
  // This uses `any` because `Schema` and `Parent` are invariant