> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metabind.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Package

> Immutable component snapshots with dependencies

The `Package` type represents an immutable snapshot of components at a specific version. Packages follow semantic versioning and include all dependencies needed to render content.

## Type Definition

```graphql theme={null}
type Package {
  id: ID!
  projectId: ID!
  version: String!
  components: [Component!]!
  assets: [Asset!]!
  dependencies: [PackageDependency!]!
  compiled: String!
  resolved: ResolvedPackage!
  resolvedRef: ResolvedPackageRef!
  createdAt: DateTime!
}
```

## Fields

| Field | Type | Description |
| - | - | - |
| `id` | ID! | Unique identifier (changes with each version) |
| `projectId` | ID! | Parent project ID |
| `version` | String! | Semantic version (e.g., "1.0.0") |
| `components` | \[Component!]! | Components included in this package |
| `assets` | \[Asset!]! | Assets bundled with the package |
| `dependencies` | \[PackageDependency!]! | External package dependencies |
| `compiled` | String! | This package's compiled components (JSON) |
| `resolved` | ResolvedPackage! | Full package data with all dependencies |
| `resolvedRef` | ResolvedPackageRef! | Package IDs for normalized caching |
| `createdAt` | DateTime! | Publication timestamp |

## Field Details

### version

Packages use semantic versioning (semver):

* **Major** (1.0.0 → 2.0.0): Breaking changes
* **Minor** (1.0.0 → 1.1.0): New features, backward compatible
* **Patch** (1.0.0 → 1.0.1): Bug fixes

### compiled

JSON object mapping component names to their compiled code:

```json theme={null}
{
  "ProductCard": "const body = (props) => { ... }",
  "ArticleLayout": "const body = (props) => { ... }"
}
```

### resolved vs resolvedRef

Choose based on your use case:

* **resolved**: Full package data inline (larger payload, simpler client)
* **resolvedRef**: IDs only for normalized caching (smaller payload, requires additional queries)

See [Resolved Package](/graphql/types/resolved-package) for details.

## PackageDependency

```graphql theme={null}
type PackageDependency {
  projectId: ID!
  version: String!
}
```

| Field | Type | Description |
| - | - | - |
| `projectId` | ID! | Dependent project ID |
| `version` | String! | Required version |

## Example Query

### Full Package Data

```graphql theme={null}
query GetPackage($version: String!) {
  package(version: $version) {
    id
    version
    components {
      id
      name
      compiled
    }
    assets {
      id
      name
      url
    }
    dependencies {
      projectId
      version
    }
    resolved {
      package {
        version
        components
        assets
      }
      dependencies {
        version
        components
        assets
      }
    }
  }
}
```

### With Caching References

```graphql theme={null}
query GetPackageWithCaching($version: String!) {
  package(version: $version) {
    id
    version
    resolvedRef {
      package
      dependencies
    }
  }
}
```

Response:

```json theme={null}
{
  "data": {
    "package": {
      "id": "pkg123",
      "version": "2.0.0",
      "resolvedRef": {
        "package": "abc123def456...",
        "dependencies": ["xyz789ghi012..."]
      }
    }
  }
}
```

## Related Types

* [Component](/graphql/types/component) - Components bundled in packages
* [Resolved Package](/graphql/types/resolved-package) - Package resolution types
* [Content](/graphql/types/content) - Content references packages via version


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.