DatumHuePlatform v0.0.24datumhue.com
Contents

handle23 methods, 2 fields

PackageRef

An opaque, resolved reference to a catalog entry. Read-only; accepted by app.spawn({ package_ref = ref }).

Obtained from
datumhue.packages.list, datumhue.packages.search, datumhue.packages.info, datumhue.packages.installed, datumhue.packages.on_change (in its callback), datumhue.packages.on_install_change (in its callback), App.package_ref
Accepted by
datumhue.app.spawn, datumhue.commerce.check_purchase, datumhue.commerce.purchase

The examples on this page start from:

lua
local ref = datumhue.packages.info("@datumhue/hello")

Fields 2

FieldTypeAccessDescription
namestringread-onlyScoped @scope/name identity.
titlestringread-onlyRead-only. The human name: the manifest title, or one derived from the package name (scope dropped, "_" and "-" become spaces, each word capitalized). Never empty.

Methods 23

PackageRef:scope

method
PackageRef:scope() -> string

Owning scope segment (the scope in @scope/name), without the leading @.

PackageRef:publisher

method
PackageRef:publisher() -> string

Stable identifier of the entity that published this version, as verified at publish from the publisher's sign-in.

PackageRef:namespace

method
PackageRef:namespace() -> string

Namespace this entry belongs to.

PackageRef:version

method
PackageRef:version() -> string

SemVer string from the manifest.

PackageRef:kind

method
PackageRef:kind() -> string

Manifest kind: "app", "library", or "asset_pack".

PackageRef:content_type

method
PackageRef:content_type() -> string?

The refinement tag on asset packs, or nil when unset.

PackageRef:description

method
PackageRef:description() -> string?

One-line summary, or nil when unset.

PackageRef:author

method
PackageRef:author() -> string?

Display name, or nil when unset.

PackageRef:icon

method
PackageRef:icon() -> Image?

Catalog icon, returned at once and populated in the background; nil when the manifest declares no icon. Decoded at up to 256 px on the longest edge.

PackageRef:size

method
PackageRef:size() -> integer

Total size of the package's files in bytes.

PackageRef:is_sealed

method
PackageRef:is_sealed() -> boolean

The sealed flag from the manifest.

PackageRef:is_service

method
PackageRef:is_service() -> boolean

The service flag from the manifest.

PackageRef:requires

method
PackageRef:requires() -> table<string, string>

Map of dependency @scope/name to its SemVer constraint.

Example
for name, constraint in pairs(ref:requires()) do
    print(name, constraint)
end

PackageRef:capabilities

method
PackageRef:capabilities() -> string[]

Array of capability grants the manifest declares as required to run, in declaration order; empty when none.

PackageRef:monetization

method
PackageRef:monetization() -> packages.Monetization?

Pricing for a paid package as { paid, price, currency }, or nil when the package is free. price/currency are the creator's current listing — live state, not a property of the version — and are absent while the package is not listed for sale yet. Pass the ref to datumhue.commerce.purchase to buy it.

Example
local listing = ref:monetization()
if listing and listing.price then
    -- In the currency's minor unit: 7900 with "usd" is $79.00.
    print(listing.price, listing.currency)
end

returns packages.Monetization record 3 keys

KeyTypeDescription
paidbooleanAlways true — a free package returns nil instead.
price?integerAmount in the currency's minor unit (e.g. cents); absent while the package is not listed for sale yet.
currency?stringISO 4217 currency code, lowercase; absent while the package is not listed for sale yet.

PackageRef:license

method
PackageRef:license() -> string?

SPDX license id the package declares (e.g. "0BSD"), or nil when unset. Free packages always carry one; paid packages may omit it.

PackageRef:tags

method
PackageRef:tags() -> string[]

Discovery tags from the manifest, in declaration order; empty when none.

PackageRef:screenshots

method
PackageRef:screenshots() -> Image[]

Screenshot images in manifest order, each populated in the background like icon() and decoded at up to 1024 px on the longest edge. Every call starts one load per screenshot, so call it for the package being viewed rather than across a whole list.

PackageRef:readme

method
PackageRef:readme() -> BytesFetch

Start fetching the package's readme (raw Markdown or plain text); value is its bytes, which bytes:book() renders, or nil when the package ships none. The fetch fails when the readme exceeds 1 MiB, is not valid UTF-8, or can't be fetched.

Example
local readme = ref:readme():ready()
if readme.value then
    readme.value:book():mount()
end

PackageRef:load

methodsuspends
PackageRef:load() -> Package

Download the package and return it as a Package handle. Raises if the request fails, as for a paid package not purchased, or one whose buyer's account has reached its device limit without this device or had this device removed.

Example
local pkg = ref:load()
datumhue.app.spawn({ package = pkg })

PackageRef:installed_version

methodneeds packages
PackageRef:installed_version() -> string?

Version of this package currently installed from this ref's registry — keyed by name, so a catalog-latest ref answers for the installed copy. nil when not installed; a value differing from version() means an update is available. Reads this workstation's state, without asking the deployment.

PackageRef:install

methodneeds packages
PackageRef:install() -> Op

Start downloading this exact version, with its dependencies, into the local library; the op completes once it is installed. Already complete when this version is installed; installing over a different installed version replaces it. Installs run concurrently. One started while a removal is still clearing local content waits for that to end. Fails when a paid package is not purchased, or its buyer's account has reached its device limit without this device or had this device removed; when the registry can't be reached and the content is not already on this device; or when the download is invalid.

Example
ref:install():ready()
print(ref:installed_version())

PackageRef:uninstall

methodneeds packages
PackageRef:uninstall() -> Op

Remove this package from the local library — keyed by name, whatever version is installed. The library entry goes at the call; the op completes when the package's local content is cleared, keeping content shared with other installed packages. Raises when it is not installed or an app is currently running from it.

datumhue.com

(c) 2026 Shuusei AB. Quote excerpts of this manual, with attribution to DatumHue, in your own documentation, tutorials, course materials, reviews, and other writing or video. Republishing it in whole or in substantial part needs written permission: support@datumhue.com.

Victor Mono is licensed under the SIL Open Font License 1.1
Copyright (c) 2024, Rune Bjørnerås (https://github.com/rubjo)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Try

    ↑↓ selectEnter openTab filter

    Settings

    Theme
    Text
    Print

    Keyboard shortcuts

    / or Ctrl KSearch
    ↑ ↓ EnterPick a result
    TabNext result filter
    j kNext or previous entry
    [ ]Previous or next page
    yCopy a link to the current entry
    ?These shortcuts
    EscClose

    On this page