@jitl/notion-api
Version:
The missing companion library for the official Notion public API.
662 lines • 59.8 kB
TypeScript
import { QueryDatabaseParameters } from '@notionhq/client/build/src/api-endpoints';
import { NotionClient, PageWithChildren, RichText, Page, PropertyFilter, PropertyPointerWithOutput, Filter, Sorts, PartialDatabaseSchema, DatabasePropertyValues, PropertyDataMap } from './notion-api';
import { Asset, AssetRequest } from './assets';
import { CacheBehavior, NotionObjectIndex } from './cache';
import { Backlinks } from './backlinks';
/**
* Specifies that the CMS should look up a custom property from regular Page property.
* Consider using this with a formula property for maximum flexibility.
*
* See {@link CMSConfig}.
*
* @category CMS
* @source
*/
export declare type CMSCustomPropertyPointer<T> = {
type: 'property';
/** Indicates which property to fetch data from */
property: PropertyPointerWithOutput<T>;
};
/**
* Specifies that the CMS should compute a value for the page using a function.
*
* See {@link CMSConfig}.
*
* @category CMS
* @source
*/
export interface CMSCustomPropertyDerived<T, CustomFrontmatter, Schema extends PartialDatabaseSchema> {
type: 'derived';
/** Computes the custom property value from the page using a function */
derive: (args: {
page: Page;
}, cms: CMS<CustomFrontmatter, Schema>) => T | Promise<T>;
}
/**
* Property key name in a database schema.
* Specifies that the CMS should look up a property in the page's schema.
*
* For a database schema `{ name: { type: 'rich_text', name: 'Name', id: 'qX124' } }`,
* a valid CMSSchemaPropertyPointer<RichText, typeof schema> would be `'name'`.
*
* See {@link CMSConfig}, {@link CMSConfig.schema}.
*
* @category CMS
*/
export declare type CMSSchemaPropertyPointer<T, Schema extends PartialDatabaseSchema> = {
[K in keyof Schema]: Schema[K] extends PropertyPointerWithOutput<T> ? K : never;
}[keyof Schema];
/**
* Specifies how a CMS should get a custom property.
*
* See {@link CMSConfig}.
*
* @category CMS
* @source
*/
export declare type CMSCustomProperty<T, CustomFrontmatter, Schema extends PartialDatabaseSchema> = CMSSchemaPropertyPointer<T, Schema> | CMSCustomPropertyPointer<T> | CMSCustomPropertyDerived<T, CustomFrontmatter, Schema>;
/**
* Configuration for a CMS instance.
*
* @category CMS
* @source
*/
export interface CMSConfig<
/** The custom frontmatter metadata this CMS should produce */
CustomFrontmatter,
/**
* Schema of the database. Use [[inferDatabaseSchema]] to avoid writing the
* name of each property twice.
*/
Schema extends PartialDatabaseSchema> {
/** Notion API client */
notion: NotionClient;
/** Notion Database ID to query for pages */
database_id: string;
/**
* Schema of the underlying Notion database.
*
* The CMS will generate filter and sort builders ([[CMS.filter]], [[CMS.sort]])
* for each property in the schema.
*
* Use [[inferDatabaseSchema]] to avoid writing the name of each property twice.
*
* You can refer to the key names of the schema when specifying special
* properties for [[slug]], [[visible]], or [[title]].
*/
schema: Schema;
/**
* How should we generate the URL slug for a page, to make a pretty and stable URL?
* If empty string or undefined, the slug will the page's UUID, without dashes.
*
* Slugs should be unique. [[CMS.loadPageBySlug]] will currently return the
* first page found with that slug, but this behavior may change in the
* future.
*
* **Note** deriving the slug in-memory on the client by passing a
* [[CMSCustomPropertyDerived]] here means that [[CMS.loadPageBySlug]] will be
* O(n) over the database.
*/
slug: CMSCustomProperty<RichText | string | undefined | PropertyDataMap['formula'], CustomFrontmatter, Schema> | undefined;
/**
* If `false`, the page will be hidden by default from the CMS's APIs. You can
* easily enable all pages by setting `visible: true`, or hide everything by
* default by setting `visible: false`.
*/
visible: boolean | CMSCustomProperty<boolean | PropertyDataMap['formula'], CustomFrontmatter, Schema>;
/**
* Override the page title in frontmatter.
*/
title?: CMSCustomProperty<RichText | string, CustomFrontmatter, Schema>;
/**
* This function should return the custom frontmatter from a page. Use it to
* read properties from the page and return them in a well-typed way.
*
* The CMS can compute whatever frontmatter you want from the pages it loads.
* If you're coming from a Markdown static site generator, think of this as the
* alternative to YAML frontmatter.
*
* This is helpful for adding well-typed properties to your pages for rendering,
* since the Notion API doesn't guarantee that any property exists, and fetching
* property data can be quite verbose.
*
* @example:
* ```
* getFrontmatter: (page) => ({
* date: getPropertyValue(page, {
* name: 'Date',
* type: 'date',
* }),
* subtitle: getPropertyValue(
* page,
* {
* name: 'Subtitle',
* type: 'rich_text',
* },
* richTextAsPlainText
* ),
* }),
* ```
*
* @returns The custom frontmatter for `page`.
*/
getFrontmatter: (data: {
/**
* Page to generate frontmatter for
*/
page: PageWithChildren;
/**
* Default frontmatter for the page, which is already derived
*/
defaultFrontmatter: CMSDefaultFrontmatter;
/**
* Schema properties
*/
properties: DatabasePropertyValues<Schema>;
},
/**
* The CMS instance; use this to eg fetch backlinks or assets. Note that
* accessing this value will disable type inference for the `getFrontmatter`
* return value; this is a Typescript limitation.
*
* If you pass a databases schema to the CMS, those properties will be
* available to `getFrontmatter`, if you don't need customization you can
* just return them:
*
* ```typescript
* new CMS({
* schema: mySchema,
* getFrontmatter: ({ properties }) => properties,
* })
* ```
*
* Or, use `getFrontmatter` to extend those properties or add defaults.
* For example, convert RichText to plain text:
* ```typescript
* new CMS({
* schema: { navTitle: { type: 'rich_text' } },
* getFrontmatter: ({ properties }) => ({
* ...properties,
* navTitle: richTextAsPlainText(properties.navTitle),
* })
* })
* ```
*
* (That is why this isn't included in the first argument.)
*/
cms: CMS<CustomFrontmatter, Schema>) => CustomFrontmatter | Promise<CustomFrontmatter>;
/**
* Controls how CMS will cache API data.
*/
cache?: {
/**
* Filesystem path where the CMS will store JSON cache files.
*
* If unset, only in-memory caching will be used.
*/
directory?: string;
/**
* Maximum age of a page cache, in milliseconds.
* If a page is older than this, it will be re-fetched from Notion, even if
* the page's updated_at timestamp hasn't changed.
*/
maxPageContentAgeMs?: number;
/**
* Minimum age of a page cache, in milliseconds.
* The default is 0; an async function that needs page data will always
* revalidate the page content cache by checking the last_updated timestamp.
*/
minPageContentAgeMs?: number;
};
/**
* Setting this option instructs CMS how to handle assets like images, icons,
* and other attachments.
*
* If unset, assets will be served using online URLs returned by the Notion API,
* which [expire after 1 hour](https://developers.notion.com/reference/file-object).
*/
assets?: {
/**
* Filesystem path where the CMS should download assets.
*/
directory: string;
/**
* Should the CMS download external assets, eg images stored outside of
* Notion, to `directory`?
*/
downloadExternalAssets: boolean;
/**
* If specified, the CMS will attempt to copy emoji assets from this source
* directory into the `directory` specified above.
*
* If unset, falls back to data in the `emoji-datasource-apple` NPM package,
* if installed.
*/
emojiSourceDirectory?: string;
};
}
/**
* All [[CMSPage]]s have at least this frontmatter.
* @category CMS
* @source
*/
export interface CMSDefaultFrontmatter {
title: RichText | string;
slug: string;
visible: boolean;
}
/**
* The frontmatter of a [[CMSPage]].
* @category CMS
* @source
*/
export declare type CMSFrontmatter<CustomFrontmatter> = CMSDefaultFrontmatter & Omit<CustomFrontmatter, keyof CMSDefaultFrontmatter>;
/**
* A CMSPage is a Notion page and its computed CMS frontmatter.
* @category CMS
*/
export interface CMSPage<CustomFrontmatter> {
frontmatter: CMSFrontmatter<CustomFrontmatter>;
content: PageWithChildren;
}
/**
* Get the CMSPage type from a CMS.
* ```typescript
* const MyCMS = new CMS({ ... })
* type MyPage = CMSPageOf<typeof MyCMS>;
* ```
* @category CMS
*/
export declare type CMSPageOf<T extends CMS<any, any>> = T extends CMS<infer CustomFrontmatter, any> ? CMSPage<CustomFrontmatter> : never;
/**
* Options for [[CMS]] retrieve methods.
* @category CMS
*/
export interface CMSRetrieveOptions {
/** If true, ignore the `visible` property of any retrieved [[CMSPage]]s by always considering them visible. */
showInvisible?: boolean;
}
/**
* Options of [[CMS.getQueryParameters]]
* @category CMS
*/
export interface CMSQueryParametersOptions extends CMSRetrieveOptions {
/** Get the query used for retrieving this slug */
slug?: string;
}
/**
* Options of [[CMS.scope]], [[CMSScope.scope]]
* @category CMS
*/
export interface CMSScopeOptions extends CMSRetrieveOptions {
/** Apply these filters to all queries made inside the scope */
filter?: Filter;
/** Apply these sorts to all queries made inside the scope. These take precedence over but do not remove the parent scope's sorts. */
sorts?: Sorts;
}
/**
* A query scope inside of a [[CMS]].
* A scope is a way to save and compose common query options.
*
* ```typescript
* const invisibleScope = cms.scope({ filter: cms.getVisibleEqualsFilter(false), showInvisible: true })
* const recentlyChanged = invisibleScope.query({ filter: cms.filter.updatedTime.last_week({}) })
* ```
*
* @category CMS
*/
export interface CMSScope<CustomFrontmatter> {
/**
* Query the database, returning all matching [[CMSPage]]s.
*/
query(args?: {
filter?: Filter;
sorts?: Sorts;
}, options?: CMSRetrieveOptions): AsyncIterableIterator<CMSPage<CustomFrontmatter>>;
/**
* @returns A child scope within this scope.
*/
scope(options: CMSScopeOptions): CMSScope<CustomFrontmatter>;
/**
* @returns the Notion API QueryDatabaseParameters used as the basis for queries made by this object.
*/
getQueryParameters(options: CMSQueryParametersOptions): QueryDatabaseParameters;
}
/**
* A Content Management System (CMS) based on the Notion API.
* Each CMS instance wraps a single Notion database that contains [[CMSPage]]s.
* Pages and their contents loaded from the CMS are cached in-memory, and
* optionally on disk.
*
* See [[CMSConfig]] for configuration options.
*
* ```typescript
* const cms = new CMS({
* notion,
* database_id: 'example',
* slug: 'productCode',
* visible: 'publicAccess',
* schema: inferDatabaseSchema({
* productCode: {
* name: 'Product Code',
* type: 'rich_text',
* },
* Subtitle: {
* type: 'rich_text',
* },
* publicAccess: {
* name: 'Public Access',
* type: 'checkbox',
* },
* Date: {
* type: 'date',
* },
* }),
* getFrontmatter: ({ properties }) => ({
* ...properties,
* productCode: richTextAsPlainText(properties.productCode),
* }),
* });
*
* const oldPagesIterator = cms.query({
* filter: cms.filter.and(
* cms.filter.Date.before('2020-01-01'),
* cms.filter.publicAccess.equals(true)
* ),
* sorts: [cms.sort.last_edited_time.descending],
* });
*
* const drafts = cms.scope({
* filter: cms.getVisibleEqualsFilter(false),
* showInvisible: true,
* });
*
* const draftsIterator = drafts.query({})
* ```
*
* @category CMS
*/
export declare class CMS<
/** The custom frontmatter metadata returned by [[CMSConfig.getFrontmatter]] */
CustomFrontmatter,
/** Schema of the database. See [[inferDatabaseSchema]]. */
Schema extends PartialDatabaseSchema = never> implements CMSScope<CustomFrontmatter> {
config: CMSConfig<CustomFrontmatter, Schema>;
/** Indexes links between the pages that have been loaded into memory. */
backlinks: Backlinks;
/**
* Indexes Notion API objects in pages that have been loaded into memory.
*/
notionObjects: NotionObjectIndex;
/** Maps from Page ID to CMSPage */
pages: Map<string, CMSPage<CustomFrontmatter>>;
/** Asset downloader, requires `assets` configuration */
assets: AssetCache | undefined;
/**
* Filter helpers for this CMS's database schema.
*
* ```typescript
* const cms = new CMS({ ... })
* cms.query({
* filter: cms.filter.and(
* cms.filter.createdAt.last_week({}),
* cms.filter.featured.equals(true)
* ),
* })
* ```
*/
filter: import("./query").DatabaseFilterBuilder<Schema>;
/**
* Sort helpers for this CMS's database schema.
*
* ```typescript
* const cms = new CMS({ ... })
* cms.query({
* sorts: [
* cms.sort.createdAt.descending,
* cms.sort.title.ascending,
* ],
* })
* ```
*/
sort: import("./query").DatabaseSortBuilder<Schema>;
/** Resolves [[CMSConfig.slug]] and [[CMSConfig.visible]] config options to property pointers */
propertyResolver: CMSPropertyResolver<CustomFrontmatter, Schema>;
/**
* Query the database, returning all matching [[CMSPage]]s.
* Filter and sort parameters will be combined with the default ones for the
* database, such as respecting `visible` if configured.
*/
query: CMSScope<CustomFrontmatter>['query'];
/** Private for now, because the semantics may change. */
private pageContentCache;
/**
* See also [[CMSConfig.schema]].
*/
get schema(): Schema;
constructor(config: CMSConfig<CustomFrontmatter, Schema>);
/** Retrieve a CMS page by ID. */
loadPageById(pageId: string, options?: CMSRetrieveOptions): Promise<CMSPage<CustomFrontmatter> | undefined>;
/**
* Retrieve a CMS page by its slug.
*
* Note that configuring the CMS to use a property for the slug is more
* efficient than using a derived function, which requires a O(n) scan of the
* database.
*/
loadPageBySlug(slug: string, options?: CMSRetrieveOptions): Promise<CMSPage<CustomFrontmatter> | undefined>;
/**
* *Raw* - prefer to use [[loadPageBySlug]] instead.
* Scan the requests of `queryParameters` for the first page with the given slug.
*/
findPageWithSlugRaw(args: {
slug: string;
options: CMSRetrieveOptions;
queryParameters: QueryDatabaseParameters;
}): Promise<CMSPage<CustomFrontmatter> | undefined>;
/**
* *Raw* - prefer to use [[query]] instead.
* Scan the results of `queryParameters` and return each page as a [[CMSPage]].
*/
queryRaw(args: {
queryParameters: QueryDatabaseParameters;
options: CMSRetrieveOptions;
}): AsyncIterableIterator<CMSPage<CustomFrontmatter>>;
getQueryParameters(args?: CMSQueryParametersOptions): QueryDatabaseParameters;
downloadAssets(cmsPage: CMSPage<CustomFrontmatter>): Promise<void>;
scope(args: CMSScopeOptions): CMSScope<CustomFrontmatter>;
private createScope;
private customPropertyFilters;
/**
* If `config.visible` is a property pointer, return a filter for `visibleProperty = isVisible`.
* Note that you must also set `showInvisible: true` for query APIs to return invisible pages,
* otherwise they will be filtered out in-memory.
*
* This filter is added automatically to queries in the CMS and
* [[getQueryParameters]] unless their `showInvisible` is true.
*/
getVisibleEqualsFilter(isVisible: boolean): PropertyFilter | undefined;
/**
* If `config.slug` is a property pointer, return a filter for `slugProperty = slug`.
* This filter is used by [[loadPageBySlug]] and possibly by [[getQueryParameters]].
*/
getSlugEqualsFilter(slug: string): PropertyFilter | undefined;
getDefaultSorts(): Sorts;
private buildCMSPage;
private getTitle;
private getVisible;
private getSlug;
private rebuildIndexes;
}
/**
* Resolve [[CMSConfig]] options to property pointers.
* This is implemented as a separate class from [[CMS]] to improve type inference.
* See {@link CMS.propertyResolver}.
* @category CMS
*/
export declare class CMSPropertyResolver<CustomFrontmatter, Schema extends PartialDatabaseSchema> {
private cms;
config: CMSConfig<CustomFrontmatter, Schema>;
constructor(cms: CMS<CustomFrontmatter, Schema>);
/** If `config.slug` is a property pointer, returns it as a [[PropertyPointer]]. */
resolveSlugPropertyPointer(): PropertyPointerWithOutput<string | ({
type: "text";
text: {
content: string;
link: {
url: string;
} | null;
};
annotations: {
bold: boolean;
italic: boolean;
strikethrough: boolean;
underline: boolean;
code: boolean;
color: "default" | "gray" | "brown" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "red" | "gray_background" | "brown_background" | "orange_background" | "yellow_background" | "green_background" | "blue_background" | "purple_background" | "pink_background" | "red_background";
};
plain_text: string;
href: string | null;
} | {
type: "mention";
mention: {
type: "user";
user: ({
type: "person";
person: {
email?: string | undefined;
};
name: string | null;
avatar_url: string | null;
id: string;
object: "user";
} | {
type: "bot";
bot: {
[x: string]: never;
} | {
owner: {
type: "user";
user: {
type: "person";
person: {
email: string;
};
name: string | null;
avatar_url: string | null;
id: string;
object: "user";
} | {
id: string;
object: "user";
};
} | {
type: "workspace";
workspace: true;
};
};
name: string | null;
avatar_url: string | null;
id: string;
object: "user";
}) | {
id: string;
object: "user";
};
} | {
type: "date";
date: {
start: string;
end: string | null;
time_zone: ("Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT+0" | "GMT-0" | "GMT0" | "Greenwich" | "HST" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROC" | "ROK" | "Singapore" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Pacific-New" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu") | null;
};
} | {
type: "link_preview";
link_preview: {
url: string;
};
} | {
type: "template_mention";
template_mention: {
type: "template_mention_date";
/** Indexes links between the pages that have been loaded into memory. */
template_mention_date: "today" | "now";
} | {
type: "template_mention_user";
template_mention_user: "me";
};
} | {
type: "page";
page: {
id: string;
};
} | {
type: "database";
database: {
id: string;
};
};
annotations: {
bold: boolean;
italic: boolean;
strikethrough: boolean;
underline: boolean;
code: boolean;
color: "default" | "gray" | "brown" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "red" | "gray_background" | "brown_background" | "orange_background" | "yellow_background" | "green_background" | "blue_background" | "purple_background" | "pink_background" | "red_background";
};
plain_text: string; /**
* Sort helpers for this CMS's database schema.
*
* ```typescript
* const cms = new CMS({ ... })
* cms.query({
* sorts: [
* cms.sort.createdAt.descending,
* cms.sort.title.ascending,
* ],
* })
* ```
*/
href: string | null;
} | {
type: "equation";
equation: {
expression: string;
};
annotations: {
bold: boolean;
italic: boolean;
strikethrough: boolean;
underline: boolean;
code: boolean;
color: "default" | "gray" | "brown" | "orange" | "yellow" | "green" | "blue" | "purple" | "pink" | "red" | "gray_background" | "brown_background" | "orange_background" | "yellow_background" | "green_background" | "blue_background" | "purple_background" | "pink_background" | "red_background";
};
plain_text: string;
href: string | null;
})[] | {
type: "string";
string: string | null;
} | {
type: "date";
date: {
start: string;
end: string | null;
time_zone: ("Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto_Rico" | "America/Punta_Arenas" | "America/Rainy_River" | "America/Rankin_Inlet" | "America/Recife" | "America/Regina" | "America/Resolute" | "America/Rio_Branco" | "America/Rosario" | "America/Santa_Isabel" | "America/Santarem" | "America/Santiago" | "America/Santo_Domingo" | "America/Sao_Paulo" | "America/Scoresbysund" | "America/Shiprock" | "America/Sitka" | "America/St_Barthelemy" | "America/St_Johns" | "America/St_Kitts" | "America/St_Lucia" | "America/St_Thomas" | "America/St_Vincent" | "America/Swift_Current" | "America/Tegucigalpa" | "America/Thule" | "America/Thunder_Bay" | "America/Tijuana" | "America/Toronto" | "America/Tortola" | "America/Vancouver" | "America/Virgin" | "America/Whitehorse" | "America/Winnipeg" | "America/Yakutat" | "America/Yellowknife" | "Antarctica/Casey" | "Antarctica/Davis" | "Antarctica/DumontDUrville" | "Antarctica/Macquarie" | "Antarctica/Mawson" | "Antarctica/McMurdo" | "Antarctica/Palmer" | "Antarctica/Rothera" | "Antarctica/South_Pole" | "Antarctica/Syowa" | "Antarctica/Troll" | "Antarctica/Vostok" | "Arctic/Longyearbyen" | "Asia/Aden" | "Asia/Almaty" | "Asia/Amman" | "Asia/Anadyr" | "Asia/Aqtau" | "Asia/Aqtobe" | "Asia/Ashgabat" | "Asia/Ashkhabad" | "Asia/Atyrau" | "Asia/Baghdad" | "Asia/Bahrain" | "Asia/Baku" | "Asia/Bangkok" | "Asia/Barnaul" | "Asia/Beirut" | "Asia/Bishkek" | "Asia/Brunei" | "Asia/Calcutta" | "Asia/Chita" | "Asia/Choibalsan" | "Asia/Chongqing" | "Asia/Chungking" | "Asia/Colombo" | "Asia/Dacca" | "Asia/Damascus" | "Asia/Dhaka" | "Asia/Dili" | "Asia/Dubai" | "Asia/Dushanbe" | "Asia/Famagusta" | "Asia/Gaza" | "Asia/Harbin" | "Asia/Hebron" | "Asia/Ho_Chi_Minh" | "Asia/Hong_Kong" | "Asia/Hovd" | "Asia/Irkutsk" | "Asia/Istanbul" | "Asia/Jakarta" | "Asia/Jayapura" | "Asia/Jerusalem" | "Asia/Kabul" | "Asia/Kamchatka" | "Asia/Karachi" | "Asia/Kashgar" | "Asia/Kathmandu" | "Asia/Katmandu" | "Asia/Khandyga" | "Asia/Kolkata" | "Asia/Krasnoyarsk" | "Asia/Kuala_Lumpur" | "Asia/Kuching" | "Asia/Kuwait" | "Asia/Macao" | "Asia/Macau" | "Asia/Magadan" | "Asia/Makassar" | "Asia/Manila" | "Asia/Muscat" | "Asia/Nicosia" | "Asia/Novokuznetsk" | "Asia/Novosibirsk" | "Asia/Omsk" | "Asia/Oral" | "Asia/Phnom_Penh" | "Asia/Pontianak" | "Asia/Pyongyang" | "Asia/Qatar" | "Asia/Qostanay" | "Asia/Qyzylorda" | "Asia/Rangoon" | "Asia/Riyadh" | "Asia/Saigon" | "Asia/Sakhalin" | "Asia/Samarkand" | "Asia/Seoul" | "Asia/Shanghai" | "Asia/Singapore" | "Asia/Srednekolymsk" | "Asia/Taipei" | "Asia/Tashkent" | "Asia/Tbilisi" | "Asia/Tehran" | "Asia/Tel_Aviv" | "Asia/Thimbu" | "Asia/Thimphu" | "Asia/Tokyo" | "Asia/Tomsk" | "Asia/Ujung_Pandang" | "Asia/Ulaanbaatar" | "Asia/Ulan_Bator" | "Asia/Urumqi" | "Asia/Ust-Nera" | "Asia/Vientiane" | "Asia/Vladivostok" | "Asia/Yakutsk" | "Asia/Yangon" | "Asia/Yekaterinburg" | "Asia/Yerevan" | "Atlantic/Azores" | "Atlantic/Bermuda" | "Atlantic/Canary" | "Atlantic/Cape_Verde" | "Atlantic/Faeroe" | "Atlantic/Faroe" | "Atlantic/Jan_Mayen" | "Atlantic/Madeira" | "Atlantic/Reykjavik" | "Atlantic/South_Georgia" | "Atlantic/St_Helena" | "Atlantic/Stanley" | "Australia/ACT" | "Australia/Adelaide" | "Australia/Brisbane" | "Australia/Broken_Hill" | "Australia/Canberra" | "Australia/Currie" | "Australia/Darwin" | "Australia/Eucla" | "Australia/Hobart" | "Australia/LHI" | "Australia/Lindeman" | "Australia/Lord_Howe" | "Australia/Melbourne" | "Australia/NSW" | "Australia/North" | "Australia/Perth" | "Australia/Queensland" | "Australia/South" | "Australia/Sydney" | "Australia/Tasmania" | "Australia/Victoria" | "Australia/West" | "Australia/Yancowinna" | "Brazil/Acre" | "Brazil/DeNoronha" | "Brazil/East" | "Brazil/West" | "CET" | "CST6CDT" | "Canada/Atlantic" | "Canada/Central" | "Canada/Eastern" | "Canada/Mountain" | "Canada/Newfoundland" | "Canada/Pacific" | "Canada/Saskatchewan" | "Canada/Yukon" | "Chile/Continental" | "Chile/EasterIsland" | "Cuba" | "EET" | "EST" | "EST5EDT" | "Egypt" | "Eire" | "Etc/GMT" | "Etc/GMT+0" | "Etc/GMT+1" | "Etc/GMT+10" | "Etc/GMT+11" | "Etc/GMT+12" | "Etc/GMT+2" | "Etc/GMT+3" | "Etc/GMT+4" | "Etc/GMT+5" | "Etc/GMT+6" | "Etc/GMT+7" | "Etc/GMT+8" | "Etc/GMT+9" | "Etc/GMT-0" | "Etc/GMT-1" | "Etc/GMT-10" | "Etc/GMT-11" | "Etc/GMT-12" | "Etc/GMT-13" | "Etc/GMT-14" | "Etc/GMT-2" | "Etc/GMT-3" | "Etc/GMT-4" | "Etc/GMT-5" | "Etc/GMT-6" | "Etc/GMT-7" | "Etc/GMT-8" | "Etc/GMT-9" | "Etc/GMT0" | "Etc/Greenwich" | "Etc/UCT" | "Etc/UTC" | "Etc/Universal" | "Etc/Zulu" | "Europe/Amsterdam" | "Europe/Andorra" | "Europe/Astrakhan" | "Europe/Athens" | "Europe/Belfast" | "Europe/Belgrade" | "Europe/Berlin" | "Europe/Bratislava" | "Europe/Brussels" | "Europe/Bucharest" | "Europe/Budapest" | "Europe/Busingen" | "Europe/Chisinau" | "Europe/Copenhagen" | "Europe/Dublin" | "Europe/Gibraltar" | "Europe/Guernsey" | "Europe/Helsinki" | "Europe/Isle_of_Man" | "Europe/Istanbul" | "Europe/Jersey" | "Europe/Kaliningrad" | "Europe/Kiev" | "Europe/Kirov" | "Europe/Lisbon" | "Europe/Ljubljana" | "Europe/London" | "Europe/Luxembourg" | "Europe/Madrid" | "Europe/Malta" | "Europe/Mariehamn" | "Europe/Minsk" | "Europe/Monaco" | "Europe/Moscow" | "Europe/Nicosia" | "Europe/Oslo" | "Europe/Paris" | "Europe/Podgorica" | "Europe/Prague" | "Europe/Riga" | "Europe/Rome" | "Europe/Samara" | "Europe/San_Marino" | "Europe/Sarajevo" | "Europe/Saratov" | "Europe/Simferopol" | "Europe/Skopje" | "Europe/Sofia" | "Europe/Stockholm" | "Europe/Tallinn" | "Europe/Tirane" | "Europe/Tiraspol" | "Europe/Ulyanovsk" | "Europe/Uzhgorod" | "Europe/Vaduz" | "Europe/Vatican" | "Europe/Vienna" | "Europe/Vilnius" | "Europe/Volgograd" | "Europe/Warsaw" | "Europe/Zagreb" | "Europe/Zaporozhye" | "Europe/Zurich" | "GB" | "GB-Eire" | "GMT" | "GMT+0" | "GMT-0" | "GMT0" | "Greenwich" | "HST" | "Hongkong" | "Iceland" | "Indian/Antananarivo" | "Indian/Chagos" | "Indian/Christmas" | "Indian/Cocos" | "Indian/Comoro" | "Indian/Kerguelen" | "Indian/Mahe" | "Indian/Maldives" | "Indian/Mauritius" | "Indian/Mayotte" | "Indian/Reunion" | "Iran" | "Israel" | "Jamaica" | "Japan" | "Kwajalein" | "Libya" | "MET" | "MST" | "MST7MDT" | "Mexico/BajaNorte" | "Mexico/BajaSur" | "Mexico/General" | "NZ" | "NZ-CHAT" | "Navajo" | "PRC" | "PST8PDT" | "Pacific/Apia" | "Pacific/Auckland" | "Pacific/Bougainville" | "Pacific/Chatham" | "Pacific/Chuuk" | "Pacific/Easter" | "Pacific/Efate" | "Pacific/Enderbury" | "Pacific/Fakaofo" | "Pacific/Fiji" | "Pacific/Funafuti" | "Pacific/Galapagos" | "Pacific/Gambier" | "Pacific/Guadalcanal" | "Pacific/Guam" | "Pacific/Honolulu" | "Pacific/Johnston" | "Pacific/Kiritimati" | "Pacific/Kosrae" | "Pacific/Kwajalein" | "Pacific/Majuro" | "Pacific/Marquesas" | "Pacific/Midway" | "Pacific/Nauru" | "Pacific/Niue" | "Pacific/Norfolk" | "Pacific/Noumea" | "Pacific/Pago_Pago" | "Pacific/Palau" | "Pacific/Pitcairn" | "Pacific/Pohnpei" | "Pacific/Ponape" | "Pacific/Port_Moresby" | "Pacific/Rarotonga" | "Pacific/Saipan" | "Pacific/Samoa" | "Pacific/Tahiti" | "Pacific/Tarawa" | "Pacific/Tongatapu" | "Pacific/Truk" | "Pacific/Wake" | "Pacific/Wallis" | "Pacific/Yap" | "Poland" | "Portugal" | "ROC" | "ROK" | "Singapore" | "Turkey" | "UCT" | "US/Alaska" | "US/Aleutian" | "US/Arizona" | "US/Central" | "US/East-Indiana" | "US/Eastern" | "US/Hawaii" | "US/Indiana-Starke" | "US/Michigan" | "US/Mountain" | "US/Pacific" | "US/Pacific-New" | "US/Samoa" | "UTC" | "Universal" | "W-SU" | "WET" | "Zulu") | null;
} | null;
} | {
type: "number";
number: number | null;
} | {
type: "boolean";
boolean: boolean | null;
} | undefined> | undefined;
/** If `config.visible` is a property pointer, returns it as a [[PropertyPointer]]. */
resolveVisiblePropertyPointer(): PropertyPointerWithOutput<boolean | {
type: "string";
string: string | null;
} | {
type: "date";
date: {
start: string;
end: string | null;
time_zone: ("Africa/Abidjan" | "Africa/Accra" | "Africa/Addis_Ababa" | "Africa/Algiers" | "Africa/Asmara" | "Africa/Asmera" | "Africa/Bamako" | "Africa/Bangui" | "Africa/Banjul" | "Africa/Bissau" | "Africa/Blantyre" | "Africa/Brazzaville" | "Africa/Bujumbura" | "Africa/Cairo" | "Africa/Casablanca" | "Africa/Ceuta" | "Africa/Conakry" | "Africa/Dakar" | "Africa/Dar_es_Salaam" | "Africa/Djibouti" | "Africa/Douala" | "Africa/El_Aaiun" | "Africa/Freetown" | "Africa/Gaborone" | "Africa/Harare" | "Africa/Johannesburg" | "Africa/Juba" | "Africa/Kampala" | "Africa/Khartoum" | "Africa/Kigali" | "Africa/Kinshasa" | "Africa/Lagos" | "Africa/Libreville" | "Africa/Lome" | "Africa/Luanda" | "Africa/Lubumbashi" | "Africa/Lusaka" | "Africa/Malabo" | "Africa/Maputo" | "Africa/Maseru" | "Africa/Mbabane" | "Africa/Mogadishu" | "Africa/Monrovia" | "Africa/Nairobi" | "Africa/Ndjamena" | "Africa/Niamey" | "Africa/Nouakchott" | "Africa/Ouagadougou" | "Africa/Porto-Novo" | "Africa/Sao_Tome" | "Africa/Timbuktu" | "Africa/Tripoli" | "Africa/Tunis" | "Africa/Windhoek" | "America/Adak" | "America/Anchorage" | "America/Anguilla" | "America/Antigua" | "America/Araguaina" | "America/Argentina/Buenos_Aires" | "America/Argentina/Catamarca" | "America/Argentina/ComodRivadavia" | "America/Argentina/Cordoba" | "America/Argentina/Jujuy" | "America/Argentina/La_Rioja" | "America/Argentina/Mendoza" | "America/Argentina/Rio_Gallegos" | "America/Argentina/Salta" | "America/Argentina/San_Juan" | "America/Argentina/San_Luis" | "America/Argentina/Tucuman" | "America/Argentina/Ushuaia" | "America/Aruba" | "America/Asuncion" | "America/Atikokan" | "America/Atka" | "America/Bahia" | "America/Bahia_Banderas" | "America/Barbados" | "America/Belem" | "America/Belize" | "America/Blanc-Sablon" | "America/Boa_Vista" | "America/Bogota" | "America/Boise" | "America/Buenos_Aires" | "America/Cambridge_Bay" | "America/Campo_Grande" | "America/Cancun" | "America/Caracas" | "America/Catamarca" | "America/Cayenne" | "America/Cayman" | "America/Chicago" | "America/Chihuahua" | "America/Coral_Harbour" | "America/Cordoba" | "America/Costa_Rica" | "America/Creston" | "America/Cuiaba" | "America/Curacao" | "America/Danmarkshavn" | "America/Dawson" | "America/Dawson_Creek" | "America/Denver" | "America/Detroit" | "America/Dominica" | "America/Edmonton" | "America/Eirunepe" | "America/El_Salvador" | "America/Ensenada" | "America/Fort_Nelson" | "America/Fort_Wayne" | "America/Fortaleza" | "America/Glace_Bay" | "America/Godthab" | "America/Goose_Bay" | "America/Grand_Turk" | "America/Grenada" | "America/Guadeloupe" | "America/Guatemala" | "America/Guayaquil" | "America/Guyana" | "America/Halifax" | "America/Havana" | "America/Hermosillo" | "America/Indiana/Indianapolis" | "America/Indiana/Knox" | "America/Indiana/Marengo" | "America/Indiana/Petersburg" | "America/Indiana/Tell_City" | "America/Indiana/Vevay" | "America/Indiana/Vincennes" | "America/Indiana/Winamac" | "America/Indianapolis" | "America/Inuvik" | "America/Iqaluit" | "America/Jamaica" | "America/Jujuy" | "America/Juneau" | "America/Kentucky/Louisville" | "America/Kentucky/Monticello" | "America/Knox_IN" | "America/Kralendijk" | "America/La_Paz" | "America/Lima" | "America/Los_Angeles" | "America/Louisville" | "America/Lower_Princes" | "America/Maceio" | "America/Managua" | "America/Manaus" | "America/Marigot" | "America/Martinique" | "America/Matamoros" | "America/Mazatlan" | "America/Mendoza" | "America/Menominee" | "America/Merida" | "America/Metlakatla" | "America/Mexico_City" | "America/Miquelon" | "America/Moncton" | "America/Monterrey" | "America/Montevideo" | "America/Montreal" | "America/Montserrat" | "America/Nassau" | "America/New_York" | "America/Nipigon" | "America/Nome" | "America/Noronha" | "America/North_Dakota/Beulah" | "America/North_Dakota/Center" | "America/North_Dakota/New_Salem" | "America/Ojinaga" | "America/Panama" | "America/Pangnirtung" | "America/Paramaribo" | "America/Phoenix" | "America/Port-au-Prince" | "America/Port_of_Spain" | "America/Porto_Acre" | "America/Porto_Velho" | "America/Puerto