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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/README.md +17 -18
  2. package/package.json +91 -32
  3. package/src/configuration/configuration.d.mts +316 -0
  4. package/src/configuration/documents.d.mts +295 -0
  5. package/src/configuration/globals.d.mts +357 -0
  6. package/src/configuration/index.d.mts +5 -0
  7. package/src/foundry/client/apps/app.d.mts +129 -122
  8. package/src/foundry/client/apps/av/av-config.d.mts +12 -7
  9. package/src/foundry/client/apps/av/cameras.d.mts +12 -7
  10. package/src/foundry/client/apps/dice/dice-config.d.mts +59 -0
  11. package/src/foundry/client/apps/dice/index.d.mts +1 -0
  12. package/src/foundry/client/apps/form.d.mts +114 -86
  13. package/src/foundry/client/apps/forms/actor.d.mts +21 -11
  14. package/src/foundry/client/apps/forms/adventure-exporter.d.mts +12 -7
  15. package/src/foundry/client/apps/forms/adventure-importer.d.mts +14 -6
  16. package/src/foundry/client/apps/forms/base-sheet.d.mts +16 -8
  17. package/src/foundry/client/apps/forms/card-config.d.mts +16 -8
  18. package/src/foundry/client/apps/forms/cards-config.d.mts +15 -14
  19. package/src/foundry/client/apps/forms/combat-config.d.mts +7 -7
  20. package/src/foundry/client/apps/forms/combatant-config.d.mts +3 -3
  21. package/src/foundry/client/apps/forms/default-sheets-config.d.mts +1 -1
  22. package/src/foundry/client/apps/forms/effect-config.d.mts +7 -7
  23. package/src/foundry/client/apps/forms/folder-config.d.mts +10 -5
  24. package/src/foundry/client/apps/forms/fonts.d.mts +42 -35
  25. package/src/foundry/client/apps/forms/grid-config.d.mts +12 -13
  26. package/src/foundry/client/apps/forms/image-popout.d.mts +29 -23
  27. package/src/foundry/client/apps/forms/item.d.mts +9 -9
  28. package/src/foundry/client/apps/forms/journal-page-sheet.d.mts +16 -14
  29. package/src/foundry/client/apps/forms/journal-sheet.d.mts +48 -38
  30. package/src/foundry/client/apps/forms/macro-config.d.mts +7 -7
  31. package/src/foundry/client/apps/forms/measure-template.d.mts +10 -12
  32. package/src/foundry/client/apps/forms/ownership.d.mts +5 -5
  33. package/src/foundry/client/apps/forms/playlist-config.d.mts +8 -10
  34. package/src/foundry/client/apps/forms/playlist-sound-config.d.mts +7 -7
  35. package/src/foundry/client/apps/forms/roll-table-config.d.mts +11 -10
  36. package/src/foundry/client/apps/forms/scene-config.d.mts +40 -41
  37. package/src/foundry/client/apps/forms/sheet-config.d.mts +9 -21
  38. package/src/foundry/client/apps/forms/user-config.d.mts +13 -12
  39. package/src/foundry/client/apps/hud/chatbubble.d.mts +18 -6
  40. package/src/foundry/client/apps/hud/container.d.mts +4 -4
  41. package/src/foundry/client/apps/hud/controls.d.mts +126 -81
  42. package/src/foundry/client/apps/hud/hotbar.d.mts +17 -12
  43. package/src/foundry/client/apps/hud/hud.d.mts +5 -5
  44. package/src/foundry/client/apps/hud/menu.d.mts +10 -3
  45. package/src/foundry/client/apps/hud/navigation.d.mts +14 -9
  46. package/src/foundry/client/apps/hud/pause.d.mts +9 -4
  47. package/src/foundry/client/apps/hud/players.d.mts +14 -9
  48. package/src/foundry/client/apps/i18n.d.mts +31 -27
  49. package/src/foundry/client/apps/index.d.mts +1 -0
  50. package/src/foundry/client/apps/placeables/drawing-config.d.mts +41 -33
  51. package/src/foundry/client/apps/placeables/drawing-hud.d.mts +5 -5
  52. package/src/foundry/client/apps/placeables/index.d.mts +0 -2
  53. package/src/foundry/client/apps/placeables/note-config.d.mts +28 -18
  54. package/src/foundry/client/apps/placeables/tile-config.d.mts +23 -10
  55. package/src/foundry/client/apps/placeables/tile-hud.d.mts +10 -5
  56. package/src/foundry/client/apps/placeables/token-config.d.mts +91 -58
  57. package/src/foundry/client/apps/placeables/token-hud.d.mts +12 -7
  58. package/src/foundry/client/apps/placeables/wall-config.d.mts +21 -17
  59. package/src/foundry/client/apps/sidebar/apps/chat-popout.d.mts +5 -5
  60. package/src/foundry/client/apps/sidebar/apps/client-settings.d.mts +3 -3
  61. package/src/foundry/client/apps/sidebar/apps/compendium.d.mts +15 -13
  62. package/src/foundry/client/apps/sidebar/apps/invitation-links.d.mts +3 -3
  63. package/src/foundry/client/apps/sidebar/apps/keybindings-config.d.mts +3 -2
  64. package/src/foundry/client/apps/sidebar/apps/module-management.d.mts +6 -6
  65. package/src/foundry/client/apps/sidebar/apps/permission-config.d.mts +6 -6
  66. package/src/foundry/client/apps/sidebar/apps/support-details.d.mts +34 -29
  67. package/src/foundry/client/apps/sidebar/apps/tours-management.d.mts +2 -2
  68. package/src/foundry/client/apps/sidebar/apps/world-config.d.mts +13 -10
  69. package/src/foundry/client/apps/sidebar/directory-tab-mixin.d.mts +50 -35
  70. package/src/foundry/client/apps/sidebar/document-directory.d.mts +52 -38
  71. package/src/foundry/client/apps/sidebar/package-configuration.d.mts +4 -4
  72. package/src/foundry/client/apps/sidebar/sidebar-tab.d.mts +3 -3
  73. package/src/foundry/client/apps/sidebar/sidebar.d.mts +9 -4
  74. package/src/foundry/client/apps/sidebar/tabs/actors-directory.d.mts +11 -2
  75. package/src/foundry/client/apps/sidebar/tabs/cards-directory.d.mts +11 -2
  76. package/src/foundry/client/apps/sidebar/tabs/chat-log.d.mts +39 -27
  77. package/src/foundry/client/apps/sidebar/tabs/combat-tracker.d.mts +21 -12
  78. package/src/foundry/client/apps/sidebar/tabs/compendium-directory.d.mts +30 -15
  79. package/src/foundry/client/apps/sidebar/tabs/items-directory.d.mts +11 -2
  80. package/src/foundry/client/apps/sidebar/tabs/journal-directory.d.mts +11 -2
  81. package/src/foundry/client/apps/sidebar/tabs/macros-directory.d.mts +14 -5
  82. package/src/foundry/client/apps/sidebar/tabs/playlists-directory.d.mts +30 -22
  83. package/src/foundry/client/apps/sidebar/tabs/roll-table-directory.d.mts +11 -2
  84. package/src/foundry/client/apps/sidebar/tabs/scenes-directory.d.mts +14 -5
  85. package/src/foundry/client/apps/sidebar/tabs/settings.d.mts +23 -5
  86. package/src/foundry/client/apps/templates.d.mts +1 -1
  87. package/src/foundry/client/av/client.d.mts +1 -1
  88. package/src/foundry/client/av/clients/simplepeer.d.mts +11 -1
  89. package/src/foundry/client/av/master.d.mts +2 -2
  90. package/src/foundry/client/av/settings.d.mts +17 -15
  91. package/src/foundry/client/config.d.mts +444 -312
  92. package/src/foundry/client/core/document-index.d.mts +11 -3
  93. package/src/foundry/client/core/hooks.d.mts +2 -4
  94. package/src/foundry/client/core/image.d.mts +14 -13
  95. package/src/foundry/client/core/issues.d.mts +9 -4
  96. package/src/foundry/client/core/keybindings.d.mts +5 -5
  97. package/src/foundry/client/core/nue.d.mts +1 -1
  98. package/src/foundry/client/core/packages.d.mts +400 -62
  99. package/src/foundry/client/core/settings.d.mts +62 -38
  100. package/src/foundry/client/core/socket.d.mts +2 -2
  101. package/src/foundry/client/core/sorting.d.mts +6 -6
  102. package/src/foundry/client/core/time.d.mts +6 -3
  103. package/src/foundry/client/core/tooltip.d.mts +2 -2
  104. package/src/foundry/client/core/tour.d.mts +59 -50
  105. package/src/foundry/client/core/tours.d.mts +1 -1
  106. package/src/foundry/client/core/utils.d.mts +33 -10
  107. package/src/foundry/client/core/video.d.mts +1 -1
  108. package/src/foundry/client/core/workers.d.mts +24 -17
  109. package/src/foundry/client/data/abstract/canvas-document.d.mts +22 -28
  110. package/src/foundry/client/data/abstract/client-document.d.mts +238 -206
  111. package/src/foundry/client/data/abstract/directory-collection-mixin.d.mts +24 -40
  112. package/src/foundry/client/data/abstract/document-collection.d.mts +96 -68
  113. package/src/foundry/client/data/abstract/world-collection.d.mts +53 -54
  114. package/src/foundry/client/data/collections/actors.d.mts +30 -28
  115. package/src/foundry/client/data/collections/cards.d.mts +16 -3
  116. package/src/foundry/client/data/collections/combats.d.mts +18 -5
  117. package/src/foundry/client/data/collections/compendium-collection.d.mts +84 -101
  118. package/src/foundry/client/data/collections/compendium-folders.d.mts +6 -6
  119. package/src/foundry/client/data/collections/compendium-packs.d.mts +5 -5
  120. package/src/foundry/client/data/collections/fog.d.mts +16 -3
  121. package/src/foundry/client/data/collections/folder.d.mts +20 -6
  122. package/src/foundry/client/data/collections/items.d.mts +17 -4
  123. package/src/foundry/client/data/collections/journal.d.mts +22 -7
  124. package/src/foundry/client/data/collections/macros.d.mts +21 -19
  125. package/src/foundry/client/data/collections/messages.d.mts +19 -6
  126. package/src/foundry/client/data/collections/playlists.d.mts +17 -5
  127. package/src/foundry/client/data/collections/scenes.d.mts +24 -27
  128. package/src/foundry/client/data/collections/settings.d.mts +16 -3
  129. package/src/foundry/client/data/collections/tables.d.mts +18 -5
  130. package/src/foundry/client/data/collections/users.d.mts +22 -10
  131. package/src/foundry/client/data/documents/active-effect.d.mts +780 -112
  132. package/src/foundry/client/data/documents/actor-delta.d.mts +705 -31
  133. package/src/foundry/client/data/documents/actor.d.mts +806 -98
  134. package/src/foundry/client/data/documents/adventure.d.mts +522 -59
  135. package/src/foundry/client/data/documents/ambient-light.d.mts +427 -20
  136. package/src/foundry/client/data/documents/ambient-sound.d.mts +478 -14
  137. package/src/foundry/client/data/documents/card.d.mts +598 -44
  138. package/src/foundry/client/data/documents/cards.d.mts +862 -169
  139. package/src/foundry/client/data/documents/chat-message.d.mts +668 -77
  140. package/src/foundry/client/data/documents/combat.d.mts +757 -107
  141. package/src/foundry/client/data/documents/combatant.d.mts +545 -32
  142. package/src/foundry/client/data/documents/drawing.d.mts +545 -14
  143. package/src/foundry/client/data/documents/fog-exploration.d.mts +465 -30
  144. package/src/foundry/client/data/documents/folder.d.mts +567 -51
  145. package/src/foundry/client/data/documents/index.d.mts +2 -0
  146. package/src/foundry/client/data/documents/item.d.mts +691 -24
  147. package/src/foundry/client/data/documents/journal-entry-page.d.mts +654 -55
  148. package/src/foundry/client/data/documents/journal-entry.d.mts +631 -35
  149. package/src/foundry/client/data/documents/macro.d.mts +560 -31
  150. package/src/foundry/client/data/documents/measured-template.d.mts +484 -15
  151. package/src/foundry/client/data/documents/note.d.mts +498 -15
  152. package/src/foundry/client/data/documents/playlist-sound.d.mts +443 -45
  153. package/src/foundry/client/data/documents/playlist.d.mts +710 -99
  154. package/src/foundry/client/data/documents/region-behavior.d.mts +516 -0
  155. package/src/foundry/client/data/documents/region.d.mts +789 -0
  156. package/src/foundry/client/data/documents/scene.d.mts +1216 -159
  157. package/src/foundry/client/data/documents/setting.d.mts +406 -23
  158. package/src/foundry/client/data/documents/table-result.d.mts +488 -14
  159. package/src/foundry/client/data/documents/table.d.mts +667 -78
  160. package/src/foundry/client/data/documents/tile.d.mts +505 -14
  161. package/src/foundry/client/data/documents/token.d.mts +1191 -143
  162. package/src/foundry/client/data/documents/user.d.mts +613 -57
  163. package/src/foundry/client/data/documents/wall.d.mts +555 -14
  164. package/src/foundry/client/game.d.mts +60 -92
  165. package/src/foundry/client/head.d.mts +9 -9
  166. package/src/foundry/client/hooks.d.mts +259 -248
  167. package/src/foundry/client/pixi/board.d.mts +107 -94
  168. package/src/foundry/client/pixi/core/containers/base-canvas-group.d.mts +97 -25
  169. package/src/foundry/client/pixi/core/containers/cached-container.d.mts +37 -19
  170. package/src/foundry/client/pixi/core/containers/full-canvas-container.d.mts +7 -10
  171. package/src/foundry/client/pixi/core/containers/point-source-mesh.d.mts +25 -15
  172. package/src/foundry/client/pixi/core/containers/quad-mesh.d.mts +16 -6
  173. package/src/foundry/client/pixi/core/containers/quadtree.d.mts +113 -54
  174. package/src/foundry/client/pixi/core/containers/sprite-mesh.d.mts +69 -26
  175. package/src/foundry/client/pixi/core/containers/unbound-container.d.mts +20 -2
  176. package/src/foundry/client/pixi/core/interaction/canvas-animation.d.mts +164 -99
  177. package/src/foundry/client/pixi/core/interaction/control-icon.d.mts +61 -22
  178. package/src/foundry/client/pixi/core/interaction/mouse-handler.d.mts +120 -53
  179. package/src/foundry/client/pixi/core/interaction/ping.d.mts +62 -31
  180. package/src/foundry/client/pixi/core/interaction/pings/chevron.d.mts +23 -10
  181. package/src/foundry/client/pixi/core/interaction/pings/pulse.d.mts +91 -34
  182. package/src/foundry/client/pixi/core/interaction/render-flags.d.mts +69 -30
  183. package/src/foundry/client/pixi/core/interaction/resize-handle.d.mts +35 -5
  184. package/src/foundry/client/pixi/core/interaction/targets.d.mts +21 -18
  185. package/src/foundry/client/pixi/core/loader.d.mts +86 -76
  186. package/src/foundry/client/pixi/core/shapes/limited-angle-polygon.d.mts +42 -17
  187. package/src/foundry/client/pixi/core/shapes/polygon-mesher.d.mts +92 -64
  188. package/src/foundry/client/pixi/core/shapes/precise-text.d.mts +28 -10
  189. package/src/foundry/client/pixi/core/shapes/ray.d.mts +47 -23
  190. package/src/foundry/client/pixi/core/shapes/source-polygon.d.mts +170 -75
  191. package/src/foundry/client/pixi/extensions/circle.d.mts +128 -125
  192. package/src/foundry/client/pixi/extensions/graphics.d.mts +3 -1
  193. package/src/foundry/client/pixi/extensions/observable-transform.d.mts +5 -4
  194. package/src/foundry/client/pixi/extensions/polygon.d.mts +154 -134
  195. package/src/foundry/client/pixi/extensions/rectangle.d.mts +242 -259
  196. package/src/foundry/client/pixi/groups/effects.d.mts +75 -24
  197. package/src/foundry/client/pixi/groups/environment.d.mts +68 -19
  198. package/src/foundry/client/pixi/groups/hidden.d.mts +27 -11
  199. package/src/foundry/client/pixi/groups/interface.d.mts +62 -38
  200. package/src/foundry/client/pixi/groups/overlay.d.mts +19 -7
  201. package/src/foundry/client/pixi/groups/primary.d.mts +66 -44
  202. package/src/foundry/client/pixi/groups/rendered.d.mts +19 -7
  203. package/src/foundry/client/pixi/layers/base/canvas-layer.d.mts +11 -15
  204. package/src/foundry/client/pixi/layers/base/interaction-layer.d.mts +29 -28
  205. package/src/foundry/client/pixi/layers/base/placeables-layer.d.mts +306 -272
  206. package/src/foundry/client/pixi/layers/controls/cursor.d.mts +18 -9
  207. package/src/foundry/client/pixi/layers/controls/door.d.mts +32 -11
  208. package/src/foundry/client/pixi/layers/controls/layer.d.mts +89 -77
  209. package/src/foundry/client/pixi/layers/controls/ruler.d.mts +121 -96
  210. package/src/foundry/client/pixi/layers/effects/background-effects.d.mts +9 -12
  211. package/src/foundry/client/pixi/layers/effects/coloration-effects.d.mts +9 -10
  212. package/src/foundry/client/pixi/layers/effects/darkness-effects.d.mts +8 -8
  213. package/src/foundry/client/pixi/layers/effects/illumination-effects.d.mts +22 -22
  214. package/src/foundry/client/pixi/layers/effects/visibility.d.mts +106 -86
  215. package/src/foundry/client/pixi/layers/effects/weather/particles/effect.d.mts +14 -5
  216. package/src/foundry/client/pixi/layers/effects/weather/particles/leaves.d.mts +31 -2
  217. package/src/foundry/client/pixi/layers/effects/weather-effects.d.mts +137 -65
  218. package/src/foundry/client/pixi/layers/grid/highlight.d.mts +14 -4
  219. package/src/foundry/client/pixi/layers/grid/layer.d.mts +92 -92
  220. package/src/foundry/client/pixi/layers/grid/mesh.d.mts +37 -16
  221. package/src/foundry/client/pixi/layers/masks/depth.d.mts +12 -7
  222. package/src/foundry/client/pixi/layers/masks/occlusion.d.mts +19 -12
  223. package/src/foundry/client/pixi/layers/masks/vision.d.mts +104 -18
  224. package/src/foundry/client/pixi/layers/placeables/drawings.d.mts +16 -15
  225. package/src/foundry/client/pixi/layers/placeables/index.d.mts +1 -0
  226. package/src/foundry/client/pixi/layers/placeables/lighting.d.mts +12 -14
  227. package/src/foundry/client/pixi/layers/placeables/notes.d.mts +49 -32
  228. package/src/foundry/client/pixi/layers/placeables/regions.d.mts +113 -0
  229. package/src/foundry/client/pixi/layers/placeables/sounds.d.mts +81 -67
  230. package/src/foundry/client/pixi/layers/placeables/templates.d.mts +11 -15
  231. package/src/foundry/client/pixi/layers/placeables/tiles.d.mts +30 -21
  232. package/src/foundry/client/pixi/layers/placeables/tokens.d.mts +66 -52
  233. package/src/foundry/client/pixi/layers/placeables/walls.d.mts +54 -57
  234. package/src/foundry/client/pixi/perception/clockwise-sweep.d.mts +62 -27
  235. package/src/foundry/client/pixi/perception/detection-mode.d.mts +121 -47
  236. package/src/foundry/client/pixi/perception/fog.d.mts +38 -15
  237. package/src/foundry/client/pixi/perception/perception-manager.d.mts +136 -136
  238. package/src/foundry/client/pixi/perception/vision-mode.d.mts +91 -64
  239. package/src/foundry/client/pixi/perception/weiler-atherton-clipping.d.mts +44 -16
  240. package/src/foundry/client/pixi/placeable.d.mts +239 -137
  241. package/src/foundry/client/pixi/placeables/drawing.d.mts +255 -133
  242. package/src/foundry/client/pixi/placeables/index.d.mts +1 -0
  243. package/src/foundry/client/pixi/placeables/light.d.mts +193 -64
  244. package/src/foundry/client/pixi/placeables/note.d.mts +145 -54
  245. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-canvas-object.d.mts +30 -8
  246. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-graphics.d.mts +41 -11
  247. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-occludable-object.d.mts +59 -18
  248. package/src/foundry/client/pixi/placeables/primary-canvas-objects/primary-sprite-mesh.d.mts +120 -37
  249. package/src/foundry/client/pixi/placeables/region.d.mts +280 -0
  250. package/src/foundry/client/pixi/placeables/sound.d.mts +205 -66
  251. package/src/foundry/client/pixi/placeables/template.d.mts +181 -100
  252. package/src/foundry/client/pixi/placeables/tile.d.mts +206 -140
  253. package/src/foundry/client/pixi/placeables/token.d.mts +916 -449
  254. package/src/foundry/client/pixi/placeables/wall.d.mts +249 -129
  255. package/src/foundry/client/pixi/webgl/extensions/batch-renderer.d.mts +72 -33
  256. package/src/foundry/client/pixi/webgl/extensions/batch-shader-generator.d.mts +10 -9
  257. package/src/foundry/client/pixi/webgl/helpers/{framebugger-snapshot.d.mts → framebuffer-snapshot.d.mts} +10 -9
  258. package/src/foundry/client/pixi/webgl/helpers/index.d.mts +1 -1
  259. package/src/foundry/client/pixi/webgl/helpers/smooth-noise.d.mts +38 -23
  260. package/src/foundry/client/pixi/webgl/helpers/texture-extractor.d.mts +82 -53
  261. package/src/foundry/client/pixi/webgl/shaders/base-shader-mixin.d.mts +12 -12
  262. package/src/foundry/client/pixi/webgl/shaders/base-shader.d.mts +45 -28
  263. package/src/foundry/client/pixi/webgl/shaders/filters/base-filter.d.mts +12 -11
  264. package/src/foundry/client/pixi/webgl/shaders/filters/base-mask-filter.d.mts +12 -10
  265. package/src/foundry/client/pixi/webgl/shaders/filters/blur.d.mts +22 -20
  266. package/src/foundry/client/pixi/webgl/shaders/filters/effects-masking.d.mts +36 -32
  267. package/src/foundry/client/pixi/webgl/shaders/filters/environment.d.mts +10 -9
  268. package/src/foundry/client/pixi/webgl/shaders/filters/glow-overlay.d.mts +12 -11
  269. package/src/foundry/client/pixi/webgl/shaders/filters/invisibility.d.mts +10 -9
  270. package/src/foundry/client/pixi/webgl/shaders/filters/outline-overlay.d.mts +12 -11
  271. package/src/foundry/client/pixi/webgl/shaders/filters/transition.d.mts +67 -60
  272. package/src/foundry/client/pixi/webgl/shaders/filters/visibility.d.mts +24 -17
  273. package/src/foundry/client/pixi/webgl/shaders/filters/vision-mask-filter.d.mts +13 -10
  274. package/src/foundry/client/pixi/webgl/shaders/filters/void.d.mts +10 -9
  275. package/src/foundry/client/pixi/webgl/shaders/filters/weather-occlusion-masks.d.mts +11 -10
  276. package/src/foundry/client/pixi/webgl/shaders/fragment-channel-mixin.d.mts +20 -14
  277. package/src/foundry/client/pixi/webgl/shaders/grid/grid.d.mts +12 -11
  278. package/src/foundry/client/pixi/webgl/shaders/lighting/background-lighting.d.mts +10 -9
  279. package/src/foundry/client/pixi/webgl/shaders/lighting/base-lighting.d.mts +33 -33
  280. package/src/foundry/client/pixi/webgl/shaders/lighting/coloration-lighting.d.mts +10 -9
  281. package/src/foundry/client/pixi/webgl/shaders/lighting/darkness-lighting.d.mts +10 -9
  282. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/bewitching-wave.d.mts +19 -17
  283. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/black-hole.d.mts +10 -9
  284. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/chroma.d.mts +10 -9
  285. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/emanation.d.mts +10 -9
  286. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/energy-field.d.mts +10 -9
  287. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fairy-light.d.mts +19 -17
  288. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/flame.d.mts +19 -17
  289. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/fog.d.mts +10 -9
  290. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/force-grid.d.mts +10 -8
  291. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/ghost-light.d.mts +19 -17
  292. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/hexa-dome.d.mts +10 -9
  293. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/light-dome.d.mts +10 -9
  294. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/magical-gloom.d.mts +10 -9
  295. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/pulse.d.mts +19 -17
  296. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/radial-rainbow.d.mts +10 -9
  297. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/revolving-light.d.mts +10 -9
  298. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/roiling-mass.d.mts +10 -9
  299. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/siren-light.d.mts +19 -17
  300. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/smoke-patch.d.mts +20 -17
  301. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/star-light.d.mts +10 -9
  302. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/sunburst.d.mts +19 -17
  303. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/swirling-rainbow.d.mts +10 -9
  304. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/torch.d.mts +19 -17
  305. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/vortex.d.mts +19 -17
  306. package/src/foundry/client/pixi/webgl/shaders/lighting/effects/wave.d.mts +19 -17
  307. package/src/foundry/client/pixi/webgl/shaders/lighting/illumination-lighting.d.mts +10 -9
  308. package/src/foundry/client/pixi/webgl/shaders/region/adjust-darkness-level.d.mts +71 -29
  309. package/src/foundry/client/pixi/webgl/shaders/region/base.d.mts +54 -10
  310. package/src/foundry/client/pixi/webgl/shaders/region/highlight.d.mts +69 -9
  311. package/src/foundry/client/pixi/webgl/shaders/samplers/base-sampler.d.mts +24 -25
  312. package/src/foundry/client/pixi/webgl/shaders/samplers/baseline-illumination.d.mts +10 -9
  313. package/src/foundry/client/pixi/webgl/shaders/samplers/color-adjustment.d.mts +38 -29
  314. package/src/foundry/client/pixi/webgl/shaders/samplers/depth.d.mts +21 -17
  315. package/src/foundry/client/pixi/webgl/shaders/samplers/fog-of-war.d.mts +10 -9
  316. package/src/foundry/client/pixi/webgl/shaders/samplers/occlusion.d.mts +20 -18
  317. package/src/foundry/client/pixi/webgl/shaders/samplers/primary.d.mts +11 -2
  318. package/src/foundry/client/pixi/webgl/shaders/samplers/token-ring.d.mts +28 -2
  319. package/src/foundry/client/pixi/webgl/shaders/vision/background-vision.d.mts +10 -9
  320. package/src/foundry/client/pixi/webgl/shaders/vision/base-vision.d.mts +11 -9
  321. package/src/foundry/client/pixi/webgl/shaders/vision/coloration-vision.d.mts +10 -9
  322. package/src/foundry/client/pixi/webgl/shaders/vision/effects/amplification.d.mts +10 -9
  323. package/src/foundry/client/pixi/webgl/shaders/vision/effects/wave.d.mts +19 -17
  324. package/src/foundry/client/pixi/webgl/shaders/vision/illumination-vision.d.mts +10 -9
  325. package/src/foundry/client/pixi/webgl/shaders/weather/base-weather.d.mts +40 -36
  326. package/src/foundry/client/pixi/webgl/shaders/weather/effect.d.mts +27 -33
  327. package/src/foundry/client/pixi/webgl/shaders/weather/fog.d.mts +17 -16
  328. package/src/foundry/client/pixi/webgl/shaders/weather/rain.d.mts +19 -18
  329. package/src/foundry/client/pixi/webgl/shaders/weather/snow.d.mts +15 -14
  330. package/src/foundry/client/pixi/workers/texture-worker.d.mts +33 -53
  331. package/src/foundry/client/tours/setup-tour.d.mts +15 -10
  332. package/src/foundry/client/ui/context.d.mts +48 -40
  333. package/src/foundry/client/ui/dialog.d.mts +137 -126
  334. package/src/foundry/client/ui/drag.d.mts +1 -1
  335. package/src/foundry/client/ui/dragdrop.d.mts +34 -28
  336. package/src/foundry/client/ui/editor.d.mts +29 -21
  337. package/src/foundry/client/ui/filepicker.d.mts +43 -38
  338. package/src/foundry/client/ui/filter.d.mts +62 -50
  339. package/src/foundry/client/ui/forms.d.mts +22 -22
  340. package/src/foundry/client/ui/notifications.d.mts +10 -3
  341. package/src/foundry/client/ui/prosemirror.d.mts +15 -7
  342. package/src/foundry/client/ui/secrets.d.mts +42 -27
  343. package/src/foundry/client/ui/tabs.d.mts +40 -33
  344. package/src/foundry/client-esm/applications/_module.d.mts +3 -3
  345. package/src/foundry/client-esm/applications/_types.d.mts +0 -2
  346. package/src/foundry/client-esm/applications/api/_module.d.mts +2 -2
  347. package/src/foundry/client-esm/applications/api/application.d.mts +28 -19
  348. package/src/foundry/client-esm/applications/api/dialog.d.mts +20 -22
  349. package/src/foundry/client-esm/applications/api/document-sheet.d.mts +26 -12
  350. package/src/foundry/client-esm/applications/api/handlebars-application.d.mts +142 -126
  351. package/src/foundry/client-esm/applications/apps/_module.d.mts +2 -2
  352. package/src/foundry/client-esm/applications/apps/compendium-art-config.d.mts +10 -10
  353. package/src/foundry/client-esm/applications/apps/permission-config.d.mts +3 -3
  354. package/src/foundry/client-esm/applications/dice/_module.d.mts +2 -2
  355. package/src/foundry/client-esm/applications/dice/roll-resolver.d.mts +14 -2
  356. package/src/foundry/client-esm/applications/elements/_module.d.mts +2 -2
  357. package/src/foundry/client-esm/applications/elements/document-tags.d.mts +2 -0
  358. package/src/foundry/client-esm/applications/elements/file-picker.d.mts +1 -1
  359. package/src/foundry/client-esm/applications/elements/multi-select.d.mts +15 -5
  360. package/src/foundry/client-esm/applications/elements/string-tags.d.mts +1 -1
  361. package/src/foundry/client-esm/applications/forms/fields.d.mts +1 -1
  362. package/src/foundry/client-esm/applications/sheets/_module.d.mts +2 -2
  363. package/src/foundry/client-esm/applications/sheets/actor-sheet.d.mts +3 -3
  364. package/src/foundry/client-esm/applications/sheets/ambient-light-config.d.mts +10 -8
  365. package/src/foundry/client-esm/applications/sheets/ambient-sound-config.d.mts +9 -7
  366. package/src/foundry/client-esm/applications/sheets/item-sheet.d.mts +3 -3
  367. package/src/foundry/client-esm/applications/sheets/region-behavior-config.d.mts +30 -5
  368. package/src/foundry/client-esm/applications/sheets/region-config.d.mts +36 -5
  369. package/src/foundry/client-esm/applications/sheets/user-config.d.mts +8 -7
  370. package/src/foundry/client-esm/applications/ui/_module.d.mts +2 -2
  371. package/src/foundry/client-esm/applications/ui/region-legend.d.mts +45 -3
  372. package/src/foundry/client-esm/audio/_module.d.mts +2 -3
  373. package/src/foundry/client-esm/audio/_types.d.mts +2 -0
  374. package/src/foundry/client-esm/audio/biquad.d.mts +76 -26
  375. package/src/foundry/client-esm/audio/cache.d.mts +31 -20
  376. package/src/foundry/client-esm/audio/convolver.d.mts +47 -25
  377. package/src/foundry/client-esm/audio/helper.d.mts +124 -80
  378. package/src/foundry/client-esm/audio/sound.d.mts +230 -126
  379. package/src/foundry/client-esm/audio/timeout.d.mts +28 -12
  380. package/src/foundry/client-esm/canvas/_module.d.mts +2 -2
  381. package/src/foundry/client-esm/canvas/edges/_module.d.mts +2 -2
  382. package/src/foundry/client-esm/canvas/edges/collision.d.mts +69 -18
  383. package/src/foundry/client-esm/canvas/edges/edge.d.mts +110 -41
  384. package/src/foundry/client-esm/canvas/edges/edges.d.mts +10 -0
  385. package/src/foundry/client-esm/canvas/edges/vertex.d.mts +56 -26
  386. package/src/foundry/client-esm/canvas/regions/_module.d.mts +6 -11
  387. package/src/foundry/client-esm/canvas/regions/geometry.d.mts +38 -0
  388. package/src/foundry/client-esm/canvas/regions/mesh.d.mts +72 -0
  389. package/src/foundry/client-esm/canvas/regions/polygon-tree.d.mts +130 -0
  390. package/src/foundry/client-esm/canvas/regions/shape.d.mts +129 -0
  391. package/src/foundry/client-esm/canvas/scene-manager.d.mts +13 -3
  392. package/src/foundry/client-esm/canvas/smaa/blend.d.mts +14 -3
  393. package/src/foundry/client-esm/canvas/smaa/edges.d.mts +25 -3
  394. package/src/foundry/client-esm/canvas/smaa/smaa.d.mts +121 -23
  395. package/src/foundry/client-esm/canvas/smaa/weights.d.mts +26 -3
  396. package/src/foundry/client-esm/canvas/sources/_module.d.mts +2 -2
  397. package/src/foundry/client-esm/canvas/sources/base-effect-source.d.mts +84 -40
  398. package/src/foundry/client-esm/canvas/sources/base-light-source.d.mts +103 -39
  399. package/src/foundry/client-esm/canvas/sources/global-light-source.d.mts +89 -15
  400. package/src/foundry/client-esm/canvas/sources/point-darkness-source.d.mts +71 -27
  401. package/src/foundry/client-esm/canvas/sources/point-effect-source.d.mts +49 -20
  402. package/src/foundry/client-esm/canvas/sources/point-light-source.d.mts +57 -16
  403. package/src/foundry/client-esm/canvas/sources/point-movement-source.d.mts +31 -4
  404. package/src/foundry/client-esm/canvas/sources/point-sound-source.d.mts +45 -12
  405. package/src/foundry/client-esm/canvas/sources/point-vision-source.d.mts +98 -52
  406. package/src/foundry/client-esm/canvas/sources/rendered-effect-source.d.mts +180 -69
  407. package/src/foundry/client-esm/canvas/tokens/_module.d.mts +2 -3
  408. package/src/foundry/client-esm/canvas/tokens/ring-config.d.mts +175 -2
  409. package/src/foundry/client-esm/canvas/tokens/ring-data.d.mts +142 -2
  410. package/src/foundry/client-esm/canvas/tokens/ring.d.mts +284 -2
  411. package/src/foundry/client-esm/client.d.mts +47 -54
  412. package/src/foundry/client-esm/data/_module.d.mts +2 -2
  413. package/src/foundry/client-esm/data/client-backend.d.mts +22 -23
  414. package/src/foundry/client-esm/data/region-behaviors/_module.d.mts +11 -14
  415. package/src/foundry/client-esm/data/region-behaviors/adjust-darkness-level.d.mts +56 -0
  416. package/src/foundry/client-esm/data/region-behaviors/base.d.mts +59 -0
  417. package/src/foundry/client-esm/data/region-behaviors/display-scrolling-text.d.mts +64 -0
  418. package/src/foundry/client-esm/data/region-behaviors/execute-macro.d.mts +27 -0
  419. package/src/foundry/client-esm/data/region-behaviors/execute-script.d.mts +23 -0
  420. package/src/foundry/client-esm/data/region-behaviors/pause-game.d.mts +23 -0
  421. package/src/foundry/client-esm/data/region-behaviors/suppress-weather.d.mts +17 -0
  422. package/src/foundry/client-esm/data/region-behaviors/teleport-token.d.mts +32 -0
  423. package/src/foundry/client-esm/data/region-behaviors/toggle-behavior.d.mts +31 -0
  424. package/src/foundry/client-esm/dice/_module.d.mts +2 -3
  425. package/src/foundry/client-esm/dice/parser.d.mts +11 -25
  426. package/src/foundry/client-esm/dice/roll.d.mts +112 -89
  427. package/src/foundry/client-esm/dice/terms/_module.d.mts +2 -3
  428. package/src/foundry/client-esm/dice/terms/coin.d.mts +8 -5
  429. package/src/foundry/client-esm/dice/terms/dice.d.mts +93 -63
  430. package/src/foundry/client-esm/dice/terms/die.d.mts +11 -4
  431. package/src/foundry/client-esm/dice/terms/fate.d.mts +9 -2
  432. package/src/foundry/client-esm/dice/terms/function.d.mts +18 -18
  433. package/src/foundry/client-esm/dice/terms/numeric.d.mts +3 -5
  434. package/src/foundry/client-esm/dice/terms/operator.d.mts +2 -2
  435. package/src/foundry/client-esm/dice/terms/parenthetical.d.mts +9 -10
  436. package/src/foundry/client-esm/dice/terms/pool.d.mts +25 -31
  437. package/src/foundry/client-esm/dice/terms/string.d.mts +4 -4
  438. package/src/foundry/client-esm/dice/terms/term.d.mts +18 -4
  439. package/src/foundry/client-esm/dice/twister.d.mts +3 -3
  440. package/src/foundry/client-esm/helpers/_module.d.mts +2 -2
  441. package/src/foundry/client-esm/helpers/_types.d.mts +12 -46
  442. package/src/foundry/client-esm/helpers/compendium-art.d.mts +56 -4
  443. package/src/foundry/common/abstract/_types.d.mts +60 -54
  444. package/src/foundry/common/abstract/backend.d.mts +51 -45
  445. package/src/foundry/common/abstract/data.d.mts +265 -236
  446. package/src/foundry/common/abstract/document.d.mts +1449 -464
  447. package/src/foundry/common/abstract/embedded-collection-delta.d.mts +1 -1
  448. package/src/foundry/common/abstract/embedded-collection.d.mts +37 -7
  449. package/src/foundry/common/abstract/module.d.mts +3 -2
  450. package/src/foundry/common/abstract/singleton-collection.d.mts +1 -1
  451. package/src/foundry/common/abstract/socket.d.mts +1 -1
  452. package/src/foundry/common/abstract/type-data.d.mts +61 -55
  453. package/src/foundry/common/config.d.mts +11 -3
  454. package/src/foundry/common/constants.d.mts +261 -231
  455. package/src/foundry/common/data/data.d.mts +238 -102
  456. package/src/foundry/common/data/fields.d.mts +1334 -874
  457. package/src/foundry/common/data/module.d.mts +2 -2
  458. package/src/foundry/common/data/validation-failure.d.mts +12 -9
  459. package/src/foundry/common/documents/_module.d.mts +4 -2
  460. package/src/foundry/common/documents/_types.d.mts +22 -56
  461. package/src/foundry/common/documents/active-effect.d.mts +358 -194
  462. package/src/foundry/common/documents/actor-delta.d.mts +403 -73
  463. package/src/foundry/common/documents/actor.d.mts +359 -117
  464. package/src/foundry/common/documents/adventure.d.mts +312 -142
  465. package/src/foundry/common/documents/ambient-light.d.mts +296 -75
  466. package/src/foundry/common/documents/ambient-sound.d.mts +296 -109
  467. package/src/foundry/common/documents/card.d.mts +321 -187
  468. package/src/foundry/common/documents/cards.d.mts +353 -125
  469. package/src/foundry/common/documents/chat-message.d.mts +338 -167
  470. package/src/foundry/common/documents/combat.d.mts +358 -94
  471. package/src/foundry/common/documents/combatant.d.mts +323 -92
  472. package/src/foundry/common/documents/drawing.d.mts +327 -206
  473. package/src/foundry/common/documents/fog-exploration.d.mts +303 -69
  474. package/src/foundry/common/documents/folder.d.mts +307 -82
  475. package/src/foundry/common/documents/item.d.mts +377 -100
  476. package/src/foundry/common/documents/journal-entry-page.d.mts +327 -187
  477. package/src/foundry/common/documents/journal-entry.d.mts +345 -68
  478. package/src/foundry/common/documents/macro.d.mts +325 -139
  479. package/src/foundry/common/documents/measured-template.d.mts +328 -138
  480. package/src/foundry/common/documents/note.d.mts +312 -151
  481. package/src/foundry/common/documents/playlist-sound.d.mts +309 -102
  482. package/src/foundry/common/documents/playlist.d.mts +341 -131
  483. package/src/foundry/common/documents/region-behavior.d.mts +360 -0
  484. package/src/foundry/common/documents/region.d.mts +355 -0
  485. package/src/foundry/common/documents/roll-table.d.mts +320 -102
  486. package/src/foundry/common/documents/scene.d.mts +437 -350
  487. package/src/foundry/common/documents/setting.d.mts +285 -54
  488. package/src/foundry/common/documents/table-result.d.mts +326 -103
  489. package/src/foundry/common/documents/tile.d.mts +337 -172
  490. package/src/foundry/common/documents/token.d.mts +396 -447
  491. package/src/foundry/common/documents/user.d.mts +296 -173
  492. package/src/foundry/common/documents/wall.d.mts +303 -156
  493. package/src/foundry/common/grid/_module.d.mts +3 -3
  494. package/src/foundry/common/grid/base.d.mts +66 -49
  495. package/src/foundry/common/grid/gridless.d.mts +2 -2
  496. package/src/foundry/common/grid/hexagonal.d.mts +35 -28
  497. package/src/foundry/common/grid/square.d.mts +3 -3
  498. package/src/foundry/common/packages/base-module.d.mts +6 -24
  499. package/src/foundry/common/packages/base-package.d.mts +56 -31
  500. package/src/foundry/common/packages/base-system.d.mts +45 -63
  501. package/src/foundry/common/packages/base-world.d.mts +15 -61
  502. package/src/foundry/common/packages/module.d.mts +7 -7
  503. package/src/foundry/common/packages/sub-types.d.mts +4 -6
  504. package/src/foundry/common/primitives/array.d.mts +4 -4
  505. package/src/foundry/common/primitives/math.d.mts +7 -1
  506. package/src/foundry/common/primitives/number.d.mts +2 -2
  507. package/src/foundry/common/primitives/set.d.mts +17 -14
  508. package/src/foundry/common/primitives/string.d.mts +1 -1
  509. package/src/foundry/common/prosemirror/_module.d.mts +15 -15
  510. package/src/foundry/common/prosemirror/dirty-plugin.d.mts +1 -1
  511. package/src/foundry/common/prosemirror/dom-parser.d.mts +2 -1
  512. package/src/foundry/common/prosemirror/dropdown.d.mts +1 -1
  513. package/src/foundry/common/prosemirror/highlight-matches-plugin.d.mts +2 -2
  514. package/src/foundry/common/prosemirror/image-plugin.d.mts +1 -1
  515. package/src/foundry/common/prosemirror/menu.d.mts +3 -3
  516. package/src/foundry/common/prosemirror/paste-transformer.d.mts +1 -1
  517. package/src/foundry/common/prosemirror/plugin.d.mts +2 -2
  518. package/src/foundry/common/prosemirror/schema/index.d.mts +0 -1
  519. package/src/foundry/common/prosemirror/schema/lists.d.mts +2 -0
  520. package/src/foundry/common/prosemirror/util.d.mts +1 -1
  521. package/src/foundry/common/types.d.mts +3 -3
  522. package/src/foundry/common/utils/bitmask.d.mts +23 -11
  523. package/src/foundry/common/utils/collection.d.mts +61 -38
  524. package/src/foundry/common/utils/color.d.mts +20 -2
  525. package/src/foundry/common/utils/event-emitter.d.mts +32 -17
  526. package/src/foundry/common/utils/helpers.d.mts +36 -26
  527. package/src/foundry/common/utils/http.d.mts +2 -2
  528. package/src/foundry/common/utils/module.d.mts +2 -2
  529. package/src/foundry/common/utils/string-tree.d.mts +45 -39
  530. package/src/foundry/common/utils/word-tree.d.mts +10 -23
  531. package/src/foundry/index.d.mts +0 -1
  532. package/src/foundry/{clipper → public/scripts/clipper}/clipper.d.mts +58 -16
  533. package/src/foundry/public/scripts/index.d.mts +1 -0
  534. package/src/foundry/public/scripts/workers/image-compressor.d.mts +23 -0
  535. package/src/foundry/public/scripts/workers/index.d.mts +1 -0
  536. package/{index-lenient.d.mts → src/index-lenient.d.mts} +2 -0
  537. package/src/index.d.mts +6 -0
  538. package/src/tsconfig.json +15 -0
  539. package/src/types/augments/particles.d.mts +29 -0
  540. package/src/types/augments/pixi.d.mts +1024 -21
  541. package/src/types/augments/smooth.d.mts +31 -0
  542. package/src/types/augments/tinyMCE.d.mts +1 -1
  543. package/src/types/config.d.mts +18 -313
  544. package/src/types/documentConfiguration.d.mts +286 -542
  545. package/src/types/index.d.mts +1 -1
  546. package/src/types/lib.d.mts +12 -0
  547. package/src/types/workers/image-compressor.d.mts +176 -0
  548. package/src/utils/index.d.mts +1279 -0
  549. package/tsconfig.json +29 -0
  550. package/tsconfig.main.json +8 -0
  551. package/tsconfig.miscellaneous.json +16 -0
  552. package/index.d.mts +0 -5
  553. package/src/foundry/client/apps/placeables/light-config.d.mts +0 -100
  554. package/src/foundry/client/apps/placeables/sound-config.d.mts +0 -43
  555. package/src/foundry/common/documents/module.d.mts +0 -35
  556. package/src/foundry/common/primitives/regex.d.mts +0 -12
  557. package/src/types/helperTypes.d.mts +0 -583
  558. package/src/types/utils.d.mts +0 -539
  559. /package/src/foundry/{clipper → public/scripts/clipper}/index.d.mts +0 -0
@@ -1,47 +1,17 @@
1
- import type { AnyObject, EmptyObject } from "../../../types/utils.d.mts";
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
- declare global {
7
- type DataSchema = Record<string, DataField.Any>;
6
+ type DataSchema = fields.DataSchema;
8
7
 
9
- interface DataValidationOptions {
10
- /**
11
- * Throw an error if validation fails.
12
- * @defaultValue `true`
13
- */
14
- strict?: boolean | undefined;
15
-
16
- /**
17
- * Attempt to replace invalid values with valid defaults?
18
- * @defaultValue `false`
19
- */
20
- fallback?: boolean | undefined;
21
-
22
- /**
23
- * Allow partial source data, ignoring absent fields?
24
- * @defaultValue `false`
25
- */
26
- partial?: boolean | undefined;
27
-
28
- /**
29
- * If true, invalid embedded documents will emit a warning and be
30
- * placed in the invalidDocuments collection rather than causing the
31
- * parent to be considered invalid.
32
- * @defaultValue `false`
33
- */
34
- dropInvalidEmbedded?: boolean | undefined;
35
- }
36
- }
37
-
38
- declare const DynamicClass: new <_Computed extends object>(arg0: never, ...args: never[]) => _Computed;
8
+ declare const DynamicClass: new <_Computed extends object>(...args: never) => _Computed;
39
9
 
40
10
  // @ts-expect-error - This is a workaround to allow for dynamic top level properties in a class.
41
11
  declare class _InternalDataModel<
42
12
  out Schema extends DataSchema,
43
13
  // Do not inline. Being a type parameter is an important part of the circumvention of TypeScript's detection of dynamic classes.
44
- out _Computed extends object = SchemaField.InnerInitializedType<Schema>,
14
+ out _Computed extends object = SchemaField.InitializedData<Schema>,
45
15
  > extends DynamicClass<_Computed> {}
46
16
 
47
17
  export default DataModel;
@@ -60,22 +30,28 @@ declare abstract class DataModel<
60
30
  * will be owned by the constructed model instance and may be mutated.
61
31
  * @param options - Options which affect DataModel construction
62
32
  */
63
- // TODO(LukeAbby): Make only optional if `{}` is assignable to `InnerAssignmentType`.
64
- constructor(
65
- data?: DataModel.ConstructorData<Schema>,
66
- { parent, strict, ...options }?: DataModel.DataValidationOptions<Parent> & ExtraConstructorOptions,
67
- );
33
+ constructor(...args: DataModel.ConstructorArgs<Schema, Parent, ExtraConstructorOptions>);
34
+
35
+ /** @internal */
36
+ " __fvtt_types_internal_source_data": SchemaField.SourceData<Schema>;
37
+
38
+ /** @internal */
39
+ " __fvtt_types_internal_assignment_data": SchemaField.AssignmentData<Schema>;
40
+
41
+ /** @internal */
42
+ " __fvtt_types_internal_initialized_data": SchemaField.InitializedData<Schema>;
68
43
 
69
44
  /**
70
45
  * Configure the data model instance before validation and initialization workflows are performed.
71
46
  */
72
- protected _configure(options?: ExtraConstructorOptions): void;
47
+ // options: not null (parameter default only, destructured in Document)
48
+ protected _configure(options?: DataModel.ConfigureOptions & ExtraConstructorOptions): void;
73
49
 
74
50
  /**
75
51
  * The source data object for this DataModel instance.
76
52
  * Once constructed, the source object is sealed such that no keys may be added nor removed.
77
53
  */
78
- readonly _source: Readonly<fields.SchemaField.InnerPersistedType<Schema>>;
54
+ readonly _source: Readonly<fields.SchemaField.SourceData<Schema>>;
79
55
 
80
56
  /**
81
57
  * The defined and cached Data Schema for all instances of this DataModel.
@@ -131,11 +107,13 @@ declare abstract class DataModel<
131
107
  * @param options - Options provided to the model constructor
132
108
  * (unused)
133
109
  * @returns Migrated and cleaned source data which will be stored to the model instance
110
+ * @remarks `options` is unused in `DataModel`
134
111
  */
112
+ // options: not null (parameter default only)
135
113
  protected _initializeSource(
136
- data: fields.SchemaField.InnerConstructorType<Schema> | this,
137
- options?: Omit<DataModel.DataValidationOptions, "parent">,
138
- ): fields.SchemaField.InnerPersistedType<Schema>;
114
+ data: fields.SchemaField.CreateData<Schema> | this,
115
+ options?: DataModel.InitializeSourceOptions & ExtraConstructorOptions,
116
+ ): fields.SchemaField.SourceData<Schema>;
139
117
 
140
118
  /**
141
119
  * Clean a data source object to conform to a specific provided schema.
@@ -143,7 +121,7 @@ declare abstract class DataModel<
143
121
  * @param options - Additional options which are passed to field cleaning methods
144
122
  * @returns The cleaned source data
145
123
  */
146
- static cleanData(source?: object, options?: Parameters<SchemaField.Any["clean"]>[1]): object;
124
+ static cleanData(source?: AnyMutableObject, options?: DataField.CleanOptions): AnyMutableObject;
147
125
 
148
126
  /**
149
127
  * A generator that orders the DataFields in the DataSchema into an expected initialization order.
@@ -154,9 +132,10 @@ declare abstract class DataModel<
154
132
  * Initialize the instance by copying data from the source object to instance attributes.
155
133
  * This mirrors the workflow of SchemaField#initialize but with some added functionality.
156
134
  * @param options - Options provided to the model constructor
157
- * (unused)
135
+ * @remarks `options` gets passed on to each field in the schema's `#initialize`
158
136
  */
159
- protected _initialize(options?: any): void;
137
+ // options: not null (parameter default only)
138
+ protected _initialize(options?: DataModel.InitializeOptions & ExtraConstructorOptions): void;
160
139
 
161
140
  /**
162
141
  * Reset the state of this data instance back to mirror the contained source data, erasing any changes.
@@ -167,12 +146,22 @@ declare abstract class DataModel<
167
146
  * Clone a model, creating a new data model by combining current data with provided overrides.
168
147
  * @param data - Additional data which overrides current document data at the time of creation
169
148
  * @param context - Context options passed to the data model constructor
170
- * @returns The cloned Document instance
171
- */
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.
159
+ */
160
+ // null would be fine for either/both params here, but it breaks Document, and its never *expected*, just incidentally doesn't break
172
161
  clone(
173
- data?: fields.SchemaField.InnerAssignmentType<Schema>,
174
- context?: DataModel.ConstructorOptions<Parent>,
175
- ): this | Promise<this>;
162
+ data?: fields.SchemaField.AssignmentData<Schema>,
163
+ context?: DataModel.CloneContext & ExtraConstructorOptions,
164
+ ): this;
176
165
 
177
166
  /**
178
167
  * Validate the data contained in the document to check for type and content
@@ -181,60 +170,8 @@ declare abstract class DataModel<
181
170
  * @param options - Optional parameters which customize how validation occurs.
182
171
  * @returns An indicator for whether the document contains valid data
183
172
  */
184
- validate({
185
- changes,
186
- clean,
187
- fallback,
188
- strict,
189
- fields,
190
- joint,
191
- }?: {
192
- /**
193
- * A specific set of proposed changes to validate, rather than the full source data of the model.
194
- */
195
- changes?: fields.SchemaField.InnerAssignmentType<Schema>;
196
-
197
- /**
198
- * If changes are provided, attempt to clean the changes before validating them?
199
- * @defaultValue `false`
200
- */
201
- clean?: boolean;
202
-
203
- /**
204
- * Allow replacement of invalid values with valid defaults?
205
- * @defaultValue `false`
206
- */
207
- fallback?: boolean;
208
-
209
- /**
210
- * If true, invalid embedded documents will emit a warning and
211
- * be placed in the invalidDocuments collection rather than
212
- * causing the parent to be considered invalid.
213
- * @defaultValue `false`
214
- */
215
- dropInvalidEmbedded: boolean;
216
-
217
- /**
218
- * Throw if an invalid value is encountered, otherwise log a warning?
219
- * @defaultValue `true`
220
- */
221
- strict?: boolean;
222
-
223
- /**
224
- * Perform validation on individual fields?
225
- * @defaultValue `true`
226
- */
227
- fields?: boolean;
228
-
229
- /**
230
- * Perform joint validation on the full data model?
231
- * Joint validation will be performed by default if no changes are passed.
232
- * Joint validation will be disabled by default if changes are passed.
233
- * Joint validation can be performed on a complete set of changes (for
234
- * example testing a complete data model) by explicitly passing true.
235
- */
236
- joint?: boolean;
237
- }): boolean;
173
+ // options: not null (destructured)
174
+ validate(options?: DataModel.ValidateOptions<Schema>): boolean;
238
175
 
239
176
  /**
240
177
  * Evaluate joint validation rules which apply validation conditions across multiple fields of the model.
@@ -242,15 +179,12 @@ declare abstract class DataModel<
242
179
  * This method allows for testing aggregate rules which impose requirements on the overall model.
243
180
  * @param data - Candidate data for the model
244
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.
245
185
  */
246
- // TODO(LukeAbby): Should be SourceType
247
- static validateJoint(data: Record<string, unknown>): void;
248
-
249
- /**
250
- * @deprecated since v11; Use the validateJoint static method instead.
251
- */
252
- // TODO(LukeAbby): Should be SourceType
253
- protected _validateModel(data: fields.SchemaField.InnerAssignmentType<Schema>): void;
186
+ // TODO(esheyw): dep warning is gone in v13, clean up remarks
187
+ static validateJoint(data: never): void;
254
188
 
255
189
  /**
256
190
  * Update the DataModel locally by applying an object of changes to its source data.
@@ -262,103 +196,85 @@ declare abstract class DataModel<
262
196
  * @param options - Options which determine how the new data is merged
263
197
  * @returns An object containing the changed keys and values
264
198
  */
265
- // TODO(LukeAbby): Should be SourceType
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)
266
202
  updateSource(
267
- changes?: fields.SchemaField.InnerAssignmentType<Schema>,
268
- options?: { dryRun?: boolean; fallback?: boolean; recursive?: boolean },
269
- ): object;
270
-
271
- /**
272
- * Update the source data for a specific DataSchema.
273
- * This method assumes that both source and changes are valid objects.
274
- * @param schema - The data schema to update
275
- * @param source - Source data to be updated
276
- * @param changes - Changes to apply to the source data
277
- * @param options - Options which modify the update workflow
278
- * @returns The updated source data
279
- * @throws An error if the update operation was unsuccessful
280
- */
281
- static #updateData(
282
- schema: SchemaField.Any,
283
- source: object,
284
- changes: object,
285
- options: DataModel.UpdateOptions,
286
- ): object;
287
-
288
- /**
289
- * Update the source data for a specific DataField.
290
- * @param name - The field name being updated
291
- * @param field - The field definition being updated
292
- * @param source - The source object being updated
293
- * @param value - The new value for the field
294
- * @param options - Options which modify the update workflow
295
- * @throws An error if the new candidate value is invalid
296
- */
297
- static #updateField(
298
- name: string,
299
- field: DataField.Any,
300
- source: object,
301
- value: any,
302
- options: DataModel.UpdateOptions,
303
- ): object;
203
+ changes?: fields.SchemaField.UpdateData<Schema>,
204
+ options?: DataModel.UpdateOptions,
205
+ ): fields.SchemaField.UpdateData<Schema>;
304
206
 
305
207
  /**
306
208
  * Copy and transform the DataModel into a plain object.
307
209
  * Draw the values of the extracted object from the data source (by default) otherwise from its transformed values.
308
- * @param source - Draw values from the underlying data source rather than transformed values
309
- * (default: `true`)
210
+ * @param source - Draw values from the underlying data source rather than transformed values (default: `true`)
310
211
  * @returns The extracted primitive object
311
212
  */
312
- toObject(source: true): fields.SchemaField.InnerPersistedType<Schema>;
313
- toObject(source?: boolean): ReturnType<this["schema"]["toObject"]>;
213
+ toObject(source?: boolean | null): SchemaField.SourceData<Schema>;
314
214
 
315
215
  /**
316
216
  * Extract the source data for the DataModel into a simple object format that can be serialized.
317
217
  * @returns The document source data expressed as a plain object
318
218
  */
319
- toJSON(): fields.SchemaField.InnerPersistedType<Schema>;
219
+ toJSON(): SchemaField.SourceData<Schema>;
320
220
 
321
221
  /**
322
222
  * Create a new instance of this DataModel from a source record.
323
223
  * The source is presumed to be trustworthy and is not strictly validated.
324
224
  * @param source - Initial document data which comes from a trusted source.
325
225
  * @param context - Model construction context
326
- * @remarks The generic parameters should fit the DataModel implementation that this method is called on.
327
- */
328
- static fromSource<Schema extends DataSchema>(
329
- source: fields.SchemaField.InnerAssignmentType<Schema>,
330
- {
331
- strict,
332
- ...context
333
- }?: DataModel.ConstructorOptions & {
334
- /**
335
- * Models created from trusted source data are validated non-strictly
336
- * @defaultValue `false`
337
- */
338
- strict?: boolean;
339
- },
340
- ): DataModel<Schema, DataModel.Any | null>;
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
+ * ```
246
+ */
247
+ // context: not null (destructured)
248
+ static fromSource(source: never, context?: DataModel.FromSourceOptions): DataModel.Any;
341
249
 
342
250
  /**
343
251
  * Create a DataModel instance using a provided serialized JSON string.
344
252
  * @param json - Serialized document data in string format
345
253
  * @returns A constructed data model instance
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
+ * ```
346
262
  */
347
- static fromJSON(json: string): ReturnType<(typeof DataModel)["fromSource"]>;
263
+ static fromJSON(json: string): DataModel.Any;
348
264
 
349
265
  /**
350
266
  * Migrate candidate source data for this DataModel which may require initial cleaning or transformations.
351
267
  * @param source - The candidate source data from which the model will be constructed
352
268
  * @returns Migrated source data, if necessary
353
269
  */
354
- static migrateData(source: AnyObject): AnyObject;
270
+ static migrateData(source: AnyMutableObject): AnyMutableObject;
355
271
 
356
272
  /**
357
273
  * Wrap data migration in a try/catch which attempts it safely
358
274
  * @param source - The candidate source data from which the model will be constructed
359
275
  * @returns Migrated source data, if necessary
360
276
  */
361
- static migrateDataSafe(source: AnyObject): AnyObject;
277
+ static migrateDataSafe(source: AnyMutableObject): AnyMutableObject;
362
278
 
363
279
  /**
364
280
  * Take data which conforms to the current data schema and add backwards-compatible accessors to it in order to
@@ -367,102 +283,215 @@ declare abstract class DataModel<
367
283
  * @param options - Additional shimming options
368
284
  * @returns Data with added backwards-compatible properties
369
285
  */
370
- static shimData(
371
- data: object,
372
- options?: {
373
- /**
374
- * Apply shims to embedded models?
375
- * @defaultValue `true`
376
- */
377
- embedded?: boolean;
378
- },
379
- ): object;
286
+ // options: not null (destructured)
287
+ static shimData(data: AnyMutableObject, options?: DataModel.ShimDataOptions): AnyMutableObject;
380
288
  }
381
289
 
382
290
  declare namespace DataModel {
383
- type ConstructorData<Schema extends DataSchema> =
384
- | fields.SchemaField.InnerAssignmentType<Schema>
385
- | DataModel<Schema, any>;
291
+ interface Any extends AnyDataModel {}
292
+ interface AnyConstructor extends Identity<typeof AnyDataModel> {}
293
+
294
+ type CreateData<Schema extends DataSchema> = fields.SchemaField.AssignmentData<Schema> | DataModel<Schema, any>;
295
+
296
+ type ConstructorDataFor<ConcreteDataModel extends DataModel.Any> = CreateData<SchemaOf<ConcreteDataModel>>;
386
297
 
387
- type ConstructorDataFor<ConcreteDataModel extends DataModel.Any> = ConstructorData<SchemaOf<ConcreteDataModel>>;
298
+ // TODO(LukeAbby): Make optional only if `{}` is assignable to `AssignmentData`.
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)
306
+ data?: DataModel.CreateData<Schema>,
307
+
308
+ // Note(LukeAbby): `{ parent, strict, ...options }`
309
+ // not null (destructured)
310
+ options?: DataModel.ConstructionContext<Parent> & ExtraConstructorOptions,
311
+ ];
388
312
 
389
313
  /**
390
- * @deprecated {@link DataModel.DataValidationOptions | `DataModel.DataValidationOptions`}
314
+ * With the existence of custom module subtypes a system can no longer rely on their configured types being the only ones.
315
+ *
316
+ * `UnknownDataModel` covers the case where it's configured with a {@link DataModel | `DataModel`}.
317
+ * Using a {@link TypeDataModel | `TypeDataModel`} is recommended by Foundry but a {@link DataModel | `DataModel`} is
318
+ * always possible.
319
+ * See {@link UnknownSystem | `UnknownSystem`} for other possibilities.
391
320
  */
392
- type ConstructorOptions<Parent extends Any | null = null> = DataValidationOptions<Parent>;
321
+ interface UnknownDataModel extends DataModel<any, any, any> {}
393
322
 
394
- interface DataValidationOptions<Parent extends Any | null = null> {
323
+ /**
324
+ * A helper type to extract the schema from a {@link DataModel | `DataModel`}.
325
+ * @typeParam ModelType - the DataModel for the embedded data
326
+ */
327
+ type SchemaOf<ModelType extends DataModel.Any> = ModelType["schema"]["fields"];
328
+
329
+ // Note(LukeAbby): This avoids writing `SchemaOf<InstanceType<ConcreteClass>>` to be robust to an issue with this snippet:
330
+ // ```ts
331
+ // EmbeddedDataField<typeof DataModel<{}>> extends SchemaField<infer SubSchema> ? SubSchema : never
332
+ // ```
333
+ type SchemaOfClass<ConcreteClass extends DataModel.AnyConstructor> = ConcreteClass extends abstract new (
334
+ ...args: infer _1
335
+ ) => { schema: { fields: infer Fields extends DataSchema } }
336
+ ? Fields
337
+ : never;
338
+
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 {
395
343
  /**
396
- * Throw an error if validation fails.
397
- * @defaultValue `true`
344
+ * A parent DataModel instance to which this DataModel belongs
345
+ * @defaultValue `null`
398
346
  */
399
- strict?: boolean | null | undefined;
347
+ parent?: Parent | undefined;
348
+ }
400
349
 
350
+ interface CloneContext extends _ConstructionContext {
401
351
  /**
402
- * Attempt to replace invalid values with valid defaults?
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.
403
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.
360
+ */
361
+ parent?: Any | null | undefined;
362
+ }
363
+
364
+ /**
365
+ * @internal
366
+ * Updated to 13.339 wording, still accurate for v12
367
+ */
368
+ type _ValidateOptions<Schema extends DataSchema> = NullishProps<{
369
+ /**
370
+ * Validate each individual field?
371
+ * @defaultValue `true`
372
+ */
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;
383
+
384
+ /**
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
387
+ */
388
+ changes: fields.SchemaField.AssignmentData<Schema>;
389
+
390
+ /**
391
+ * If changes are provided, attempt to clean the changes before validating them?
404
392
  * @defaultValue `false`
393
+ * @remarks Only has any effect if a `changes` has been passed with it
405
394
  */
406
- fallback?: boolean | null | undefined;
395
+ clean: boolean;
407
396
 
408
397
  /**
409
- * Allow partial source data, ignoring absent fields?
410
- *
398
+ * Throw an error if validation fails.
399
+ * @defaultValue `true`
400
+ */
401
+ strict: boolean;
402
+
403
+ /**
404
+ * Allow replacement of invalid values with valid defaults? This option mutates the provided changes.
411
405
  * @defaultValue `false`
406
+ * @see {@link DataField.ValidateOptions.fallback | `DataField.DataValidationOptions.fallback`}
412
407
  */
413
- partial?: boolean | null | undefined;
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.
414
414
 
415
415
  /**
416
- * If true, invalid embedded documents will emit a warning and be
417
- * placed in the invalidDocuments collection rather than causing the
418
- * parent to be considered invalid.
419
- *
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.
420
418
  * @defaultValue `false`
419
+ * @see {@link DataField.ValidateOptions.dropInvalidEmbedded | `DataField.DataValidationOptions.dropInvalidEmbedded`}
421
420
  */
422
- dropInvalidEmbedded?: boolean | null | undefined;
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;
423
444
 
424
445
  /**
425
- * A parent DataModel instance to which this DataModel belongs
426
- * @defaultValue `null`
446
+ * Allow automatic fallback to a valid initial value if the value provided for a field
447
+ * in the model is invalid.
427
448
  */
428
- parent?: Parent | null | undefined;
429
- }
449
+ fallback: boolean;
450
+
451
+ /** Apply changes to inner objects recursively rather than replacing the top-level object */
452
+ recursive: boolean;
430
453
 
431
- type Any = DataModel<DataSchema, DataModel.Any | null, AnyObject>;
454
+ /** An advanced option used specifically and internally by the ActorDelta model */
455
+ restoreDelta: boolean;
456
+ }>;
432
457
 
433
- type AnyConstructor = typeof AnyDataModel;
458
+ interface UpdateOptions extends _UpdateOptions {}
434
459
 
435
460
  /**
436
- * A helper type to extract the {@link SchemaOf} from a {@link DataModel}.
437
- * @typeParam ModelType - the DataModel for the embedded data
461
+ * @internal
462
+ * Only necessary to change the default value of `strict`
438
463
  */
439
- type SchemaOf<ModelType extends DataModel.Any> = ModelType["schema"]["fields"];
464
+ type _FromSourceOptions = NullishProps<{
465
+ /**
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
470
+ */
471
+ strict: boolean;
472
+ }>;
440
473
 
441
- // Note(LukeAbby): This avoids writing `SchemaOf<InstanceType<ConcreteClass>>` to be robust to an issue with this snippet:
442
- // ```ts
443
- // EmbeddedDataField<typeof DataModel<{}>> extends SchemaField<infer SubSchema> ? SubSchema : never
444
- // ```
445
- type SchemaOfClass<ConcreteClass extends DataModel.AnyConstructor> = ConcreteClass extends abstract new (
446
- arg0: never,
447
- ...args: never[]
448
- ) => { schema: { fields: infer Fields extends DataSchema } }
449
- ? Fields
450
- : never;
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 {}
451
479
 
452
- interface UpdateOptions {
453
- dryRun?: boolean;
454
- fallback?: boolean;
455
- recursive?: boolean;
456
- restoreDelta?: boolean;
457
- _collections: Record<string, unknown>;
458
- _singletons: Record<string, unknown>;
459
- _diff: Record<string, unknown>;
460
- _backup: Record<string, unknown>;
461
- }
480
+ /** @internal */
481
+ type _ShimDataOptions = NullishProps<{
482
+ /**
483
+ * Apply shims to embedded models?
484
+ * @defaultValue `true`
485
+ */
486
+ embedded: boolean;
487
+ }>;
488
+
489
+ interface ShimDataOptions extends _ShimDataOptions {}
462
490
  }
463
491
 
464
- declare abstract class AnyDataModel extends DataModel<DataSchema, DataModel.Any | null, AnyObject> {
465
- constructor(arg0: never, ...args: never[]);
492
+ // This uses `any` because `Schema` and `Parent` are invariant
493
+ declare abstract class AnyDataModel extends DataModel<DataSchema, any, AnyObject> {
494
+ constructor(...args: never);
466
495
  }
467
496
 
468
497
  // Matches foundry exporting class as both default and non-default