{"_id":"@anandamideio/foundry-types","_rev":"5-a1c81f4dfde6623a5c5a8297270c07cc","name":"@anandamideio/foundry-types","dist-tags":{"latest":"13.350.4"},"versions":{"13.350.0":{"name":"@anandamideio/foundry-types","version":"13.350.0","keywords":["foundry","vtt","types","typescript"],"license":"SEE LICENSE IN license.html","_id":"@anandamideio/foundry-types@13.350.0","maintainers":[{"name":"abaccus","email":"abourassa@assetval.com"}],"dist":{"shasum":"fe1eed234a50bf359ca3af7b4a94145f8dedbc55","tarball":"https://registry.npmjs.org/@anandamideio/foundry-types/-/foundry-types-13.350.0.tgz","fileCount":657,"integrity":"sha512-/ySjp2iyTmQq+ubf4BgTB1viXoLhiDabt7fVteKcQtlOUoIK0PIGDDeMQ8b66nYuLoSdJYVtmUMnRjdM05Sb7w==","signatures":[{"sig":"MEQCIFvKZ7ueMneDD4Yfu++Hiod1H+4lZ77wi2HetXjV008CAiAnbRnUFRJJOAvHaid8nPs1NoOpITG18ykvhJD476phAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2712914},"types":"index.d.ts","exports":{".":{"types":"./index.d.ts"},"./client":{"types":"./_dts/client/_module.d.mts"},"./common":{"types":"./_dts/common/_types.d.mts"}},"gitHead":"c46cb4c5ac1758c4e580188bfa70702beb8bfc49","_npmUser":{"name":"abaccus","email":"abourassa@assetval.com"},"_npmVersion":"11.6.0","description":"TypeScript definitions for Foundry Virtual Tabletop","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/foundry-types_13.350.0_1761683672219_0.7138393825271057","host":"s3://npm-registry-packages-npm-production"}},"13.350.1":{"name":"@anandamideio/foundry-types","version":"13.350.1","keywords":["foundry","vtt","types","typescript"],"license":"SEE LICENSE IN license.html","_id":"@anandamideio/foundry-types@13.350.1","maintainers":[{"name":"abaccus","email":"abourassa@assetval.com"}],"dist":{"shasum":"02329a162149bffc21892eaf99bbe3da3b008d30","tarball":"https://registry.npmjs.org/@anandamideio/foundry-types/-/foundry-types-13.350.1.tgz","fileCount":657,"integrity":"sha512-p7pa+IXFloXjra48YlC4NlZaR6clkkjfA+LN97daRIg9gBKfeU/n2irFUiUgjVrsU0Oy3jfhamm9SJzLvNcdEQ==","signatures":[{"sig":"MEUCIQD3rBo3Dme1fL53UzVfYuQmdL+D24c9aUFrqILsBFivLQIgNiIxcjjIKywjwrVqGOOfKO7N2sUio1xSQ1vaVfNAFDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2718245},"_from":"file:anandamideio-foundry-types-13.350.1.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts"},"./client":{"types":"./_dts/client/_module.d.mts"},"./common":{"types":"./_dts/common/_types.d.mts"}},"_npmUser":{"name":"abaccus","email":"abourassa@assetval.com"},"_resolved":"/tmp/3eaca6dcd19dca8c88a4271946e751f2/anandamideio-foundry-types-13.350.1.tgz","_integrity":"sha512-p7pa+IXFloXjra48YlC4NlZaR6clkkjfA+LN97daRIg9gBKfeU/n2irFUiUgjVrsU0Oy3jfhamm9SJzLvNcdEQ==","_npmVersion":"11.6.0","description":"TypeScript definitions for Foundry Virtual Tabletop","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/foundry-types_13.350.1_1761684423207_0.8422858951492687","host":"s3://npm-registry-packages-npm-production"}},"13.350.2":{"name":"@anandamideio/foundry-types","version":"13.350.2","keywords":["foundry","vtt","types","typescript"],"license":"SEE LICENSE IN license.html","_id":"@anandamideio/foundry-types@13.350.2","maintainers":[{"name":"abaccus","email":"abourassa@assetval.com"}],"dist":{"shasum":"7f2ce585cd1e1fc3ea1ddb667f5a2d45648cee4f","tarball":"https://registry.npmjs.org/@anandamideio/foundry-types/-/foundry-types-13.350.2.tgz","fileCount":657,"integrity":"sha512-pVrNZfajWu0nZAaWzCa4LCuy2rYJ6CJ3uF+khYI6M50XoxrxT22h8mDeE0DlEN7CzPz6BRQq+JYmb+R34vxWNA==","signatures":[{"sig":"MEYCIQDV4o5OpSeBO7mPrG4xxNf0OE7ToWbhgRHOxg90bqUpzwIhAKtWjZM1ai6cTbXWSNK/RUHf9tKHlWwwtKX/tR3vaRAF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2718305},"_from":"file:anandamideio-foundry-types-13.350.2.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts"},"./client":{"types":"./_dts/client/_module.d.mts"},"./common":{"types":"./_dts/common/_types.d.mts"}},"_npmUser":{"name":"abaccus","email":"abourassa@assetval.com"},"_resolved":"/tmp/29d2d9022630b673cc6e24de0bfec82a/anandamideio-foundry-types-13.350.2.tgz","_integrity":"sha512-pVrNZfajWu0nZAaWzCa4LCuy2rYJ6CJ3uF+khYI6M50XoxrxT22h8mDeE0DlEN7CzPz6BRQq+JYmb+R34vxWNA==","_npmVersion":"11.6.0","description":"TypeScript definitions for Foundry Virtual Tabletop","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/foundry-types_13.350.2_1761685057043_0.6205284416114236","host":"s3://npm-registry-packages-npm-production"}},"13.350.3":{"name":"@anandamideio/foundry-types","version":"13.350.3","keywords":["foundry","vtt","types","typescript"],"license":"SEE LICENSE IN license.html","_id":"@anandamideio/foundry-types@13.350.3","maintainers":[{"name":"abaccus","email":"abourassa@assetval.com"}],"dist":{"shasum":"7a3221dc002dfb2b09407d40dc22ad4a8b3a696f","tarball":"https://registry.npmjs.org/@anandamideio/foundry-types/-/foundry-types-13.350.3.tgz","fileCount":657,"integrity":"sha512-rEP+bcxQ22InDJGvYIS7xjrl6wl/XOkE2gOyI8cpuXsQtRCIzlNsTRA4RwAL+T+GdRI8a2zhjudZSJFwFQa5yw==","signatures":[{"sig":"MEUCIAp0AL60DwatWpk9wkD+jQwBMS6ezCeX1Lo8bVsRbJnaAiEA9ilF5yZvRFHcSkBHAtUeykZ2w0IXtvhfghSLWrsuZWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2719780},"_from":"file:anandamideio-foundry-types-13.350.3.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts"},"./client":{"types":"./_dts/client/_module.d.mts"},"./common":{"types":"./_dts/common/_types.d.mts"}},"_npmUser":{"name":"abaccus","email":"abourassa@assetval.com"},"_resolved":"/tmp/b9035c7522e435a47cad646573825fdb/anandamideio-foundry-types-13.350.3.tgz","_integrity":"sha512-rEP+bcxQ22InDJGvYIS7xjrl6wl/XOkE2gOyI8cpuXsQtRCIzlNsTRA4RwAL+T+GdRI8a2zhjudZSJFwFQa5yw==","_npmVersion":"11.6.0","description":"TypeScript definitions for Foundry Virtual Tabletop","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/foundry-types_13.350.3_1761685341319_0.6277602206534787","host":"s3://npm-registry-packages-npm-production"}},"13.350.4":{"name":"@anandamideio/foundry-types","version":"13.350.4","description":"TypeScript definitions for Foundry Virtual Tabletop","types":"index.d.ts","exports":{".":{"types":"./index.d.ts"},"./client":{"types":"./_dts/client/_module.d.mts"},"./common":{"types":"./_dts/common/_types.d.mts"}},"keywords":["foundry","vtt","types","typescript"],"license":"SEE LICENSE IN license.html","_id":"@anandamideio/foundry-types@13.350.4","_integrity":"sha512-pDGjW0poxdwZiSfXz0Deip7bjJHrahNO9aO6WTvDzgZ3BoDKwKq2Q/jrnQM9wlfjRGgR1xqBy3OHRFdtK8wIog==","_resolved":"/tmp/bfe98673eeb68e11bcde0693a84de184/anandamideio-foundry-types-13.350.4.tgz","_from":"file:anandamideio-foundry-types-13.350.4.tgz","_nodeVersion":"24.10.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-pDGjW0poxdwZiSfXz0Deip7bjJHrahNO9aO6WTvDzgZ3BoDKwKq2Q/jrnQM9wlfjRGgR1xqBy3OHRFdtK8wIog==","shasum":"a072714a6796316cd57be730a36382fe122b6e71","tarball":"https://registry.npmjs.org/@anandamideio/foundry-types/-/foundry-types-13.350.4.tgz","fileCount":657,"unpackedSize":2719746,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCbw2UUhFjM/YbtTK6KHb43QvRHrfu4rOdz31iKH8Pr6wIgMw0J7RgwE/Oq99TSyWSWo3F7u8EVzoNaFgH2AD0WnWI="}]},"_npmUser":{"name":"abaccus","email":"abourassa@assetval.com"},"directories":{},"maintainers":[{"name":"abaccus","email":"abourassa@assetval.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/foundry-types_13.350.4_1761685481176_0.060404825706890763"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-28T20:34:32.137Z","modified":"2025-10-28T21:04:41.829Z","13.350.0":"2025-10-28T20:34:32.469Z","13.350.1":"2025-10-28T20:47:03.442Z","13.350.2":"2025-10-28T20:57:37.239Z","13.350.3":"2025-10-28T21:02:21.569Z","13.350.4":"2025-10-28T21:04:41.485Z"},"license":"SEE LICENSE IN license.html","keywords":["foundry","vtt","types","typescript"],"description":"TypeScript definitions for Foundry Virtual Tabletop","maintainers":[{"name":"abaccus","email":"abourassa@assetval.com"}],"readme":"# Foundry VTT TypeScript Type Definitions\n\nThis directory contains comprehensive TypeScript type definitions for developing Foundry Virtual Tabletop modules, systems, and add-ons.\n\n## Version\n\nThese types are for **Foundry VTT v13.350** (Generation 13, Build 350).\n\n## Quick Start\n\n### Using the Types in Your Module\n\n#### Option 1: Triple-Slash Reference Directive\n\nAdd this line at the top of your TypeScript files:\n\n```typescript\n/// <reference types=\"./path/to/types\" />\n```\n\n#### Option 2: tsconfig.json Configuration\n\nConfigure your `tsconfig.json` to include the types automatically:\n\n```json\n{\n  \"compilerOptions\": {\n    \"types\": [\"./path/to/types\"],\n    \"lib\": [\"ES2023\", \"DOM\"],\n    \"module\": \"ESNext\",\n    \"target\": \"ESNext\",\n    \"moduleResolution\": \"node\"\n  },\n  \"include\": [\"src/**/*\"]\n}\n```\n\n## Type Definitions Included\n\n### Package Manifests\n\nTypes for `module.json`, `system.json`, and `world.json`:\n\n```typescript\nimport type { ModuleManifestData, SystemManifestData, WorldManifestData } from './types';\n\nconst manifest: ModuleManifestData = {\n  id: \"my-module\",\n  title: \"My Module\",\n  version: \"1.0.0\",\n  compatibility: {\n    minimum: \"13\",\n    verified: \"13.350\"\n  },\n  esmodules: [\"scripts/module.js\"],\n  styles: [\"styles/module.css\"],\n  languages: [\n    {\n      lang: \"en\",\n      name: \"English\",\n      path: \"lang/en.json\"\n    }\n  ]\n};\n```\n\n### Global API\n\nAll global Foundry VTT objects are typed:\n\n```typescript\n// game, canvas, ui, CONFIG, CONST, Hooks are all available with types\n\nHooks.once('init', () => {\n  console.log('Game initializing');\n});\n\nHooks.once('ready', () => {\n  const user = game.user;\n  const actors = game.actors;\n  const items = game.items;\n});\n```\n\n### Game Settings\n\n```typescript\ngame.settings.register('my-module', 'mySetting', {\n  name: 'My Setting',\n  hint: 'A helpful description',\n  scope: 'world',  // or 'client'\n  config: true,\n  type: String,\n  default: 'default value',\n  onChange: (value) => {\n    console.log('Setting changed:', value);\n  }\n});\n\nconst value = game.settings.get('my-module', 'mySetting');\nawait game.settings.set('my-module', 'mySetting', 'new value');\n```\n\n### ApplicationV2 - Modern UI Framework\n\nCreate modern applications using the new ApplicationV2 API:\n\n```typescript\nclass MyApplication extends foundry.applications.api.ApplicationV2 {\n  static DEFAULT_OPTIONS = {\n    id: \"my-app\",\n    classes: [\"my-module\"],\n    tag: \"div\",\n    window: {\n      frame: true,\n      positioned: true,\n      title: \"My Application\",\n      icon: \"fa-solid fa-book\",\n      minimizable: true,\n      resizable: true\n    },\n    position: {\n      width: 600,\n      height: 400\n    }\n  };\n\n  async _prepareContext(options) {\n    const context = await super._prepareContext(options);\n    context.myData = \"Hello World\";\n    return context;\n  }\n\n  async _renderHTML(context, options) {\n    const div = document.createElement('div');\n    div.innerHTML = `<p>${context.myData}</p>`;\n    return div;\n  }\n}\n\n// Open the application\nconst app = new MyApplication();\nawait app.render({ force: true });\n```\n\n### HandlebarsApplication - Template-Based UI\n\nCreate applications using Handlebars templates:\n\n```typescript\nclass MyHandlebarsApp extends foundry.applications.api.HandlebarsApplicationMixin(\n  foundry.applications.api.ApplicationV2\n) {\n  static DEFAULT_OPTIONS = {\n    id: \"my-handlebars-app\",\n    tag: \"form\",\n    window: {\n      title: \"My Handlebars App\",\n      icon: \"fa-solid fa-users\"\n    }\n  };\n\n  static PARTS = {\n    header: {\n      template: \"modules/my-module/templates/header.hbs\"\n    },\n    content: {\n      template: \"modules/my-module/templates/content.hbs\",\n      scrollable: [\"\"]\n    },\n    footer: {\n      template: \"modules/my-module/templates/footer.hbs\"\n    }\n  };\n\n  async _prepareContext(options) {\n    const context = await super._prepareContext(options);\n    context.title = \"My Application\";\n    context.items = game.items.contents;\n    return context;\n  }\n\n  async _preparePartContext(partId, context, options) {\n    const partContext = await super._preparePartContext(partId, context, options);\n    \n    if (partId === \"content\") {\n      partContext.filteredItems = context.items.filter(i => i.type === \"weapon\");\n    }\n    \n    return partContext;\n  }\n}\n```\n\n### DialogV2 - Modern Dialogs\n\nCreate dialogs easily:\n\n```typescript\n// Confirmation dialog\nconst proceed = await foundry.applications.api.DialogV2.confirm({\n  window: { title: \"Confirm Action\" },\n  content: \"<p>Are you sure you want to proceed?</p>\",\n  rejectClose: false,\n  modal: true\n});\n\nif (proceed) {\n  console.log(\"User confirmed\");\n}\n\n// Prompt dialog\nconst result = await foundry.applications.api.DialogV2.prompt({\n  window: { title: \"Enter Your Name\" },\n  content: '<input name=\"username\" type=\"text\" placeholder=\"Your name\" autofocus>',\n  ok: {\n    label: \"Submit\",\n    icon: \"fa-solid fa-check\",\n    callback: (event, button, dialog) => {\n      return button.form.elements.username.value;\n    }\n  },\n  rejectClose: true\n});\n\nconsole.log(\"User entered:\", result);\n```\n\n### DocumentSheetV2 - Document Sheets\n\nCreate custom document sheets:\n\n```typescript\nclass MyActorSheet extends foundry.applications.api.HandlebarsApplicationMixin(\n  foundry.applications.api.DocumentSheetV2\n) {\n  static DEFAULT_OPTIONS = {\n    classes: [\"my-system\", \"actor-sheet\"],\n    position: {\n      width: 720,\n      height: 800\n    },\n    window: {\n      title: \"Actor Sheet\",\n      icon: \"fa-solid fa-user\"\n    }\n  };\n\n  static PARTS = {\n    header: {\n      template: \"systems/my-system/templates/actor-sheet-header.hbs\"\n    },\n    tabs: {\n      template: \"systems/my-system/templates/actor-sheet-tabs.hbs\"\n    },\n    biography: {\n      template: \"systems/my-system/templates/actor-sheet-biography.hbs\",\n      scrollable: [\"\"]\n    }\n  };\n\n  async _prepareContext(options) {\n    const context = await super._prepareContext(options);\n    context.actor = this.document;\n    context.system = this.document.system;\n    context.items = this.document.items.contents;\n    return context;\n  }\n}\n\n// Register the sheet\nDocumentSheetConfig.registerSheet(Actor, \"my-system\", MyActorSheet, {\n  types: [\"character\", \"npc\"],\n  makeDefault: true,\n  label: \"My Actor Sheet\"\n});\n```\n\n### Documents\n\nAll document types are available:\n\n```typescript\n// Create an actor\nconst actor = await Actor.create({\n  name: \"Test Actor\",\n  type: \"character\",\n  img: \"path/to/image.png\"\n});\n\n// Update the actor\nawait actor.update({\n  \"system.health.value\": 100\n});\n\n// Create an item\nconst item = await Item.create({\n  name: \"Magic Sword\",\n  type: \"weapon\",\n  system: {\n    damage: \"1d8+3\"\n  }\n});\n\n// Add item to actor\nawait actor.createEmbeddedDocuments(\"Item\", [item.toObject()]);\n\n// Chat message\nawait ChatMessage.create({\n  content: \"Hello world!\",\n  speaker: ChatMessage.getSpeaker({ actor })\n});\n```\n\n### Hooks\n\nAll major hooks are available:\n\n```typescript\n// Initialization hooks\nHooks.once('init', () => {\n  console.log('Initializing...');\n});\n\nHooks.once('setup', () => {\n  console.log('Setup complete...');\n});\n\nHooks.once('ready', () => {\n  console.log('Ready!');\n});\n\n// Document hooks\nHooks.on('createActor', (actor, options, userId) => {\n  console.log('Actor created:', actor.name);\n});\n\nHooks.on('updateActor', (actor, changes, options, userId) => {\n  console.log('Actor updated:', actor.name, changes);\n});\n\nHooks.on('deleteActor', (actor, options, userId) => {\n  console.log('Actor deleted:', actor.name);\n});\n\n// Render hooks\nHooks.on('renderActorSheet', (app, html, data) => {\n  console.log('Actor sheet rendered');\n});\n\n// Canvas hooks\nHooks.on('canvasReady', (canvas) => {\n  console.log('Canvas ready');\n});\n```\n\n### Collections\n\nWork with document collections:\n\n```typescript\n// Get all actors\nconst actors: Collection<Actor> = game.actors;\n\n// Filter actors\nconst playerActors = actors.filter(a => a.hasPlayerOwner);\n\n// Find an actor\nconst hero = actors.find(a => a.name === \"Hero\");\n\n// Map actors\nconst actorNames = actors.map(a => a.name);\n\n// Get actor by ID\nconst actor = actors.get(\"actor-id-here\");\n\n// Get actor by name\nconst actorByName = actors.getName(\"Actor Name\");\n```\n\n## API Reference\n\n### Core Objects\n\n- `game: Game` - The main game instance\n- `canvas: Canvas` - The game canvas\n- `ui` - UI application instances\n- `CONFIG` - Configuration object\n- `CONST` - Constants\n- `Hooks` - Event system\n\n### Documents\n\n- `Actor` - Player characters and NPCs\n- `Item` - Equipment, spells, features\n- `Scene` - Game scenes\n- `ChatMessage` - Chat messages\n- `Combat` - Combat encounters\n- `Combatant` - Participants in combat\n- `Folder` - Organizational folders\n- `JournalEntry` - Journal entries\n- `Macro` - Executable macros\n- `Playlist` - Audio playlists\n- `RollTable` - Random tables\n- `User` - User accounts\n\n### Applications\n\n- `ApplicationV2` - Modern application base class\n- `HandlebarsApplicationMixin` - Template rendering mixin\n- `DialogV2` - Dialog helper\n- `DocumentSheetV2` - Document sheet base class\n\n### Utilities\n\n- `foundry.utils` - Utility functions\n- `foundry.data` - Data model fields\n- `foundry.dice` - Dice rolling\n- `foundry.documents` - Document classes\n\n## Examples\n\nSee the main `index.d.ts` file for more detailed examples and documentation.\n\n## Contributing\n\nIf you find issues with the type definitions or want to contribute improvements, please submit an issue or pull request.\n\n## License\n\nThese type definitions follow the same license as Foundry Virtual Tabletop.\n\n## Support\n\nFor questions about using these types:\n- Foundry VTT Documentation: https://foundryvtt.com/api/\n- Foundry VTT Discord: https://discord.gg/foundryvtt\n- Community Forums: https://forums.foundryvtt.com/\n\n## Changelog\n\n### v13.350.0\n- Initial release with comprehensive type definitions\n- ApplicationV2 and HandlebarsApplication types\n- DialogV2 and DocumentSheetV2 types\n- Package manifest types\n- Document types\n- Global API types\n","readmeFilename":"README.md"}