Skip to main content
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

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

Fields

FieldTypeDescription
idID!Unique identifier (changes with each version)
projectIdID!Parent project ID
versionString!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
compiledString!This package’s compiled components (JSON)
resolvedResolvedPackage!Full package data with all dependencies
resolvedRefResolvedPackageRef!Package IDs for normalized caching
createdAtDateTime!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:
{
  "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 for details.

PackageDependency

type PackageDependency {
  projectId: ID!
  version: String!
}
FieldTypeDescription
projectIdID!Dependent project ID
versionString!Required version

Example Query

Full Package Data

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

query GetPackageWithCaching($version: String!) {
  package(version: $version) {
    id
    version
    resolvedRef {
      package
      dependencies
    }
  }
}
Response:
{
  "data": {
    "package": {
      "id": "pkg123",
      "version": "2.0.0",
      "resolvedRef": {
        "package": "abc123def456...",
        "dependencies": ["xyz789ghi012..."]
      }
    }
  }
}